基于MATLAB的各类混沌系统的计算机模拟(教学版).doc
《基于MATLAB的各类混沌系统的计算机模拟(教学版).doc》由会员分享,可在线阅读,更多相关《基于MATLAB的各类混沌系统的计算机模拟(教学版).doc(20页珍藏版)》请在冰豆网上搜索。
基于MATLAB的各类混沌系统的计算机模拟
―――《混沌实验教学平台的设计与实现》初期报告
物电05级1A班张丹伟20050003101
摘要:
本文利用数学软件MATLAB对Lorenz系统等六个重要的混沌模型进行数值计算,同时模拟出各类混沌系统的独特性质,如混沌吸引子,倍周期,初值敏感性,相图,分岔图等。
通过观察和分析上述特性,加深了我们对混沌现象的理解。
关键词:
混沌;微分方程;MATLAB;
引言.混沌探秘
混沌是非线性系统所独有且广泛存在的一种非周期运动形式,其覆盖面涉及到自然科学和社会科学的几乎每一个分支。
1972年12月29日,美国麻省理工学院教授、混沌学开创人之一E.N.洛伦兹在美国科学发展学会第139次会议上发表了题为《蝴蝶效应》的论文,提出一个貌似荒谬的论断:
在巴西一只蝴蝶翅膀的拍打能在美国得克萨斯州产生一个龙卷风,并由此提出了天气的不可准确预报性。
为什么会出现这种情况呢?
这是混沌在作怪!
“混沌”译自英语中“chaos”一词,原意是混乱、无序,在现代非线性理论中,混沌则是泛指在确定体系中出现的貌似无规则的、类随机的运动。
混沌现象是普遍的,就在我们身边,是与我们关系最密切的现象,我们就生活在混沌的海洋中。
一支燃着的香烟,在平稳的气流中缓缓升起一缕青烟,突然卷成一团团剧烈搅动的烟雾,向四方飘散;打开水龙头,先是平稳的层流,然后水花四溅,流动变的不规则,这就是湍流;一个风和日丽的夏天,突然风起云涌,来了一场暴风雨。
一面旗帜在风中飘扬,一片秋叶从树上落下,它们都在做混沌运动。
可见混沌始终围绕在我们的周围,一直与人类为伴。
一.混沌的基本概念
1.混沌:
目前尚无通用的严格的定义,一般认为,将不是由随机性外因引起的,而是由确定性方程(内因)直接得到的具有随机性的运动状态称为混沌。
2.相空间:
在连续动力系统中,用一组一阶微分方程描述运动,以状态变量(或状态向量)为坐标轴的空间构成系统的相空间。
系统的一个状态用相空间的一个点表示,通过该点有唯一的一条积分曲线。
3.混沌运动:
是确定性系统中局限于有限相空间的高度不稳定的运动。
所谓轨道高度不稳定,是指近邻的轨道随时间的发展会指数地分离。
由于这种不稳定性,系统的长时间行为会显示出某种混乱性。
4.分形和分维:
分形是n维空间一个点集的一种几何性质,该点集具有无限精细的结构,在任何尺度下都有自相似部分和整体相似性质,具有小于所在空间维数n的非整数维数。
分维就是用非整数维——分数维来定量地描述分形的基本性质。
5.不动点:
又称平衡点、定态。
不动点是系统状态变量所取的一组值,对于这些值系统不随时间变化。
在连续动力学系统中,相空间中有一个点,若满足当时,轨迹,则称为不动点。
6.吸引子:
指相空间的这样的一个点集s(或一个子空间),对s邻域的几乎任意一点,当时所有轨迹线均趋于s,吸引子是稳定的不动点。
7.奇异吸引子:
又称混沌吸引子,指相空间中具有分数维的吸引子的集合。
该吸引集由永不重复自身的一系列点组成,并且无论如何也不表现出任何周期性。
混沌轨道就运行在其吸引子集中。
8.分叉和分叉点:
又称分岔或分支。
指在某个或者某组参数发生变化时,长时间动力学运动的类型也发生变化。
这个参数值(或这组参数值)称为分叉点,在分叉点处参数的微小变化会产生不同性质的动力学特性,故系统在分叉点处是结构不稳定的。
9.周期解:
对于系统,当时,若存在,则称该系统有周期解。
不动点可以看作是周期为1的解,因为它满足。
10.初值敏感性:
对初始条件的敏感依赖是混沌的基本特征,也有人用它来定义混沌:
混沌系统是其终极状态极端敏感地依赖于系统的初始状态的系统。
敏感依赖性的一个严重后果就在于,使得系统的长期行为变得不可预见。
二.MATLAB中的龙格—库塔(Runge-Kutta)实现
MATLAB(MatrixLaboratory)是MathWorks公司开发的,目前国际上最流行应用最广的科学与工程计算机软件之一。
MATLAB软件以矩阵运算为基础,把计算,可视化,程序设计等有机的融合在一起,具有出色的数值计算能力和强大的图形处理功能。
基于Runge—Kutta法,MATLAB提供了求解微分方程数值解的函数,一般调用格式是:
其中fname是定义的函数文件名,该函数文件必须返回一个列向量。
Tspan形式是[t0,tf],表示求解区间,y0是初始状态向量。
这两个函数分别采用“二阶,三阶Runge—Kutta法”和“四阶,五阶Runge—Kutta法”,并采用自适应的求解方法,即当解的变化较慢时采用较大的步长,从而使计算速度很快,当解的变化较快时步长会自动变小长,从而使计算精度很高。
在MATLAB中,一般选取四阶的龙格库塔方法。
三.Lorenz混沌系统
美国气象学家洛伦兹(E.N.Lorenz)于1963年在大气科学杂志上提出第一个表现奇异吸引子的动力学系统。
该混沌系统模型可以用下列微分方程组描述:
利用MATLAB数学软件对上面微分方程求解,进行数值模拟。
首先建立M-文件Lorenz.m定义脚本函数,然后编程调用,其中x
(1)表示x,x
(2)表示y,x(3)表示z,程序如下:
functionr=lorenz(t,x)
globala;
globalb;
globalc;
r=[-c*(x
(1)-x
(2));a*x
(1)-x
(2)-x
(1)*x(3);b*(x
(1)*x
(2)-x(3))];
clear;
globala;
globalb;
globalc;
b=8/3;c=10;
t0=[0,100];f0=[1,1,1];
fora=10:
30
[t,x]=ode45(@lorenz,t0,f0);
a
subplot(3,1,1);
plot(t,x(:
1),'r',t,x(:
2),'g',t,x(:
3),'b');
title('Lorenz模型变量时域响应');legend('x','y','z');xlabel('t');
subplot(3,1,2);
plot3(x(:
1),x(:
2),x(:
3));
title('Lorenz模型相图');xlabel('x');ylabel('y');zlabel('z');
gridon;
subplot(3,1,3);
plot(x(:
1),x(:
3));
title('Lorenz模型X—Z平面相图');xlabel('x');ylabel('z');
gridon;
pause;
end
1.固定参数b和c,设置初始值f0和计算时间t0,通过改变参数a可以发现系统逐步进入混沌状态的过程。
2.Lorenz吸引子
当a=28时,系统已经完全进入混沌状态,此时出现双涡旋吸引子,如下所示:
3.倍周期:
通过系数的调试可以得到Lorenz混沌的一个单倍周期和两个多倍周期,如下:
4.初值敏感性:
保持初值x0和y0不变,即x0=y0=1,改变z0为1.001,千分之一的变化会引起系统行为的显著改变,如下图所示:
四.Rossler混沌系统
Rossler系统是化学反应系统的简化模型,是非线性动力学中非常著名的方程,该混沌系统模型可以用下列微分方程组描述
同样地,利用MATLAB编程求解(程序见附录),可以对该模型进行分析。
1.逐步改变参数,观察其进入混沌状态。
2.Rossler吸引子:
3.倍周期:
通过调整参数和初始值,可以得到单倍周期和2倍周期,如下图:
初值敏感性:
五.蔡氏电路混沌系统
1983年美国电学专家蔡少棠(L.O.Chua)首次提出了著名的蔡氏电路(Chua‘scircuit),它是混沌发展史上的一个重要里程碑.它使人们从被动的研究混沌现象向主动的设计和控制混沌迈出了关键的一步.蔡氏电路是目前众多混沌电路中最具典型代表性的一种。
对于单涡旋的变形蔡氏电路的微分方程组为:
当=5.5,=-7.4,=0.25,=0.1时出现混沌状态,如图所示:
其初值敏感性如下所示:
对于多涡旋的情况,例如可以用多项式产生三涡卷蔡氏混沌吸引子,其无量纲归一化状态方程可以写为:
其中,参数=12.8,=19.1,实验中固定b=-1.1,c=0.45。
1.改变参数a,观察该电路模型的进入混沌状态的过程
当a=0.6时,呈现三涡旋吸引子如下:
其初值敏感性:
六.Duffing方程
杜芬(Duffing)方程指的是非线性振子的间谐受迫振动方程:
该写为自洽的微分方程组为:
选取参数a=2.09,b=0.1,c=0.5,可以得到该混沌模型的相图:
七.Logistic方程
Logistic方程是离散映射方程:
,n=0,1,2,…;
其相图如下:
其分岔图如下:
八.Henon方程
其中,n=0,1,2,…;a=1..28,b=-0.3.
其相图如下:
九.总结与感想
在这次科技制作中,我主要的工作是对在已有的混沌系统方程基础上,利用MATLAB进行编程,模拟混沌系统。
由于混沌对初值和参数的依赖性很大,所以我尽可能地通过网上或者书籍寻找这些参数,减少调试时间;当然,这样不能很好地探究整个混沌系统的特性,只能停留在理论的层面上。
因此,在接下来的工作里,一方面继续学习混沌理论(如吸引子,倍周期,Lyapunovexponent等),加深对混沌的认识;另一方面,着手混沌应用,如混沌同步控制和图像加密通信。
参考书:
1.《TheEssenceofChaos》(《混沌的本质》)E.N.洛仑兹,气象出版社,北京1997
2.《精通MATLAB7》王正林刘明,电子工业出版社,北京2007