混沌 若斯勒系统
2009年第1期(总第66期)牡丹江师范学院学报(自然科学版)JournalofMudanjiangNormalUniversityNo.1,2009TotalNo66
基于MATLAB求解R ssler方程和模拟仿真
陈永胜
(吉林师范大学数学学院,吉林四平136000)
摘 要:给出用MATLAB求解R ssler方程的一种方法,用立体图形动态显示出吸引子,应用MATLAB仿真工具进行混沌模拟,并对仿真结果作了说明和讨论.
关键词:R ssler方程;吸引子;MATLAB;混沌;仿真
[中图分类法]O175 [文献标识码]A [文章编号]1003-6180(2009)01-0009-02
R ssler方程是由R ssler在1976年建立的一个三维系统,一个常微分方程(ODE)系统用解析法精确求解是不可能的,只能用计算机数值计算,主要有欧拉法、亚当法和龙格 库塔法等.但用这些方法都需要编写一段很长的程序,若步长取得不恰当,带来的误差也很大.利用数学工具MATLAB求解微分方程却是一种较为方便的方法,不仅求解速度快,且具有通用性.
plot(t,y( ,3))%显示y(3)即z与时间的关系图
subplot(2,2,4)
plot(t,y)%显示三分量的关系图,
即吸引子figure;
plot3(y( ,1),y( ,2),y( ,3))
(3)求解结果.在MATLAB窗口中执行Rossler1.m文件,结果见图1,图2.
1 R ssler方程求解
ssler方程如下:=-y-z,dt=x+0.2y,(1)dt
=0.2-5.7+xz.dt
这是一个自治的方程组,求解过程:
(1)建立自定义函数.用edit命令建立自定义函数名为Rossler.m,内容为
functiondx=Rossler(t,x)
dx=[-x(2)-x(3);x(1)+0.2*x(2);0.2+(x(1)-5.7)*x(3)];
(2)用ode45命令求解.用edit命令建立一个命令文件Rossler1.m,内容为
clf
x0=[0;0;0];
[t,y]=ode45( Rossler ,[0,100],x0);subplot(2,2,1)
plot(t,y( ,1))%显示y(1)即x与时间的关系图
subplot(2,2,2)
plot(t,y( ,2))%显示y(2)即y与时间的关系图
subplot(2,2,3)
收稿日期:2008 11 24
基金项目:吉林省高等教育教学研究重点课题(2007-2009)
图1 图2
(4)动态显示吸引子的绘制过程.用edit命令建立一个命令文件Rossler2.m,内容为[t,y]=ode45( Rossler ,[0,100],[0,0,0]);
clf
axis([-30,30,-30,30,-20,20])%设定合适的坐标范围
view([30,60]);%设定较好的观察角度holdon%保持坐标轴不变
comet3(y( ,1),y( ,2),y( ,3));%显示吸引子绘制过程
(5)生成动画.用edit命令建立一个命令文件为Rossler3.m,内容为
[t,y]=ode45( Rossler ,[0,100],[0,0,0]);
m=moviein(100);
ax=[-30,30,-30,30,-20,20];axis(ax);shadingflat;
h=plot3(y( ,1),y( ,2),y( ,3));forj=1 100
rotate(h,[001],2);
!