用matlab编程lyapunov指数,请高手指教。小弟急用

用matlab编程lyapunov指数,请高手指教。小弟急用,第1张

哥们,李雅普诺夫指数的算法有很多种,不知你是需要哪种算法的呢?

比如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的非整数


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11851750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存