哥们,李雅普诺夫指数的算法有很多种,不知你是需要哪种算法的呢?
比如Nicolis方法、Benettin方法、Wolf方法、Jacobia方法等等
我把我以前计算伊侬映射李指数的程序给你,你参考一下:
%---------伊侬吸引子最大Laypunov指数的计算----------%
clear allclc
a=0.9:0.001:1.4k=length(a)
b=0.3p=600
for n=1:k
for m=2:p
x(1,n)=0.4y(1,n)=0.6
x(m,n)=1+b*y(m-1,n)-a(n)*x(m-1,n)^2
y(m,n)=x(m-1,n)
end
end
for r=1:k %计算雅克比矩阵
for h=2:p
A{1,r}=[-2*a(r)*x(1,r),b1,0]
A{h,r}=[-2*a(r)*x(h,r),b1,0]*A{h-1,r} %注意元胞数组相乘顺序
end
end
for t=1:k %计算最大李指数
vv(:,t)=eig(A{p,t})v=max(abs(vv))
LE1=1/p*log(v)
end
plot(a,LE1,'k')hold on
plot(a,0,'k:')
axis([a(1),a(k),-1 1])
xlabel('a')ylabel('LE1')title('最大李指数')
其他错误都改过来了,但是有一句不知道你是什么意思?你自己再修改一下,估计就可以了!T=1
k=[0.1 0.2 0.5 0.8 1.0 2.4]
t=linspace(0,20,200)
num=1
den=conv([1,0],[T,1])
for jj=1:6
%%%%%%%%%%%%%%%%%%%
%s1=tf(num*k(jj(,den)
%%%%%%%%%%%%%%%%%%%
sys=feedback(s1,1)
y(:jj)=step(sys,t)
end
plot(t,y(:,1:6))
grid
gtext('k=0.1 ')
gtext('k=0.2 ')
gtext('k=0.5 ')
gtext('k=0.8 ')
gtext('k=1.0 ')
gtext('k=2.4 ')
PS:你要注意,在MATALB环境下输入的符号一定要保证是在英文状态下输入,我发现你很多的符号都是中文下输入的,你再MATALB命令窗口中应该可以发现错误符号的颜色和其他的不一样!
祝朋友好运!
利用李雅普诺夫指数λ,相空间内初始时刻的两点距离将随时间(迭代次数)作指数分离:
在一维映射中只有一个λ值,而在多位相空间情况下一般就有多个λ,而且沿着相空间的不同方向,λ值一般也不同。
设ε0为多维相空间中两点的初始距离,经过n次迭代以后两点间的距离为:
式中指数λi可正可负,当其为正时表示沿该方向扩展,为负数时表示沿该方向收缩。在经过一段时间(数次迭代)以后,两个不同李雅普诺夫指数将使相空间中原来的圆演变为椭圆。 稳定体系的相轨线相应于趋向某个平衡点,如果出现越来越远离平衡点,则系统是不稳定的。系统只要有一个正值就会出现混沌运动。
判断一个非线性系统是否存在混沌运动时,需要检查它的李雅普诺夫指数λ是否为正值。
在高维相空间中大于零的李雅普诺夫指数可能不止一个,这样体系的运动将更为复杂。人们称高维相空间中有多个正值指数的混沌为超混沌。推广到高维空间后,有指数(λ1,λ2,λ3,···)的值决定的各种类型的吸引子可以归纳为: (λ1,λ2,λ3,···) 吸引子的类型 维数 (-,-,-,···) 不动点 D=0 (0,-,-,···) 极限环 D=1 (0,0,-,-,···) 二维环面 D=2 (0,0,0,-,···) 三维环面 D=3 (+,0,-,-,···) 奇怪吸引子(混沌) D=2~3(非整数) (+,+,0,-,···) 超混沌 D=高于3的非整数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)