基于matlab的Lorenz系统的仿真研究资料 下载本文

内容发布更新时间 : 2024/9/22 10:07:08星期一 下面是文章的全部内容请认真阅读。

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时,为混沌系统,对初值具有敏感性,初值很小的差异会引起系统的大变化。例如在上例