matlab 计算 Lorenz 系统最大李雅普诺夫指数

article/2025/9/22 16:29:21

在这里插入图片描述

参考原理:

Lyapunov 指数的计算与仿真:https://wenku.baidu.com/view/ae8e4f80680203d8ce2f2476.html

Lorenz 系统的动力学方程

function dX = Lorenz(t,X,params) a = params(1);
b = params(2);
c = params(3);x=X(1); 
y=X(2); 
z=X(3);dX = zeros(3,1);
dX(1)=a*(y-x);
dX(2)=x*(b-z)-y;
dX(3)=x*y-c*z;end 

使用 G. Benettin 计算方法

在这里插入图片描述

Z=[];  
a=10; 
c=8/3; 
d0=1e-7; 
bs = linspace(0,300,301);
transient = 50;
for b=bsparams = [a,b,c];lsum=0; x=1;y=1;z=1;   % #初始基准点x1=1;y1=1;z1=1+d0;  % #初始偏离点for i=1:100  [T1,Y1]=ode45(@(t,X) Lorenz(t,X,params),[0 1],[x;y;z]); [T2,Y2]=ode45(@(t,X) Lorenz(t,X,params),[0 1],[x1;y1;z1]); n1=length(Y1);n2=length(Y2);     x=Y1(n1,1);y=Y1(n1,2);z=Y1(n1,3);   x1=Y2(n2,1);y1=Y2(n2,2);z1=Y2(n2,3);   d1=sqrt((x-x1)^2+(y-y1)^2+(z-z1)^2);     % #新的偏离点在上一次计算的两轨迹末端的连线上,且距离仍等于d0x1=x+(d0/d1)*(x1-x);   y1=y+(d0/d1)*(y1-y);    z1=z+(d0/d1)*(z1-z); % #舍弃暂态过程的数据,因为初始基准点不一定在吸引子上if i> transientlsum=lsum+log(d1/d0);  end  end  Z=[Z lsum/(i-transient)]; 
end plot(bs,Z,'-k');  
title('Lorenz System''s LLE v.s. parameter b')  
xlabel('parameter b'),ylabel('Largest Lyapunov Exponents'); 
grid on;

代码二

clear;
yinit = [0.1,0.1,0.1];
orthmatrix = [1 0 0;0 1 0;0 0 1];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:iteratetimestspan = tstart:tstep:(tstart + tstep*steps);  [T,Y] = ode45(@(t,y) Lorenz_ly(t,y), 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));%三个Lyapunov指数Lyapunov1(i) = lp(1)/(tstart);Lyapunov2(i) = lp(2)/(tstart);Lyapunov3(i) = lp(3)/(tstart);y(4:12) = y0';
end
% 作Lyapunov指数谱图
figure,
i = 1:iteratetimes;
plot(i,Lyapunov1,i,Lyapunov2,i,Lyapunov3)%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];
endfunction 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.20;
b = 0.20;
c = 5.7;
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;
endfunction dX = Lorenz_ly(t,X)
% Lorenz 吸引子,用来计算Lyapunov指数
a = 10;
b = 28;
c = 8/3;
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);
% Lorenz 吸引子
dX(1)=a*(y-x);
dX(2)=x*(b-z)-y;
dX(3)=x*y-c*z;
% Lorenz 吸引子的Jacobi矩阵
Jaco = [-a a 0;b-z -1 -x;y x -c];
dX(4:12) = Jaco*Y;
end

http://chatgpt.dhexx.cn/article/XSQL2LBr.shtml

相关文章

matlab判断李雅普诺夫稳定性

李雅普诺夫稳定性matlab仿真程序 李雅普诺夫稳定性判别有两种方法,直接法和间接法。直接法是求解状态方程的特征多项式,判断极点位置,全在左半平面则稳定。间接法是最常用的判断稳定性方法,无需求解,只要构造一个广义…

【李雅普诺夫方程】

文章目录 前言李雅普诺夫方程求解参考链接 前言 李雅普诺夫方程 (Lyapunov equation) 作为一种著名的矩阵方程为人所熟知,其在控制理论以及众多工程领域有着极为广泛的应用。 李雅普诺夫方程求解 参考链接 知乎

如何计算Lyapunov exponent spectrum?matlab计算李雅普诺夫指数

如何理解和计算Lyapunov exponent spectrum? 1、这是我听到最接近人话的描述。 混沌运动的基本特点是运动对初始条件极为敏感,两个极为靠近的初始值所产生的轨迹,随着时间推移将按照指数方式分离。李娜诺普指数就是描述这一现象的量。 2、 结…

Matlab求解李雅普诺夫(Lyapunov)方程

线性定常连续系统渐进稳定性的判别 Matlab中可以调用lyap函数求解P AX XA -C % 这是函数的内部定义式,恰好与理论定义的转置是反着的所以我们应该这样使用 P lyap(A, Q) % 一般令QI(I指单位阵)Matlab中可以调用eig函数解矩阵特征值 可…

李雅普诺夫理论基础(1)

