数学实验报告之一——Rossler方程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学实验报告之一——Rossler方程
自动化学院2001级刘和松
一 .实验目的
掌握用MATLAB软件求解微分方程的基本方法,掌握求微分方程数值解的欧拉方法,了解龙格——库塔方法的思想;了解二次迭代过程中三种图形表示的含义,观察分枝与混沌现象,学会分析迭代对参数的敏感性。
Rossler方程组是非线性动力学中一个非常著名的方程,在理论和实际中都有非常重要的价值。但是,由于它没有精确的解析解,我们只能通过数值方法对其进行求解。
二.试验内容——Rossler方程
Rossler方程组
当固定参数b=2,c=4时,试讨论随参数a由小到大变化(如a∈(0,0.65))时方程解的变化情况,并且画出空间曲线图形,观察空间曲线是否形成混沌状。
三.问题分析
对于Rossler方程组这样的非线性微分方程组,不可能求得其解析解。利用MatLab可以用数值解法进行模拟。
在物理意义上,t一般表示时间,x,y,z通常表示几个随时间变化的物理量,例如几种生物种群的数量,或者是几个常见的物理量。
对于混沌现象,我们通常更关心变量的最终归宿。因此,在研究时,我们有时舍去方程解的前几组数值。
四.MatLab求解
建立函数M文件rossler.m,在其中用x(1)表示x,用x(2)表示y,用x(3)表示z.
function r=rossler(t,x)
global a;
global b;
global c;
r=[-x(2)-x(3);x(1)+a*x(2);b+x(3)*(x(1)-c)];
主程序如下:
global a;
global b;
global c;
b=2;
c=4;
t0=[0,200];
for a=0:0.02:0.65
[t,x]=ode45('rossler',t0,[0,0,0]);
a
subplot(1,2,1);
plot(t,x(:,1),'r',t,x(:,2),'g',t,x(:,3),'b');
title('x(红色),y(绿色),z(篮色)随t变化情况');xlabel('t');
subplot(1,2,2);
plot3(x(:,1),x(:,2),x(:,3))
title('相图');xlabel('x');ylabel('y');zlabel('z');
pause
end
1. b=2,c=4
a=0.00
当a=0时,(x,y,z)收敛于(0,0.5,0.5)
当a=0.05时,(x,y,z)仍然收敛,但收敛速度较小。
a=0.05
a=0.12
当a=0.12时,(x,y,z)仍然收敛(准确的说,只能说具有收敛的趋势,其收敛速度已大大降低)。
a=0.16
a=0.16时,(x,y,z)已经发散。但是,(x,y,z)并不是发散于无穷大,而是周期性变化。
a=0.20
随着a的增大,(x,y,z)接近其极限环的速度加快。
a=0.28
a=0.38
a=0.54
2.因为只关心迭代的最终归宿,我们改变作图方法:忽略初值,只打印迭代末尾的100个值。
主程序如下:
global a;
global b;
global c;
b=2;
c=4;
t0=[0,200];
for a=0:0.02:0.65
[t,x]=ode45('rossler',t0,[0,0,0]);
a
t(1:length(t)-100)=[];
x(1:length(x)-100,:)=[];
subplot(1,2,1);
plot(t,x(:,1),'r',t,x(:,2),'g',t,x(:,3),'b');
title('x(红色),y(绿色),z(篮色)随t变化情况');xlabel('t'); subplot(1,2,2);
plot3(x(:,1),x(:,2),x(:,3));
title('相图');xlabel('x');ylabel('y');zlabel('z');
pause
end
a=0
a=0.10
a=0.22
右边的相图形象地表示了(x,y,z)迭代的最终归宿。象这种(x,y,z)趋向于一个环的,我们称这样的环为“极限环”。
a=0.36
当a增大时,单个极限环的稳定性已经失去,进入二周期极限环。
a=0.38
随着a的增大,二周期极限环也失去稳定性。
3.当a较大时,增加迭代次数,可以更好地看出规律。
a=0.40
a=0.42
a=0.46
a=0.52
由以上几图可以看出,a增大时,任意周期的极限环的稳定性都将失去。这就是形成混沌(chaos)的必要条件。
五、总结体会
Rossler方程组是非线性动力学中非常著名的方程。由于非线性动力学与线性有非常大的区别,我们也不能通过分析的方法求得它的解析解,因此只能采取数值模拟的方法近似求解。通过这个方程组,我们可以窥见混沌的一角。
通过本次实验,我进一步熟悉了MatLab的工作环境,学会了用MatLab解方程的方法,掌握了MatLab数组的操作,强化了用MatLab作图的能力。