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