基于matlab的Lorenz系统的仿真研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB
课
程
期
末
作
业
以下报告完成的是大作业第七题:
7. Simulink仿真在高等数学课程中的应用
21130223 宋沛儒
基于MATLAB/Simulink 对Lorenz 系统仿真研究
21130223 宋沛儒
1.引言
1963年Lorenz 通过观察大量大气现象并进行数值实验和理论思考,得到了一系列混沌运动的基本特征,提出了第一个奇异吸引子—Lorenz 吸引子[1] ,Lorenz 通过计算机模拟一个由三阶微分方程描述的天气模型时发现,在某些条件下同一个系统可以表现出非周期的无规则行为。
Lorenz 揭示了一系列混沌运动的基本特征,成为后人研究混沌理论的基石和起点,具有非常重要的意义。
Lorenz 系统方程如下:
(),
,.x a y x y cx y xz z xy bz =-⎧⎪
=--⎨⎪=-⎩
(1)
其中,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 系统的仿真
由文献[1]可知在上述方程组(1)中,令0===z y x
,当c >1时,系统有三个平衡点:)0,0,0(0S , )1,)1(,)1((------c c b c b S ,)1,)1(,)1((---+c c b c b S 。
当c =1时,系统在原点失去稳定。
当c <1时,原点是唯一的平衡点并且是汇点。
利用matlab 的Simulink 功能,搭建Lorenz 系统模型,并探讨
参数对Lorenz系统的影响。
仿真模型如图:
在仿真模型中,取参数a=10,b=8/3,观察参数c取不同值时系统的运行状态。
根据文献[1]的分析,
当参数0<c<1时,只有一个稳定平衡点O(0,0,0)。
取初值为
x=y=z=2,参数c=0.5,仿真停止时间取为50,运行仿真。
得到x、y、z的相图以及x-z,y-z,x-y的图形依次如下所示:
50
100
150
00.511.522.53
可见,系统很快地趋向并稳定在O (0,0,0),验证了前面所述。
当c>1时,系统有三个平衡点:原点O(0,0,0)和S+,S-。
此时原点的特征值中有正值,因此原点为鞍点,是不稳定平衡点。
当1<c<13.926时,不稳定流形最终螺旋地趋于与之同侧的平衡点S+或S-;当c=13.926时,不稳定流形刚好无限趋于原点O ,即出现同宿轨;当c>13.926时,不稳定流形将绕到另一侧,最终趋于与之异侧的S+或S-。
可见,c 是一个同宿分岔点。
因此,取初值x=y=z=2,c=8,仿真
停止时间为50,运行仿真,得到x 、y 、z 的相图以及x-z ,y-z ,x-y 的图形依次如下所示:
0501001502002503003502
34567150200250300350400450
2
34567
0100200300400500600700
24681012
可以看到,系统趋于与之同侧的平衡点S+或S-。
取初值x=y=z=2,c=18,仿真停止时间为50,运行仿真,得到x、y、z的相图以及x-z,y-z,x-y的图形依次如下所示:
可以看到,系统趋于与之同侧的平衡点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的图形依次如下所示:
500
1000
1500
2000
2500
3000
05101520253035404550
可以看到,虽然最终轨线趋向于与之同侧的平衡点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 的图形依次如下所示: 0500100015002000250030003500400045005000-2002040
60
80
1000500100015002000250030003500400045005000-40-20
20
40
60
80
100
0500100015002000250030003500400045005000
010
20
30
40
50
60
70
80
90
100
可以看到,上述图形中,轨线绕着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的图形依次如下所示:
可以看到,在上图中,轨线看起来稳定在一条围绕与之异侧的平
衡点的轨道上。
仅从仿真运行的这段时间,无法判断系统是处于混沌
状态还是会趋向于与之异侧的平衡点,可以看出明显的过渡迹象。
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。