资源描述:
《-Lyapunov指数的计算方法.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、【总结】Lyapunov指数的计算方法非线性理论近期为了把计算LE的一些问题弄清楚,看了有7~9本书!下面以吕金虎《混沌时间序列分析及其应用》、马军海《复杂非线性系统的重构技术》为主线,把目前已有的LE计算方法做一个汇总!1.关于连续系统Lyapunov指数的计算方法 连续系统LE的计算方法主要有定义方法、Jacobian方法、QR分解方法、奇异值分解方法,或者通过求解系统的微分方程,得到微分方程解的时间序列,然后利用时间序列(即离散系统)的LE求解方法来计算得到。关于连续系统LE的计算,主要以定义方法、Jacobian方法做主要介绍内容。(1)定义法1
2、2定义法求解Lyapunov指数.JPG关于定义法求解的程序,和matlab板块的“连续系统LE求解程序”差不多。以Rossler系统为例Rossler系统微分方程定义程序functiondX=Rossler_ly(t,X)% Rossler吸引子,用来计算Lyapunov指数% a=0.15,b=0.20,c=10.0% dx/dt=-y-z,% dy/dt=x+ay,% dz/dt=b+z(x-c),a=0.15;b=0.20;c=10.0;x=X(1);y=X(2);z=X(3);%Y的三个列向量为相互正交的
3、单位向量Y=[X(4),X(7),X(10); X(5),X(8),X(11); X(6),X(9),X(12)];%输出向量的初始化,必不可少dX=zeros(12,1);%Rossler吸引子dX(1)=-y-z;dX(2)=x+a*y;dX(3)=b+z*(x-c);%Rossler吸引子的Jacobi矩阵Jaco=[0-1-1; 1a 0; z120 x-c];dX(4:12)=Jaco*Y;求解LE代码:%计算Rossler吸引子的Lyapunov指数clear;yinit=[1,1,1];orthmatrix=[10
4、0; 010; 001];a=0.15;b=0.20;c=10.0;y=zeros(12,1);%初始化输入y(1:3)=yinit;y(4:12)=orthmatrix;tstart=0;%时间初始值tstep=1e-3;%时间步长wholetimes=1e5;%总的循环次数steps=10;%每次演化的步数iteratetimes=wholetimes/steps;%演化的次数mod=zeros(3,1);lp=zeros(3,1);%初始化三个Lyapunov指数Lyapunov1=zeros(iteratetim
5、es,1);Lyapunov2=zeros(iteratetimes,1);Lyapunov3=zeros(iteratetimes,1);fori=1:iteratetimes tspan=tstart:tstep:(tstart+tstep*steps); [T,Y]=ode45('Rossler_ly',tspan,y); %取积分得到的最后一个时刻的值 y=Y(size(Y,1),:); %重新定义起始时刻 tstart=tstart+tstep*steps; y0=[y(4)y(7)y(10); y(5)y(8)y(1
6、1); y(6)y(9)y(12)]; %正交化 y0=ThreeGS(y0); %取三个向量的模 mod(1)=sqrt(y0(:,1)'*y0(:,1)); mod(2)=sqrt(y0(:,2)'*y0(:,2)); mod(3)=sqrt(y0(:,3)'*y0(:,3)); y0(:,1)=y0(:,1)/mod(1); y0(:,2)=12y0(:,2)/mod(2); y0(:,3)=y0(:,3)/mod(3); lp=lp+log(abs(mod)); %三个Lyapunov指数 Lyapunov1(i)
7、=lp(1)/(tstart); Lyapunov2(i)=lp(2)/(tstart); Lyapunov3(i)=lp(3)/(tstart); y(4:12)=y0';end%作Lyapunov指数谱图i=1:iteratetimes;plot(i,Lyapunov1,i,Lyapunov2,i,Lyapunov3)程序中用到的ThreeGS程序如下:%G-S正交化functionA=ThreeGS(V) %V为3*3向量v1=V(:,1);v2=V(:,2);v3=V(:,3);a1=zeros(3,1);a2=zeros(3,1)
8、;a3=zeros(3,1);a1=v1;a2=v2-((a1'*