-Lyapnov指数的计算方.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【总结】Lyapunov指数的计算方法 HYPERLINK /space/51118/spacelist-blog-itemtypeid-374.html 非线性理论 近期为了把计算LE的一些问题弄清楚,看了有7~9本书!下面以吕金虎《混沌时间序列分析及其应用》、马军海《复杂非线性系统的重构技术》为主线,把目前已有的LE计算方法做一个汇总! 1. 关于连续系统Lyapunov指数的计算方法? ? 连续系统LE的计算方法主要有定义方法、Jacobian方法、QR分解方法、奇异值分解方法,或者通过求解系统的微分方程,得到微分方程解的时间序列,然后利用时间序列(即离散系统)的LE求解方法来计算得到。关于连续系统LE的计算,主要以定义方法、Jacobian方法做主要介绍内容。 (1)定义法 HYPERLINK /forum/attachment.php?aid=28620 \t _blank 定义法求解Lyapunov指数.JPG 关于定义法求解的程序,和matlab板块的“连续系统LE求解程序”差不多。以Rossler系统为例 Rossler系统微分方程定义程序 function dX = 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的三个列向量为相互正交的单位向量 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; 求解LE代码: % 计算Rossler吸引子的Lyapunov指数 clear; yinit = [1,1,1]; orthmatrix = [1 0 0; ? ?? ?? ?? ???0 1 0; ? ?? ?? ?? ???0 0 1]; 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(iteratetimes,1); Lyapunov2 = zeros(iteratetimes,1); Lyapunov3 = zeros(iteratetimes,1); for i=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(11); ? ?? ?? ? 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) = y0

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档