基于matlab的Lorenz系统的仿真研究

更新时间:2024-05-07 20:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB 课 程 期 末 作 业

以下报告完成的是大作业第七题:

7. Simulink仿真在高等数学课程中的应用

21130223 宋沛儒

基于MATLAB/Simulink对Lorenz系统仿真研究

21130223 宋沛儒

1.引言

1963年Lorenz通过观察大量大气现象并进行数值实验和理论思考,得到了一系列混沌运动的基本特征,提出了第一个奇异吸引子—Lorenz吸引子[1] ,Lorenz通过计算机模拟一个由三阶微分方程描述的天气模型时发现,在某些条件下同一个系统可以表现出非周期的无规则行为。Lorenz揭示了一系列混沌运动的基本特征,成为后人研究混沌理论的基石和起点,具有非常重要的意义。Lorenz系统方程如下:

??a(y?x),?x???cx?y?xz, (1) ?y?z???xy?bz.其中,a,b,c为正的实常数。

本人利用了数学工具matlab,对Lorenz系统进行了仿真研究,加深了对其的认知。

2.matlab求解Lorenz系统

首先创建文件“Lorenz.m”定义Lorenz方程,假设固定a=10,b=2.6667,c=30,程序如下:

function dx=Lorenz(t,x)

dx=[-10*(x(1)-x(2));30*x(1)-x(2)-x(1)*x(3);x(1)*x(2)-2.6667*x(3)]; end

然后利用ode45(Runge-Kutta算法)命令求解Lorenz方程并绘制图形,初值取x=y=z=0.1,程序如下:

>> clf

>> x0=[0.1,0.1,0.1];

>> [t,x]=ode45('Lorenz',[0,100],x0); >> subplot(2,2,1)

>> plot(x(:,1),x(:,3)) >> title('(a)') >> subplot(2,2,2)

>> plot(x(:,2),x(:,3)) >> title('(b)') >> subplot(2,2,3)

>> plot(x(:,1),x(:,2)) >> title('(c)') >> subplot(2,2,4)

>> plot3(x(:,1),x(:,2),x(:,3)) >> title('(d)')

运行后,得如下波形:

图中,(a)为Lorenz混沌吸引子在x-z平面上的投影,(b)为其在y-z平面上的投影,(c)为其在x-y平面上的投影,(d)为Lorenz混沌吸引子的三维图。四张图都类似于“8”字形。 3. Lorenz系统对初值的敏感性

此时因为固定参数a=10,b=2.6667,c=30时,为混沌系统,对初值具有敏感性,初值很小的差异会引起系统的大变化。例如在上例

中取初值x=z=0.1,y=0.11,绘制此时混沌吸引子在x-z上的投影,并与x=y=z=0.1在同一张图比较。(初值为x=y=z=0.1时投影用蓝色,初值为x=z=0.1,y=0.11时投影用红色)程序如下:

>> clf

>> x0=[0.1,0.1,0.1];

>> [t,x]=ode45('ex_lorenz',[0,100],x0); >> plot(x(:,1),x(:,3)) >> hold on

>> x0=[0.1,0.11,0.1];

>> [t,x]=ode45('ex_lorenz',[0,100],x0); >> plot(x(:,1),x(:,3),'r*')

得到图形如下:

可以看到初值y仅变化0.01,图中红色与蓝色不重合出明显。证明了Lorenz系统的敏感性。

4.matlab对Lorenz系统的仿真

??y??z??0,当c>1时, 由文献[1]可知在上述方程组(1)中,令x系统有三个平衡点:S0(0,0,0), S?(?b(c?1),?b(c?1),c?1),当c=1时,系统在原点失去稳定。当c<1时,S?(b(c?1),b(c?1),c?1)。

原点是唯一的平衡点并且是汇点。

利用matlab的Simulink功能,搭建Lorenz系统模型,并探讨

参数对Lorenz系统的影响。仿真模型如图:

在仿真模型中,取参数a=10,b=8/3,观察参数c取不同值时系统的运行状态。

