matlab计算Rossler 吸引子的李雅普诺夫指数.docx

上传人:牧羊曲112 文档编号:3161347 上传时间:2023-03-11 格式:DOCX 页数:7 大小:37.39KB
返回 下载 相关 举报
matlab计算Rossler 吸引子的李雅普诺夫指数.docx_第1页
第1页 / 共7页
matlab计算Rossler 吸引子的李雅普诺夫指数.docx_第2页
第2页 / 共7页
matlab计算Rossler 吸引子的李雅普诺夫指数.docx_第3页
第3页 / 共7页
matlab计算Rossler 吸引子的李雅普诺夫指数.docx_第4页
第4页 / 共7页
matlab计算Rossler 吸引子的李雅普诺夫指数.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《matlab计算Rossler 吸引子的李雅普诺夫指数.docx》由会员分享,可在线阅读,更多相关《matlab计算Rossler 吸引子的李雅普诺夫指数.docx(7页珍藏版)》请在三一办公上搜索。

1、matlab计算Rossler 吸引子的李雅普诺夫指数function main%求解LE代码:% 计算Rossler吸引子的Lyapunov指数% Rossler吸引子,用来计算Lyapunov指数% a=0.25,b=1,c=5.5% dx/dt = -y-z,% dy/dt = x+ay,% dz/dt = b+z(x-c),clear;yinit = 1,1,1;orthmatrix = 1 0 0;0 1 0;0 0 1;a = 0.25;b = 1;c = 5.5;y = zeros(12,1);% 初始化输入y(1:3) = yinit;y(4:12) = orthmatrix;

2、tstart = 0; % 时间初始值tstep = 1e-3; % 时间步长wholetimes = 1e5; % 总的循环次数steps = 10; % 每次演化的步数 iteratetimes = wholetimes/steps; % 演化的次数mod = zeros(3,1);lp = zeros(3,1);% 初始化三个Lyapunov指数Lyapunov1 = zeros(iteratetimes,1);Lyapunov2 = zeros(iteratetimes,1);Lyapunov3 = zeros(iteratetimes,1);for i=1:iteratetimest

3、span = tstart:tstep:(tstart + tstep*steps); T,Y = ode45(Rossler_ly, tspan, y);% 取积分得到的最后一个时刻的值function main%求解LE代码:% 计算Rossler吸引子的Lyapunov指数% Rossler吸引子,用来计算Lyapunov指数% a=0.25,b=1,c=5.5% dx/dt = -y-z,% dy/dt = x+ay,% dz/dt = b+z(x-c),clear;yinit = 1,1,1;orthmatrix = 1 0 0;0 1 0;0 0 1;a = 0.25;b = 1;

4、c = 5.5;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(iteratetimes,1);Lyapunov2 = zeros(iter

5、atetimes,1);Lyapunov3 = zeros(iteratetimes,1);for i=1:iteratetimestspan = 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(11);y(6) y(9) y(12);%正交化y0 = ThreeGS(y0); % 取三个

6、向量的模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) = y0(:,2)/mod(2);y0(:,3) = y0(:,3)/mod(3);lp = lp+log(abs(mod);%三个Lyapunov指数Lyapunov1(i) = lp(1)/(tstart);Lyapunov2(i) = lp(2)/(tstart);Lyapunov3(i) = lp(3)/(tstart);y(4:12)

7、 = y0;end% 作Lyapunov指数谱图i = 1:iteratetimes;plot(i,Lyapunov1,i,Lyapunov2,i,Lyapunov3)Le1=Lyapunov1(end),Le2=Lyapunov2(end),Le3=Lyapunov3(end)title(Lyapunov指数谱图)end%计算得到的Rossler系统的LE为 0.0992 0.0755 -5.2644%计算得到的Rossler系统的LE为 0.0992 0.0755 -5.2644function dX = Rossler_ly(t,X)a = 0.25;b = 1;c = 5.5;x=X(

8、1); y=X(2); z=X(3);% Y的三个列向量为相互正交的单位向量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;1 a 0;z 0 x-c;dX(4:12) = Jaco*Y;%程序中用到的ThreeGS程序如下:%G-S正交化function A = ThreeGS(V) % V 为3*3向量v1 = V(:,1);v2 = V(:,2);v3 = V(:,3);a1 = zeros(3,1);a2 = zeros(3,1);a3 = zeros(3,1);a1 = v1;a2 = v2-(a1*v2)/(a1*a1)*a1;a3 = v3-(a1*v3)/(a1*a1)*a1-(a2*v3)/(a2*a2)*a2;A = a1,a2,a3;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号