一.非线性系统与平衡点 1.1非线性系统 一个简单的非线性系统一般用这样的微分方程形式描述: x ˙ f ( x , t ) \dot{x}f(x,t) x˙f(x,t)根据这个方程的解x(t),我们可以画出来一条曲线,这个曲线对应于t从0开始到无穷。 1.2自治系统与非自治系统 线性…

现代控制理论(二)李雅普诺夫稳定性分析

现代控制理论(二)李雅普诺夫稳定性分析 一、李雅普诺夫稳定性概念1、平衡状态2、李雅普诺夫稳定性定义(通俗理解) 二、李雅普诺夫稳定性间接判别法(第一方法)三、李雅普诺夫稳定性直接判别法(第二方法)定理一:V(x,t)正定;V(x,t)负…

李雅普诺夫第二方法

0 背景和思路 **系统稳定:**系统储存的总能量持续地减小,直至耗尽,系统状态就会趋于平衡态 **稳定性考察:**考察一个正值的能量函数 V ( x ) V(\boldsymbol{x}) V(x) 和它的变化率 V ˙ ( x ) \dot{V}(\boldsymbol{x}) V˙(x)…

李雅普诺夫(第二方法)稳定性分析+例题

目录 1. 背景和思路2. 李雅普诺夫第二方法3. 李雅普诺夫稳定性分析4. 例题5. 参考文献 1. 背景和思路 系统稳定:系统储存的总能量持续地减小,直至耗尽,系统状态就会趋于平衡态 稳定性考察:考察一个正值的能量函数 V ( x ) V(x) V…

李雅普诺夫稳定性理论的理解

由于李雅普诺夫第一方法需要求解才能判断系统的稳定性,而大多数情况下,这个解是很难求出来的,所以便有了李雅普诺夫第二法(直接法)。 首先举个例子来说明直接法的基本思想。下图中小球B出在各曲面不同位置时收到微小…

李雅普诺夫梳理

预备知识: 矢量场、矩阵正定负定、矩阵奇异。 1.李雅普诺夫稳定的定义: 系统,在平衡状态下,受到扰动,能够,经过足够长时间,恢复到平衡的,一种能力; 2.自治系统&#x…

现代控制理论(4)——李雅普诺夫稳定性理论

文章目录 一、李雅普诺夫关于稳定性的定义1.李氏意义下的稳定2.渐近稳定3.大范围渐近稳定4.不稳定 二、李雅普诺夫第一法1.线性系统的稳定判据2.非线性系统的稳定判据 三、李雅普诺夫第二法1.标量函数的定号性2.稳定性原理 四、李雅普诺夫方法在线性系统中的应用五、李雅普诺夫…

Linux环境下的VScode使用教程

前言 (1)对于学习本文需要先有自行安装好VMware,对VMware有简单的了解。 (2)对于绝大多数使用Linux的人而言,经常在Windows环境下使用source insight进行编译程序,然后利用FileZilla将Windows的…

VS code开发工具的使用教程

前言 工欲善其事必先利其器,提高程序员的开发效率必须要有一个好的开发工具,当前最好的前端开发工具主要有VS code、sublime Text、Atom、Webstorm、Notepad。 VS Code 是一款十分强大的代码编辑器,虽然出来时间比较短,但是使用频…

Windows+VScode配置与使用git,超详细教程,赶紧收藏吧

目录 第一步:安装Git命令行工具 第二步:配置VScode中的git 第三步:使用 VScode git,提交到仓库 当我们在VScode中编写代码后,需要提交到git仓库时,但是我们又不想切换到git的命令行窗口,我们可…

vscode使用小技巧

vscode全网最详细使用教程(让你编码快上10倍) 一、快速编写HTML代码 初始化 HTML文档需要包含一些固定的标签,比如、、等,现在你只需要1秒钟就可以输入这些标签。比如输入“!”或“html:5”,然后按Tab键&#xff1a…

VSCode下载与安装使用教程【超详细讲解】

目录 一、VSCode介绍 二、官方下载地址 三、VSCode安装 1、点击我同意此协议,点击下一步; 2、点击浏览,选择安装路径,点击下一步; 3、添加到开始菜单,点击下一步; 4、根据需要勾选&#…

vsCode安装使用教程和插件安装

vsCode安装使用教程 vsCode是什么vsCode安装vsCode汉化vsCode常用命令说明vsCode左边图标说明vsCode基本使用前端常用插件在vosCode中显示html界面 vsCode是什么 Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流…

「VS Code」Visual Studio Code 菜鸟教程:从入门到精通

「VS Code」Visual Studio Code 教程:从入门到精通 日志: 「2020-04-26」介绍如何配置 LaTeX 环境;「2019-09-06」更新了选择默认终端的方法;在胶片中补全列选方式;「2019-05-26」补全了全文的剩余部分,并引…

VSCode 使用教程--编写调试C/C++程序

一、前言 Visual Studio Code是一个轻量且强大的代码编辑器,支持Windows,OS X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C、C#、Python、PHP等其他语言。   说了这么多…

VScode下载安装及使用教程

0. 序 ... 1. 下载 官网下载速度特别慢,需要用国内镜像 官网:Visual Studio Code - Code Editing. Redefined国内 点进去之后会过慢慢打开下载链接,速度非常慢 跳转到这个界面,就是已经开始下载了,只不过开始下载…