根据文献[1]的分析,

当参数0

332.521.510.502.521.510.50020406080100120140160180020406080100120140160180

32.521.510.50050100150

可见,系统很快地趋向并稳定在O(0,0,0),验证了前面所述。 当c>1时,系统有三个平衡点:原点O(0,0,0)和S+,S-。此时原点的特征值中有正值,因此原点为鞍点,是不稳定平衡点。当113.926时,不稳定流形将绕到另一侧,最终趋于与之异侧的S+或S-。可见,c是一个同宿分岔点。因此,取初值x=y=z=2,c=8,仿真

停止时间为50,运行仿真,得到x、y、z的相图以及x-z,y-z,x-y的图形依次如下所示:

765432765432050100150200250300350150200250300350400450

1210864200100200300400500600700

可以看到,系统趋于与之同侧的平衡点S+或S-。

取初值x=y=z=2,c=18,仿真停止时间为50,运行仿真,得到x、y、z的相图以及x-z,y-z,x-y的图形依次如下所示:

151050-5-10-15-20151050-5-10-15050010001500-20

050010001500

3025201510050010001500

可以看到,系统趋于与之同侧的平衡点S+或S-。

为了观察c=13.926的同宿分岔点现象,在c=13.926附近不断尝试,最终在c= 15.39682328时观察到比较明显的过渡迹象。取初值x=y=z=2,c=15.39682328,仿真停止时间为50,运行仿真,得到x、y、z的相图以及x-z,y-z,x-y的图形依次如下所示:

20151510105500-5-5-10-10-15050010001500050010001500

50454035302520151050050010001500200025003000

可以看到,虽然最终轨线趋向于与之同侧的平衡点S+或S-,但有着明显的过渡迹象。可以推测,当c取15.39682328到15.39682330间的某一个数值时,会出现同宿轨现象。

根据文献[1],当c>24.74时,S+与S-变为不稳定的,也就是说系统进入“混沌区”。此时三个平衡点O、S+、S-都不稳定。取初值

x=y=z=2,c=30,仿真停止时间为100,运行仿真,得到x、y、z的相图以及x-z,y-z,x-y的图形依次如下所示:

100100808060604040202000-20-200500100015002000250030003500400045005000-400500100015002000250030003500400045005000

10090807060504030201000500100015002000250030003500400045005000

可以看到,上述图形中,轨线绕着S+若干圈后,又绕着S-若干圈,如此循环,符合文献[1]的描述。

为了观察由系统趋向于与之异侧的平衡点向系统的混沌状态的过渡现象,在c=24.74附近反复不断尝试,最终发现当c=23.299时,可以观察到明显的过渡迹象。因此,取初值x=y=z=2,c=23.299,仿真停止时间为100,运行仿真,得到x、y、z的相图以及x-z,y-z,x-y的图形依次如下所示:

404030302020101000-10-10-205001000150020002500-2005001000150020002500

504540353025201510505001000150020002500

可以看到,在上图中,轨线看起来稳定在一条围绕与之异侧的平衡点的轨道上。仅从仿真运行的这段时间,无法判断系统是处于混沌状态还是会趋向于与之异侧的平衡点,可以看出明显的过渡迹象。

5.结论

本文初步了解了Lorenz系统,并简单观察了Lorenz混沌系统对

初值的敏感性,比较分析在不同参数下的Lorenz系统仿真结果,通过使用matlab的simulink对Lorenz系统仿真,直观地观察到了Lorenz系统的运行轨迹,加深了对Lorenz方程和混沌现象的理解。

参考文献:

[1]刘崇新.非线性电路理论及应用[M].西安:西安交通大学出版,2007.201-208 [2]赖宏慧.基于matlab的Lorenz系统模拟实验仿真[J].科技信息.2010,17:18-19 [3]同济大学数学系.《高等数学》.第六版.高等教育出版社,2007.6

本文来源:https://www.bwwdw.com/article/f9og.html

Top