MATLAB 课 程 期 末 作 业
以下报告完成的是大作业第七题:
7. Simulink仿真在高等数学课程中的应用
21130223 宋沛儒
基于MATLAB/Simulink对Lorenz系统仿真研究
21130223 宋沛儒
1.引言
1963年Lorenz通过观察大量大气现象并进行数值实验和理论思考,得到了一系列混沌运动的基本特征,提出了第一个奇异吸引子—Lorenz吸引子[1] ,Lorenz通过计算机模拟一个由三阶微分方程描述的天气模型时发现,在某些条件下同一个系统可以表现出非周期的无规则行为。Lorenz揭示了一系列混沌运动的基本特征,成为后人研究混沌理论的基石和起点,具有非常重要的意义。Lorenz系统方程如下:
?x?a(y?x),? ?y?cx?y?xz, (1)
?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时,为混沌系统,对初值具有敏感性,初值很小的差异会引起系统的大变化。例如在上例