
编写用于计算李雅普诺夫指数的程序。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
计算李雅普诺夫指数的程序李雅普诺夫指数是非线性理论中一个重要的概念,它可以用来判断一个系统是否具有混沌现象。计算李雅普诺夫指数是研究混沌系统的一种重要方法。下面,我们将对计算李雅普诺夫指数的程序进行详细的介绍。1. 连续系统 Lyapunov 指数的计算方法连续系统 Lyapunov 指数的计算方法主要有定义方法、Jacobian 方法、QR 分解方法、奇异值分解方法等。其中,定义方法和 Jacobian 方法是最常用的两种方法。(1)定义法定义法是计算李雅普诺夫指数的一种常用方法。该方法基于李雅普诺夫指数的定义,即李雅普诺夫指数是系统的最大的局部Lyapunov指数。定义法的计算步骤如下:首先,定义系统的 Jacobi 矩阵 Jaco,然后计算 Jaco 的奇异值分解。接着,计算 Jaco 的左奇异向量并 normalization 后,得到李雅普诺夫指数。在 Rossler 系统中,我们可以使用以下 MATLAB 代码来计算李雅普诺夫指数:```matlabfunction 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 = [X(4), X(7), X(10); X(5), X(8), X(11); X(6), X(9), X(12)]; dX = zeros(12,1); dX(1) = -y-z; dX(2) = x+a*y; dX(3) = b+z*(x-c); Jaco = [0 -1 -1; 2 1 a; z 0 x-c]; dX(4:12) = Jaco*Y;end```(2)Jacobian 方法Jacobian 方法是计算李雅普诺夫指数的一种常用方法。该方法基于系统的 Jacobi 矩阵 Jaco,然后计算 Jaco 的 eigenvalue 分解。接着,计算 Jaco 的左 eigen 向量并 normalization 后,得到李雅普诺夫指数。2. 离散系统 Lyapunov 指数的计算方法离散系统 Lyapunov 指数的计算方法主要有 QR 分解方法、奇异值分解方法等。在离散系统中,我们可以使用以下 MATLAB 代码来计算李雅普诺夫指数:```matlab% 初始化输入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);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(:,2)/mod(2); y0(:,3) = y0(:,3)/mod(3); lp = lp+log(abs(mod)); Lyapunov1(i) = lp(1)/(tstart); Lyapunov2(i) = lp(2)/(tstart); Lyapunov3(i) = lp(3)/(tstart);end```在上面的代码中,我们使用了 Rossler 系统来计算李雅普诺夫指数。首先,我们定义了系统的 Jacobi 矩阵 Jaco,然后计算 Jaco 的奇异值分解。接着,我们计算 Jaco 的左奇异向量并 normalization 后,得到李雅普诺夫指数。最后,我们使用 ode45 函数来 numerically integrate 系统的微分方程,然后计算李雅普诺夫指数。计算李雅普诺夫指数是研究混沌系统的一种重要方法。通过计算李雅普诺夫指数,我们可以判断一个系统是否具有混沌现象。
全部评论 (0)


