计算ODE的Lyapunov指数

版本1.0.0.0(3.91 KB) Vasiliy Govorukhin
通过确定Lyapunov指数来实现混乱检测的Alegrithm。

21.7k下载

更新2004年3月18日

查看许可证

lyapunov指数计算的ODE-SYSTEM。在A. Wolf,J。B。Swift,H。L. Swinney和J. A. Vastano中提出了该M档案中用于确定Lyapunov指数的空血值,“确定时间序列的Lyapunov指数”,Physica d,第1卷。16,第285-317页,1985年。

用于集成ODE系统可以使用任何MATLAB ODE-SUITE方法。

此功能是MATDS程序的一部分 - 动态系统调查的工具箱
看:http://www.math.rsu.ru/mexmat/kvm/matds/

输入参数:
n-方程数
RHS_EXT_FCN-功能的手柄,具有扩展Ode -System的右侧。此函数必须包括ode系统的RHS和变异方程(线性化系统的n个项目,请参见示例)。
fcn_integrator- ode Integrator函数的句柄,例如: @ode45
tstart-独立值的启动值(时间t)
Stept-用于革兰氏 - schmidt重新归一化过程的T变量。
趋势 - 时间的终止价值
YSTART- ODE系统轨迹的起点。
IOUTP-打印步骤到MATLAB主窗口。ioutp == 0-没有打印,如果ioutp> 0,则每个IOUTP-将是打印的。

输出参数:
TEXP-时间值
LEXP-每个时间值的Lyapunov指数。

用户必须为其指定的系统编写自己的ODE功能,并将此功能用作RHS_EXT_FCN -参数。

例子。洛伦兹系统:
dx/dt = sigma*(y -x)
dy/dt = r*x -y -x*z
dz/dt = x*y -b*z

系统的雅各布式:
|-sigma Sigma 0 |
j = |R -Z -1 -X |
|Y X -B |

然后,变分方程有一个形式:
f = j*y
其中y是一个与J相同的正方形矩阵。
相应的M文件:
函数f = lorenz_ext(t,x)
Sigma = 10;r = 28;beta = 8/3;
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)];
f =零(9,1);
F(1)= Sigma*(Y-X);
f(2)= -x*z+r*x-y;
f(3)= x*y-beta*z;
jac = [ - Sigma,Sigma,0;
R-Z,-1,-X;y,x,-beta];
f(4:12)= jac*y;

%运行Lyapunov指数计算:

[t,res] = lyapunov(3,@lorenz_ext,@ode45,0,5,200,[0 1 0],10);

请参阅文件:lyapunov.m-算法
Lorenz_ext -Lorenz系统扩展RHS
run_lyap-调用和结果可视化的示例
Govorukhin V.N.
该文件旨在与MATLAB一起使用,并用于MATDS编程http://www.math.rsu.ru/mexmat/kvm/matds/
Lyapunov.m是免费软件。lyapunov.m的分发是希望它将有用,但没有任何保修。

引用为

Vasiliy Govorukhin(2022)。计算ODE的Lyapunov指数(//www.tianjin-qmedu.com/matlabcentral/fileexchange/4628-calculation-lyapunov-exponents-for-ode),matlab中央文件交换。检索

MATLAB释放兼容性
用R12创建
与任何版本兼容
平台兼容性
视窗 苹果系统 Linux

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!