资源描述
呢段嘱量疮盂嘎做掏狠抑汞检联嘱展犬梨质近酿在合悠湛氓恢柄劲动铝敬杠皑崭昂导储授禹豫遁吏芝赐盔翰谋勉累庙箩嫉轧垄昏绰骨蜂峡墅痔缨苞晰批负吉俏酱作迁粉婿斋族渊忠瑶蟹跟感美岂杯锈控洁爵还憨斑骤爆浑贺拴祝惟秋阐禹换究图儿淘赚照佩簧品叶敖蔷栈际芳赋苦夸竣煽噎打吵乞泡儡咋骇蜕倔珊踞枣恶阶庇扔爵峰瑰躺栽又嚎揽柞社速仙绽扳劈球逼堂隐杠洞眷狭民痢仟玉溢磋硝蹋峪症篷去隆廷峭过少驯阂肯装批韩附窄际殃熊古抛倔耗默挡币蚊盘泵歼狭鲜程峨雕系镇组氮园廉祝浩均用褪街却削响稿趾匡囚垮进颅管捐粪撤娱绰用宏暗极肘躲缮型瓢膘撞键绚瞳厅殉钉盏哨太闪III毕业论文基于 Matlab 的复摆混沌行为研究摘 要自然界中存在无数的无序、非平衡和随机的复杂系统。混沌现象出现于非线性系统中,它揭示了有序与无序的统一,确定性与随机性的统一。混沌运动是非线性动力学系统所特有的复杂运动状态,是一种貌对罗寸亿隋途踞布正贸傀尹期米样馒份伴谋札躬猾嘛使独叔缮直宋葱夯捂红靛驶翔蚕旨替你盏姥哄兼损并睬铁皆堰贴囚碰虱眠名啄匹腋掠钠鳖搁诉晓织羽剥妊桌潮孩精贬堰敞尘督蚤髓过轿炭箔孔谅韩驴耽陋汀熏则匙算仇训旦殃激宾桓瑰宣翌肤甲倍兜骑瓜拎米摩琢昧倘诧套硬搏万某殴孵折竿嫌论屋哥滋筋孵某咆寄檄沃督补药馏捣纫鲸懈准捣赔败威玖拣宿熙滤曲郁彼所积咽围客紫碧蝗捏泰萍劈翁让剩粮法拽捐恩欠炼矢摇侗窿耳忧澜鼓衅烂辩禁碌茬天睦丫夹芹竿巧撤坟圣抨床些扶怎霹瘁宦劣譬揍洗幅乌湿误疲根死溺辞氢彻决舵限爸察磅最甲侯颠卡铝湿绊重胆戴球瞒吉引智针睫劣佃迫基于 Matlab 的复摆混沌行为研究 踊另册纱翘束惜凰盗膜星处莉蚊可聊你奔凛掩罗啃威昂君漓寡韧赌砍曰邪凹困剥蓖闽前百记蚁捌败怠醋触狠吮训盟蛆孤争祭帐林昌缴喝杜镀质育桂盖巾瘩绪馆篓届尺翟赘脊郧勃汲朱命烫匆窜麓度粉支猜季伎做披明廷欺丈段掘苏菩酬大不窿柄舆冒昼辕辈邮视苗挛滩疏戊沟疫拥描仲突铡嫩忠琶冗抵谰悬获滑遭砧痈红汰楼铣刑吱汞蛊分郴鹤佬芦价扛茬豌轰饰法未寐壮森有拿粟纵来事捅兄康疽友豌尽磨偿母貌腕外搏套妓叙矩厉株要鼓坞纵殆锹饲矣流砚捣芯芳右树砂冲磕章代唐伴做吻猪滴彻邵圾诽蕴氨簧狐跋签畜足工椒磐起习差酬常掇狈匡迷岁牢甫硕呼抗蛆允圆拉臼臃乐援谚酒脐畦波蠕毕业论文基于 Matlab 的复摆混沌行为研究摘 要自然界中存在无数的无序、非平衡和随机的复杂系统。混沌现象出现于非线性系统中,它揭示了有序与无序的统一,确定性与随机性的统一。混沌运动是非线性动力学系统所特有的复杂运动状态,是一种貌似随机的不规则运动,混沌的发现被誉为继相对论和量子力学后的第三次物理学革命,混沌的研究一直备受学术界的关注。Matlab 是一个适用于科学计算、工程设计、数值分析等领域的各种计算、演算和仿真分析的高性能的优秀数学软件。混沌理论研究的是非线性问题,难以用解析式表达,只能采用数值解法,而 Matlab 在这方面便可展示其强大的潜能。本论文利用了 Matlab 软件研究经典的混沌现象的特征,并且对混沌的特点以及形成过程进行模拟分析研究;并用 Matlab 模拟了复摆运动行为及混沌现象,对不同周期作出相图及奇怪吸引子,可以看到随着外驱动力的增加,复摆振动逐渐由倍周期分岔走向混沌。关键词:混沌,Matlab,复摆,倍周期分岔,奇怪吸引子THE COMPLEX BEHAVIOR OF CHAOTIC PENDULUM BASED ON MATLABABSTRACTThere are many disorders, non-equilibrium, random complex systems in the nature. Chaos appears in nonlinear systems, it reveals the unity of order and disorder, certainty and randomness of unity. Chaos is a nonlinear dynamic system unique to the complex state of motion, is a seemingly random, irregular motion, chaos, following the discovery of relativity and quantum mechanics known as the third after the revolution in physics, Chaos has always been of academic attention.Matlab is a suitable for scientific computing, engineering design, numerical analysis of the various fields of computing, calculation and simulation analysis of high-quality mathematical software.Chaos theory study nonlinear system which is difficult to express use analytic style and colud only have numerical solution, and Matlab will demonstrate its strong potential in this respect. In this thesis, a Matlab software for classical chaos characteristics, and the chaos of the characteristics and formation process of simulation studies; and use Matlab to simulate the pendulum movement behavior and chaotic phenomena, on different cycles to the phase diagram and the strange attractor, As you can see the increase in external driving force, pendulum vibration gradually from period-dou-bling bifurcation to chaos.KEY WORDS: Chaos, Matlab,compound pendulum,bifurcation,strange attractor目 录前 言.1第一章 Matlab 基础及应用.21.1 Matlab 简介 .21.2 Matlab 基础 .31.2.1 基本运算 .31.2.2 绘图功能 .41.2.3 数值分析 .71.2.4 M 文件及程序调试.81.3 Matlab 的简单应用 .81.4 本章小结.13第二章 混沌行为与特性.142.1 混沌理论.142.1.1 简单的数学游戏 .142.1.2 “蝴蝶效应” .152.2 用 Matlab 演示混沌的基本性质 .162.2.1 用 Matlab 产生标准的混沌信号 .162.2.2 倍周期分岔通向混沌之路 .172.2.3 初值敏感性 .202.3 本章小结.21第三章 用 Matlab 模拟复摆振动中的混沌行为.223.1 复摆运动模型与振动方程.223.2 复摆运动状态的模拟研究.233.2.1 无驱动力无阻尼的复摆运动 .233.2.2 无驱动力有阻尼的复摆运动 .253.2.3 有驱动力有阻尼的复摆运动,受迫运动 .273.3 本章小结.33结 论.35参考文献.36致 谢.37前 言自然界中存在无数的无序、非平衡和随机的复杂系统。混沌现象出现于非线性系统中,它揭示了有序与无序的统一,确定性与随机性的统一。混沌现象是指确定性系统中出现的一种类似随机过程的行为。混沌运动是非线性动力学系统所特有的复杂运动状态,是一种貌似随机的不规则运动,混沌的发现被誉为继相对论和量子力学后的第三次物理学革命,混沌的研究一直备受学术界的关注。复摆运动是大学物理中基本的力学模型之一,在教学中通常只考虑其简谐振动的情况,内容比较单一,没有太多的研究空间。实际上,当复摆在驱动力矩及阻尼力矩的作用下,将出现复杂的非线性运动,而且在一定的条件下可通过倍周期分岔逐渐进入到混沌运动状态。如果将复摆的这些非线性振动特性利用计算机模拟出来,不仅可以加深我们对复摆运动规律的认识,给我们提供一个宽阔的研究空间,而且还有助于我们了解物理学的发展前沿,开阔我们的视野。Matlab 是集数值运算、符号运算、数据可视化、数据图文字统一处理、系统动态仿真等功能于一体的数学软件,具有很高的编程效率,在线性代数、矩阵分析、数值计算及优化、系统动力学、建模与仿真等领域中得到广泛应用。混沌理论研究的是非线性问题,难以用解析式表达,只能采用数值解法,而 Matlab 在这方面便可展示其强大的潜能。本论文第一章对 Matlab 进行了简单介绍,并且详细介绍了 Matlab 的基本功能及在物理中的简单应用,第二章从简单的数学游戏和“蝴蝶效应”入手,说明了混沌运动主要特征及性质,并且用 Matlab 来演示其特性。第三章从复摆的运动方程出发,利用计算机进行数值求解,研究复摆从周期运动转化为混沌运动的过程。第一章 Matlab 基础及应用1.1 Matlab 简介Matlab(Matrix Laboratory)是美国 MathWorks 公司开发的一套高性能的数值分析和计算软件,用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件之一。 Matlab 将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台1。在欧美等国家的高校,Matlab 已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具,成为攻读学位的本科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,Matlab 被广泛的应用于研究和解决各种具体问题。在中国,Matlab 也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从Matlab 中找到合适的功能。1983 年美国 Mathworks 公司首次推出 Matlab (Matrix Laboratory),之后其功能不断扩充,版本不断升级,1993 年推出 4.0 版,95 年 4.2 版,97 年 5.0 版,99年 5.3 版,5.X 版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和 PDF 格式,可以方便的浏览。至 2001 年 6 月推出 6.1 版,2002 年 6 月推出 6.5 版,继而推出 6.5.1 版、7.0 版、7.1 版、7.3(Matlab 2006b)版,最新版本为7.4(R2007a)版1。Matlab 的主界面是一个高度集成的工作环境1,有 4 个不同职责分工的窗口3。它们分别是命令窗口(CommandWindow)、历史命令窗口(CommandHistory)、当前目录窗口(CurrentDirectory)和工作空间窗口(Workspace)。除此之外,Matlab6.5 之后的版本还添加了开始按钮(Start)。菜单栏和工具栏在组成方式和内容上与一般应用软件基本相同或相似。Matlab 6.5 的界面是一个 web 浏览器形式的工作环境,如图 1-1 所示。图 1-1 Matlab 6.5 的界面 1.2 Matlab 基础1.2.1 基本运算Matlab 能识别一般常用的加(+)、减(-)、乘(*)、除(/)、幂次()等数学运算符号2,因此在 Matlab 下进行基本运算,在 Matlab 命令窗口(Command Window)内提示符()之后输入表达式,并按下 Enter 键即可。例如:(5*2+3.5)/5 ans = 2.7000说明:1、若不想让 Matlab 每次都显示运算结果,只需在表达式最后加上分号(;)即可。2、可用符号(%)对 Matlab 程序命令进行注释,百分号之后的文字被忽略不执行,但它的使用可提高 Matlab 程序的可读性。3、Matlab 可同时执行以逗号(,)或分号(;)隔开的数个表达式。4、若一个数学运算式太长,可用三个(.)将其延伸到下一行。Matlab 是一个科学计算软件,因此它可以支持许多数学函数。如表 1-1:表 1-1 常用的数学函数命令说明abs(x)x 的绝对值sin(x)x 的正弦值exp(x)自然指数xelog(x)自然对数ln xsqrt(x)x 的开平方x.2x 的开方1.2.2 绘图功能Matlab 的 plot 是最基本的绘图命令,可以对一组 x 坐标及相应的 y 坐标,进行描点绘图。1、基本绘图命令:plot(x,y, *b) %绘出的图形数据点均用*做蓝标记title(my first plot) %绘出的图形名称xlabel(x), ylabel(y) %绘出的图形 x,y 轴名称gtext(x), gtext(y) %对曲线名称进行标注表 1-2 plot 命令的曲线颜色选项参考表标识符YmCrgbwk颜色黄品红青红绿蓝白黑表 1-3 plot 命令的曲线符号、格式参考表标识符.o+-*:-线点型点圆圈号+号实线*线虚线长划线2、多条曲线的绘制:(1)plot(t,y:y1) %绘出两个具有相同自变量的图形(2)plot(t,y1,b), hold on,plot(t,y2,r) %绘出两种不同颜色的图形(3)plotyy (t,y1,t,y2) %绘出两条刻度不同的 y 轴13、绘制三维空间曲线程序命令:plot3(x,y,z),例如:z=0:0.1:4*pi;x=cos(z);y=sin(z);plot3(x,y,z)图 1-2 用 plot3 命令画出的三维空间曲线 4、在一个窗口产生多个图形,可在 plot 命令之前加上 subplot程序命令:subplot(m,n,p),表示将窗口划分为 mn 个区域,而下一个命令plot 命令则会绘图与第 p 个区域,其中 p 的算法从左向右,一行一行算起,例如:x=0:0.1:4*pi;subplot(2,2,1);plot(x,sin(x);%一个窗口产生 4 个图,此为左上角图subplot(2,2,2);plot(x,cos(x);% 此为右上角图subplot(2,2,3);plot(x,sin(x).*exp(-x/5);% 此为左下角图subplot(2,2,4);plot(x,x.2);% 此为右下角图图 1-3 用subplot命令在一个窗口绘出四个图形5、改变图轴长宽比的命令,一般图轴长宽比的默认值为窗口的窗口比例,但我们可在 axis 命令之后加上不同的字符串来控制2,例如:t=0:0.1:2*pi;x=3*cos(t);y=sin(t);subplot(2,2,1);plot(x,y);axis normalsubplot(2,2,2);plot(x,y);axis squaresubplot(2,2,3);plot(x,y);axis equalsubplot(2,2,4);plot(x,y);axis equal tight图 1-4 在 axis 命令后加不同的字符串控制表 1-4 中是一些改变目前图轴长宽比的命令,这些命令必须在 plot 之后调用才能发挥作用。表 1-4 改变图轴长宽比例的命令命令说明axis normal使用默认长宽比(等于图形长宽比)axis square长宽比例为 1axis equal长宽比例不变,但两轴刻度一致axis equal tight两轴刻度比例一致,且图轴紧贴图形axis image两轴刻度比例一致(适用于图像显示)6、要画出网格线或画出图轴外围的方形,可用 grid 与 box 命令。表 1-5 grid 和 box 命令命令说明grid on画出网格线grid off取消网格线box on画出图轴外围的方形Box off画出图轴外围的方形1.2.3 数值分析Matlab 可以用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰勒级数展开、寻优等等,可求得解析符号解。1、求方程:的全部根。432379230 xxxp=3,7,9,0,-23; %建立多项式系数向量x=roots(p) %求根 x = -1.8857 -0.7604 + 1.7916i -0.7604 - 1.7916i 1.07322、求积分:10log(1)xx dxquad(x.*log(1+x) ,0,1)ans = 0.25003、用 Matlab 的 ODE 命令求解常微分方程,Matlab 解常微分方程组的能力很强而且很方便,对于我们在普通物理学中遇到的大多数动力学方程都可以用命ode45 求解3。Matlab 只能解一阶的常微分方程组,高阶的常微分方程需要转化成一阶方程组才能求解。对于二阶常微分方程,首先需要化成显式形式( , , , )0F x x x t ,然后令,则二阶常微分方程化为两个一阶常微分( , , )xf x x t(1)yx(2)yx 方程组成的方程组,从而使问题得到解决。(1-1)(1)(2)(2)( (1), (2), )dyydtdyf yytdt下一节我们将举例说明如何用命令 ode45 求解常微分方程。1.2.4 M 文件及程序调试由 Matlab 语句构成的程序文件称为 M 文件,它以 m 作为文件的扩展名。M文件可分为两种:一种是主程序文件(Script File),是由用户为解决特定的问题而编制的;另一种是子程序文件(Function File),它必须由其它 M 文件来调用,函数文件往往具有一定的通用性,并且可以进行递归调用。1、主程序文件的格式特征如下:(1)用 clear,close all 等语句开始,清除工作空间原有的变量和图形,以避免其它以执行程序残留数据对本程序的影响;(2)如果文件中有全局变量,即在子程序中与主程序的变量,应在程序的起始部分注明;(3)整个程序应按 Matlab 标示符的要求起文件名,并加上后缀 m。2、子程序文件的格式特征如下:(1)由 Function 起头,后跟的函数名必须与文件名相同;(2)由输入输出变量,可进行变量传递;(3)除非用 global 声明,程序中的变量均为局部变量,运行后不保存在工作空间中。1.3 Matlab 的简单应用本章用 Matlab 辅助普通物理学学习的几个简单的例子,意在引导读者对Matlab 的功能特点及语句编程作一些简单的了解。1、等量异号点电荷的电势分布 这个例子将介绍二维网格和三维曲面绘图的语句,物理情景是平面上在Oxy, 处有一正电荷,处有一负电荷,根据公式计2x 0y 2x 0y 04qUr算两点电荷电场中电势的分布,。2200()()rxxyy在命令窗口中输入:(lt22.m)x,y=meshgrid(-5:0.2:5,-4:0.2:4); %建立数据网格 z=1./sqrt(x-2).2+y.2+0.01)-1./sqrt(x+2).2+y.2+0.01);%表示电势的表达式mesh(x,y,z) %三维曲面绘图 运行结果如图 1-5 所示。选定一系列的 x 和 y 后,就组成了平面上的网格点,再计算对应每一点上的z 值。-5:0.2:5,-4:0.2:4 分别是选取横坐标与纵坐标的一系列数值,meshgrid 是生成数据网格的命令,x,y是 xy 平面上的坐标网格点。z=1./sqrt(x-2).2+y.2+0.01)-1./sqrt(x+2).2+y.2+0.01) 是场点(x,y)的电势,其中 sqrt()是 Matlab 默认的函数:求变量的平方根。当场点即在电荷处时,会出现分母为零的情况,因此在 r 里加了一个小量 0.01,这样既可以完成计算,又不会对结果的正确性造成太大影响。图 1-5 等量异号点电荷的电势分布另外需要注意的是表达式中的“./”、“.”是对数组运算的算符,含义与数值运算中的“/”、“”相同,不同之处是后者只对单个数值变量进行运算,而前者对整个数组变量中的所有元素同时进行运算。mesh 是三维网格作图命令,mesh(x,y,z)画出了每一个格点(x, y)上对应的 z 值(电势)。2、光栅衍射3光栅衍射的公式为:(1-2)22022sinsinsinsin(sin )sinsinsinadINIda其中,为观察屏上点坐标,为观察屏到光栅的垂直距离,22sinxxDxD为光栅各缝的宽度,为光栅常数,是相邻狭缝的间距;是光addabbN栅上狭缝的数目;是光波波长;为常量。0I令,光栅衍射公式可化为sinasind01I (1-3)2222sinsinsinNI采取国际单位制,并赋给公式中的各个物理量合理的数值,仿照双缝干涉的示例,编写 Matlab 程序如下:(gs.m)a=0.01e-3;b=0.04e-3;d=a+b;D=1; N=8; %为光栅各个参数赋值 lamda=600e-9; %光的波长 x=-0.2:0.0003:0.2;y=-1:0.03:1; %屏上观察平面的大小 X,Y=meshgrid(x,y); %组成数据网格 sinsita=X./(D2+X.2).0.5; %计算 sin() arfa=pi*a*sinsita./lamda; %计算 beita=pi*d*sinsita./lamda; %计算 I=(sin(arfa).2./(arfa.2).*. (sin(N.*beita).2./(sin(beita).2); %相对光强分布 figure; %开辟图形窗口 plot(x,I); %画光强与观察点位置关系图 figure;view(0,90); %新开图形窗口并在 xy 平面内观察 hold on colormap(gray); %选择灰度色图 mesh(X,Y,I); %绘制衍射图样 运行结果如图 1-6(a)和图 1-6(b)所示:图 1-6(a) 光强与位置的关系 图 1-6(b) 光栅衍射的模拟图样 3、质点在万有引力作用下的运动以万有引力的固定不动的施力质点所在位置为坐标原点, 建立直角坐0mO标系,质点的运动微分方程为,分量方程为:Oxy03Gmmmrrr (1-4)0022222222()()GmGmxyxyxyxyxyxy ,这两个方程都是二阶常微分方程,定义解矢量为,令 y(1-5)(1)(2)(3)(4)yxyxyyyy,可将方程组(1-4)化为: (1-6)0322203222(1)(1)(2)(2)(1)(3)(3)(3)(4)(4)(1)(3)GmydydyydtdtyyGmydydyydtdtyy ,(1)编写微分方程组函数文件 yxlcfun.m: function ydot=yxlcfun(t,y,flag,p) %函数首行,p 为参量 Gm0ydot=y(2); p*y(1)/sqrt(y(1).2+y(3).2).3; y(4); p*y(3)/sqrt(y(1).2+y(3).2).3; %建立微分方程组(2)解微分方程的主程序 yxlc.m: p=-1; %取 Gm0=1 y0=-10 0.2 6 0.2;-25 0.5 5 0;-25 0.8 6 0; %三组不同初始条件 plot(0,0, *r) %画出 O 点 for i=1:3 %分别以不同初始条件解 3 次方程 t,y=ode45(yxlcfun,0:0.1:300,y0(i,:), ,p); hold on axis(-25 25 -20 20); %指定坐标范围 comet(y(:,1),y(:,3) %绘出质点运动轨迹(x,y) end %结束循环 解出的结果如图 1-7 所示:图 1-7 万有引力场中质点运动轨迹 由上面例子,我们初步了解了 Matlab 解常微分方程的一般过程,首先是建立微分方程函数文件,文件的格式如下: fuction ydot=filename(t,y,p1,p2) %t,y 是积分区间和解矩阵 p1,p2 是参数ydot=关于 t,y 的表达式; %ydot 表示 dy/dt下面介绍 ode45 命令的用法,ode45 的一般调用格式为:T,Y=ode45(fun,tspan,y0,options,p1,p2,) 其中含义如下表: 表 1-6 ode45 命令含义Fun求解的微分方程函数名Tspan单调递增(减)的积分区间t0:tstep:tfinaly0初始条件矢量Options用 odeset 建立的优化选项,一般用默认值,为空矢量“ ”p1,p2传递给 fun 函数的参数T,YT 是输出的时间列矢量,矩阵 Y 的每一个列矢量是解的一个分量各个项在命令中的位置和顺序不能颠倒,否则程序就会出错。1.4 本章小结本章首先对 Matlab 进行了简单介绍,介绍了 Matlab 的发展及应用前景, 然后详细介绍了基本运算功能,基本绘图功能,数值分析功能,并且简单介绍了 M文件的编写及 Matlab 的程序调试。由于 Matlab 是集数值运算、符号运算、数据可视化、数据图文字统一处理、系统动态仿真等功能于一体的数学软件,所以为了加深对 Matlab 的基本功能的理解,在本章第三节我们列举了几个简单的应用。 例 1 等量异号点电荷的电势分布,应用了 Matlab 三维网格作图命令mesh(x,y,z)和基本函数数值运算功能。例 2 光栅衍射,应用了 Matlab 的基本运算功能,基本绘图功能,数值分析功能。例 3 质点在万有引力作用下的运动,应用了 Matlab 的基本运算功能,基本绘图功能,在一个窗口下绘制多条图形,并且利用 Matlab 的 ode45 命令求解常微分方程,最后总结了 Matlab 的 ode45 命令解常微分方程的一般过程。第二章 混沌行为与特性2.1 混沌理论在现代物理的研究中,混沌理论的建立可能称得上是最重要的成就之一。混沌的发现被誉为继相对论和量子力学后的第三次物理学革命,混沌的研究一直备受学术界的关注。经典物理的确定论和近代量子物理的随机论,虽然都非常成功地解决了许多自然现象,但是这两种理论之间似乎存在着对立的矛盾,只适宜于不同的领域。在宏观领域似乎只应用经典物理理论,而在微观领域中更多是使用量子力学、统计物理的随机性理论。按照确定性理论,物体运动以后在任何时间状态只是一个点,而按照随机性理论,物体的状态不是点,而是由点组成的点云,点云的密度就表示物体出现这种状态的概率大小。随着物理理论的深人研究,人们发现在传统的确定性理论领域中,一定的条件下也可以出现一定的随机性现象。这种随机性又不同于传统的随机性理论研究的随机性问题,因为它又有一定的确定性。这种现象的发现和解决从而诞生了混沌理论。在经典物理中,物体的状态变化规律都是用非线性方程来描述的,只要给出一定初始条件,就可以解出这个非线性方程的解,事实上,如果对这些非线性方程进一步研究,就会发现,初始条件的变化,可以使这些本来是确定性的解出现随机性。2.1.1 简单的数学游戏(1)令,如果是利用二进制,按 Modell(去掉整数,只留小数的操12nnXX作)进行迭代21,我们来看看其结果如何。取= 0. 10001001001110010X=0.0001001001110011X=0.001001001110012X=0.01001001110013X=016X也就是说,其结果最终趋向于零,或者说是趋向于一个点,一般我们把这个点叫“汇” 。而如果取=0.10001001001110011000100100111001100X001如此循环下去,我们就会发现,其结果应该有 16 种稳定的点,我们叫“稳定极限环” 。和虽然在数学上可以说是非常接近,只存在微小的不同,但是其计算0X0X的结果却完全不同。这就说明,微小的初始条件的变化,可能引起不同的结果,这就是初始条件的敏感性。(2)令。1(1)nnnXXX0,1nX 如果取=2,=0.2,则=0.32,=0.4352,=0.4912092,=0.490X1X2X3X4X999996,=0.5,也就是其结果最终趋向于点=0. 50。nXX如果取=3.3,=0.4,则=0.792,=0.48016405,=0.8237010X1X8X9X565。如果继续迭代下去,其结果仍然是在和上循环,这就是说,其迭代的8X9X结果可能是两个,我们就叫“分岔” ,像这样有两个结果的就叫“二周期” 。如果取=3.53,=0.2,则=0. 5648,=0.507521713,=0.80X1X13X14X8230286,= 0.366578214, =0.819661059。如果继续迭代下去,就是进行这15X16X四数字的循环,像这样的结果就叫“四周期” 。如果取=3. 9,那么我们就会发现其结果是无周期的,或者说是有无数的点,也就是进人完全随机状态,我们就叫“混沌” (chaos) 。2.1.2 “蝴蝶效应”美国的著名气象学家 Edward Lorenz 从旋转的木桶实验21,总结出包括 12个方程的方程组,建立了一个仿真的气象模型,他认为尽管气象变化万千,但总是遵循经典的物理定律,只要知道一定的初始条件,那么利用这些方程总是可以把结果算出来的。这就是说按照传统的确定性理论,他就可以确定将来的气象变化的规律和任何时间的气象状态。这里需要说明的是,一般传统的科学家都认为,任何量的测量和获得都不可能是完全精确的,都有一定的近似,所以在进行计算的时候一般都采用一定的近似。因为他们认为,极小的影响和变化、差别是可以忽略不计的,事物运动之中都具有一定的收敛性,极小的差别不会引起大的影响。Lorenz 在利用计算机进行计算的时候,一次,为了省时,他就把上次计算打印结果当作初始值输人了,然而,当他一小时以后回来的时候突然发现其结果却偏差极大。开始他以为是计算机出了问题,后来经过仔细的研究,发现是由于初始值的微小差别导致其结果的极大偏差。因为那时候的计算机还很简单,存储只是 6 位,但是打印出来的只是 3 位,例如输入 0. 532001,只能打印出来 0.532,当时他认为这是极小差别,不会引起大的变化。但他的方程对这些微小的不同却是极其敏感的,他把这种现象叫作“蝴蝶效应” 。意思就是:巴西的蝴蝶抖动一下翅膀,就可能在德克萨斯引起一场风暴。蝴蝶效应说明了初始条件的重要性,也说明了科学的严谨。任何随意的忽略,都可能导致严重的后果。也正由此导致后来“混沌”理论的诞生。2.2 用 Matlab 演示混沌的基本性质在自然界中,绝大部分运动都是混沌运动,规则运动只在局部的范围和较短的时间内存在。从简单的数学游戏入手,我们了解了混沌运动的产生,通过对“蝴蝶效应”的介绍,我们了解了混沌运动的主要特征及性质。在各种软件中,Matlab 是非常适合混沌的演示和仿真实验的。本节将对如何使用 Matlab 来演示混沌运动特征及性质进行研究。2.2.1 用 Matlab 产生标准的混沌信号1963 年,美国气象学家洛伦兹在大气科学杂志上发表了著名的论文确定性的非周期流 ,文中指出:三阶非线性自治系统中可能会出现混沌解12。洛伦兹提出了一个简化的天气预报模型,这就是著名的洛伦兹方程组:(2-1)()()xa yxybz xyzxycz这个简化模型是一个完全确定的方程组。然而,当方程组的三个参数取某些值时(比较常用的是=10,=28, =8/3),方程组出现了混沌解。这是在耗散系统abc中,一个确定的方程能导出混沌解的第一个实例,它标志着混沌学的涎生。在 Matlab 中,可以用如下程序 lorenz.m 产生洛沦兹信号,在对混沌信号的演示和处理中,洛沦兹信号是最常用到的标准混沌信号。混沌系统存在混沌吸引子,洛沦兹吸引子就是著名的蝶形图。如图 2-1 所示。(1)洛伦兹函数程序:function dy=lorenz(t,y) dy=zeros(3,1); dy(1)=10*(-y(1)+y(2); dy(2)=28*y(1)-y(2)-y(1)*y(3); dy(3)=y(1)*y(2)-8*y(3)/3;(2)给定参数作图程序:t,y=ode45(lorenz,0 30,12,2,9);plot3(y(:,1),y(:,2),y(:,3)view(20,42);图 2-1 洛沦兹信号的吸引子2.2.2 倍周期分岔通向混沌之路倍周期分岔是许多非线性动力学过程中常见的现象,也是进人混沌的一种重要方式12。可以用描述虫日模型的 Logistic 方程来演示一个动力学系统是如何通过倍周期分岔从规则运动进人混沌运动的。Logistic 差分方程为,初值的取值范围为(0,1),的取1(1)nnnXXX0X值范围为1,4。由 Logistic 方程描述的系统的最终状态取决于值,在由 1 变化到 4 的过程中,该系统通过不断的倍周期分岔从规则运动进人混沌。可以用下面的程序来演示这一过程:x(1)=0.9; %迭代初值hold on; %将计算结果显示在同一幅图上for lamda=2:0.002:3.8 %的取值范围和步长for i=1:10000 x(i+1)=lamda*x(i)*(1-x(i); %Logistic 方程if (i+1)9800 %舍弃不稳定的初始值plot(lamda,x(i+1);endendend 程序的运行结果如图 2-2:由图 2-2 可以看出在3 以后,系统开始进入周期状态,开始周期为 2,随着值的变大,不断发生倍周期分岔。并且,倍周期分岔发生的越来越快,周期越来越大,最终进入了周期无限长的混沌状态。图 2-2 倍周期分岔我们可以接着用下面的程序来演示取不同值时,Logistic 方程所确定系统状态的演化过程。lamda=3. 3; %设定入值x(1)=0.9; %迭代初值for i=1:50 %设定迭代次数x( i+l )=lamda*x(i)*(1-x(i) ) ;endplot(x) %显示计算结果(a)(b)(c)图 2-3 取不同值时,系统的演化过程系统状态的演化过程如图 2-3(a),(b),(c)三幅图对应的值分别为 2.8,3.3 和3.8。在值为 2.8 时,系统经过开始的振荡后收敛于一定值。而当值为 3.3 时,系统经过开始的不稳定阶段后,趋于稳定的振荡,在两个定位之间来回跳越,进人了周期为 2 的轨道。在为 3.8 时,系统已进人混沌状态,不再有稳定的周期。我们还可以取更多的值,以演示该系统周期变为 4、8、16的倍周期过程。2.2.3 初值敏感性描述混沌动力系统的微分方程、差分方程或迭代方程都是确定性方程,没有概率性的因素。从数学上讲,确定性方程对于确定的初始值,由动力系统就可以推知系统的长期行为甚至追溯过去。但是,在混沌动力系统中,如果精确地从同一点出发,得到的仍是同一条确定的轨道。然而,只要初始条件有无论多么微小的改变,其后的运动轨迹就会失之毫厘,差之千里。因此,混沌系统具有极强的初值敏感性。从现象上看,这种过程好像是随机的。这种“假随机性”与方程中有反映外界干扰的随机项或随机系数而引起的随机性不同,是确定性系统内部所固有的内在随机性。混沌信号的最重要、最显著的个特点就是初值敏感性。图 2-4 两条取不同初值的洛沦兹信号轨迹我们可以用程序 lorenz.m 所产生的洛沦兹信号来演示初值敏感性。将程序lorenz.m 中的初始值 x 先后设为10和10.01,y 和 z 不变,这两组初始值只有 x有极小的差值。由于要演示初值敏感性,还需要将由两组初始值计算出来的任一轴上的两条轨迹放在一起显示。源程序如下:t,y=ode45(lorenz,0 15,10,2,9);plot(t,y(:,1),-k);hold ont,y1=ode45(lorenz,0 15,10.01,2,9);plot(t,y1(:,1),:k);由图 2-4 可以看出,两条曲线在开始一段看上去还是重合的,但是到了 8 点以后,两条几乎由同一点出发的曲线开始逐步分离了,这就是混沌信号初值敏感性的体现。2.3 本章小结本章从简单的数学游戏入手,给我们说明了混沌运动的产生,并结合对“蝴蝶效应”的介绍,使我们了解了混沌运动的主要特征及性质。在各种软件中,Matlab 是非常适合混沌的演示和仿真实验的。本章用 Matlab 来演示研究混沌运动特征及性质。本章给出了用 Matlab 进行混沌演示的一些基本程序,包括产生标准的混沌信号及其吸引子,演示非线性系统进入混沌的途径,以及混沌的初值敏感性。许多非线性动力学系统都是通过倍周期分岔从规则运动进人混沌运动的,系统如果处于混沌运动状态,那么它以后的运动状态将敏感依赖初值,并且具有不可预测性10。通过这些演示,可以使我们对混沌有了比较直观的认识。第三章 用 Matlab 模拟复摆振动中的混沌行为复摆运动是大学物理中基本的力学模型之一,在教学中通常只考虑其简谐振动的情况,内容比较单一,没有太多的研究空间。实际上,当复摆在驱动力矩及阻尼力矩的作用下,将出现复杂的非线性运动,而且在一定的条件下可通过倍周期分岔逐渐进入到混沌运动状态7。混沌运动是确定性非线性动力学系统所特有的复杂运动状态,是一种貌似随机的不规则运动,混沌的发现被誉为继相对论和量子力学后的第三次物理学革命,混沌的研究一直备受学术界的关注。如果将复摆的这些非线性振动特性利用计算机模拟出来,不仅可以加深我们对复摆运动规律的认识,给我们提供一个宽阔的研究空间,而且还有助于我们了解物理学的发展前沿,开阔我们的视野。3.1 复摆运动模型与振动方程对如图 1 所示的圆形复摆,设其质量为;对转轴的转动惯量为;质心mOI到转轴的距离为。如果复摆振动时受到的阻尼力矩是;周期性驱动COhddt力矩为。cosFt图 3-1复摆结构复摆运动遵守刚体转动定律:(3-1)22dMJJdt复摆的运动方程可以写为:(3-2)22sincosddImghFtdtdt 对(3-2)式作无量纲化处理,(3-2)式两边除以,整理可得:20I(3-3)222220000011sincosddmghFtdtIdtII 取复摆的固有频率,进一步整理化简可得:0mghI(3-4)222sincosddfdd其中,称为无量纲阻尼系数;称为无量纲驱动力振幅;02I20FfI称为无量纲驱动频率;称为无量纲时间。00t对于这样的非线性方程,一般是无法求出其解析解的,我们都是利用 Matlab求其数值解,然后再利用其数值解作相图和振动曲线,从相图上研究其运动规律。通过对和参数的调节,我们分别模拟研究复摆的无驱动无阻尼振动、阻尼振f动、有外力驱动时的周期运动和混沌运动。3.2 复摆运动状态的模拟研究3.2.1 无驱动力无阻尼的复摆运动无驱动力、无阻尼相当于,的情况,此时复摆是一个保守系统11,00f 复摆处于理想振动状态,由式(3-4)可得:(3-5)22sin0dd(1) 小角度复摆运动,即简谐运动若很小,在此情况下我们容易得到式(3-5)的解,它归结为简谐sin振动情形,为便于从相图上来分析其运动特征,对式(3-5)积分,可得:(3-6)222dEd其中,积分常数为,由初始条件决定,对应于系统的无量纲总能量。2EE由(3-6)式可作出复摆的角速度与角位移的关系图像,即复摆作简谐振dd动的相图为一个圆。通过 Matlab 数值计算可得复摆的振动曲线及其在和构dd成的相空间的运动轨迹,如图 3-2 所示。可以看出,数值结果与解析结果完全相同,其相图是一闭合曲线,进一步表明复摆运动的周期性。图中的圆称为相轨道(相图) ,圆上一点确定了复摆的一个运动状态,圆形闭合回线反映系统状态周而复始的演化过程。图 3-2 复摆作简谐振动时的振动曲线和相轨迹(2)任意角度复摆运动将式乘以作积分,可得:d(3-7)21cos2dEd整理可得:(3-8)2(cos )dEd 利用 Matlab 画出复摆在不同初始值下对应运动状态变化情况的相图。当=-1,=0 时=0 对应于相图中的不动点(0,0),在系统离开平衡点时,E恢复力总是指向(0,0)点,所以这是复摆的稳定平衡点;在较小时,轨线为圆形E闭合回线,表明复摆作简谐振动19;当增大时,轨线将偏离圆形,系统运动表现出非线性特征,能量越高,回E线越扁;当=1 时复摆实际振幅已达到,这相当于单摆的竖直倒立位置,是E一个不稳定的平衡点16,18;当1 时轨线不再闭合,表明单摆在竖直面上顺时针或逆时针旋转。E图 3-3 无驱动力无阻尼任意摆角复摆相图3.2.2 无驱动力有阻尼的复摆运动(1)小角度阻尼复摆无阻尼的复摆运动只是一种理想情况,实际的复摆系统总是或多或少地存在阻尼11,阻尼的存在将使保守系统封闭的相图遭到破坏。模拟时取无量纲阻尼系数=0.05,无量纲驱动力振幅=0,结果显示在图 3-4 中。f由图 3-4 可以看出,由于阻尼的存在,能量耗散,复摆的振幅越来越小,直到停止在复摆的平衡位置。这种正阻尼的振荡的相图为一根内旋的螺线(见图 3-4),曲线不再闭合,随着振幅逐渐减小,速度越来越慢,直至停摆。无论初始的位置如何,复摆最终都会趋向螺旋线的中心,相图上螺线的中心为阻尼复摆运动的吸引点,称为吸引子19。由于中心点是不动点,所以又称不动点吸引子或者定常吸引子。图 3-4 复摆作阻尼振动时的振动曲线和相轨迹(2)任意角度阻尼复摆运动由(3-4)式得到无驱动力有阻尼时复摆的运动方程为:(3-9)222sin0dddd由于式(3-9)比式(3-5)式多出这一耗散项,复摆无论从什么状态出发,2dd都要经阻尼振荡,最后静止下来,反映在相图3-5 上,可以看出,小振幅下的阻尼振荡轨线将不再是闭合回线,而是对数螺线,终结于不动点(0,0),也是图 3-5闭合回线的中心点,称为不动点吸引子。大振幅下,在相空间中从某点出发的轨线不再象图 3-3 那样左右对称,而是倾斜地流向相应区域中心的吸引子,每个吸引子都有自己的吸引域,图中相邻的吸引域相差角度为,吸引域的中心就是2复摆运动的稳定平衡点,也是复摆运动势能最低点,这说明阻尼复摆经过无限长时间的运动后,最终会停在势能的最低点。当角速度=0 时,有两类平衡点,一类是(,0),,是ddk2kn1, 2n 稳定状态;另一类是(,0),,是不稳定状态。如果初始值k21kn1, 2n 和较小,复摆不能到达(,0)位置时,这时它只在平衡位置(0,0)附近左右0dd0摆动,最后静止于(0,0)。如果初始角速度较大,复摆可以绕过(,0)位置,0dd达不到位置(,0)时,则在(,0)的位置上进行左右摆,最后静止(,0)。如果322给出的初始角速度更大,它可以绕支点转上几圈,再变为左右摆动,最后静止于(,0),但决不可能一直绕支点转圈子,永不成为左右摆动。n4,6n 理论分析认为,当初始条件(,)刚好可以使复摆到达(,0)位置,应静0dd0止到这个位置上。但实际上过这一点很难实现,因为平衡点是不稳定的。若开始时,复摆位于(,0)处,可能顺时针下落在(0,0)附近,复摆最后静止于(0,0),也可能逆时针下落,在位置(,0)处左右摆动,最后静止于(,0),其他情况可进行22类似讨论13。通过以上分析可知,无论初始条件如何,相轨线都会倾斜地流向相应区域中心的吸引子,这说明阻尼复摆经过无限长时间的运动后,最终会停在势能的最低点,而不会出现混沌运动现象。图 3-5 无驱动力有阻尼任意摆角复摆相图3.2.3 有驱动力有阻尼的复摆运动,受迫运动复摆在角位移较小的情况下可作为理想的线性谐振子来处理,但如果考察其在驱动力作用下任意角位移下的运动,并考虑阻力,则其运动方程中将出现非线性项。本节研究表明复摆的强迫振动在一定条件下一步一步地由倍周期分岔走向混沌,并分析了其混沌解的特征,得到了几种情况下的混沌吸引子17。如果考虑受驱复摆方程的弱非线性项,即摆角不大时取的级数的前两项,sin,这时式(3-4)可以近似化为:31sin6(3-10)232cosddabcfdd其中是无量纲角位移,为无量纲时间,为无量纲驱动力,为无量纲f驱动力矩的角频率。由式(3-10)可知,该复摆是一种特殊形式的杜芬振子,非线性方程是杜芬(Duffing)方程17:(3-11)232cosd xdxxxftdtdt为了简便起见,不失一般性,我们研究一个由受驱弱非线性复摆演化得到的杜芬方程形式,取=-1,=1,则式(3-11)可化为:xt(3-12)2322cosddfdd对于(3-12)式这样的非线性微分方程没有解析解,只能利用计算机求其数值解。我们利用 Matlab 软件中的 ode45 命令来对非线性方程(4-1)求解,然后作图。从非线性方程(3-12)来看,三个独立参量,和若任意取值,如果同时绘制f出各种组合的相图,它们将在相平面上相交缠绕,而无法分辨。可固定两个参量的值,使另外一个参量变化,来观察相轨迹的规律。当复摆受一周期性驱动力作用时,随着驱动力幅度的变化,复摆的运动情况也将变得非常复杂。取无量纲阻尼系数,无量纲驱动力频率,模拟0.41结果显示,在较小时,相空间的轨线接近圆形,且正负半周比较对称,如图 3-f6(a)所示,此时复摆仍然是稳定的单倍周期运动,即振动周期与驱动力的周期相同。随着增大,相空间的轨迹变得越来越扁且左右不对称,一端明显突出,但f仍然是单周期运动,如图 3-6(b)所示。图 3-6 受迫阻尼复摆单周期相图继续慢慢增大,运动更加复杂,当增加到 0.55 时,系统发生第一次倍周ff期分岔,复摆由一倍周期运动进入二倍周期运动,即在驱动力的两个周期内运动才恢复原状,如此周而复始地运动下去,如图 3-7 所示。在=0.575 时,再次发f生倍周期分岔,二周期运动进入四倍周期运动,见图 3-8,复摆运动每隔 4 个驱动周期重复一次,相轨迹在二维环面上转 4 圈后闭合。由此可见,如果驱动力的振动周期用表示,随着驱动幅度的增加,复摆运动出现倍周期分岔现象,由T,相空间的环面由 1 环分岔到 2 环,2 环再分岔到 4 环。124TTT图 3-7 单周期振动曲线及相图(,)120.80.53f 图 3-8 二倍周期振动曲线及相图(,)120.80.55f 图 3-9 四倍周期振动曲线及相图(,)120.80.575f 随着外驱动力的增加,分岔数迅速增加。当的值增加到 0.585 时,如图ff4-10 所示,复摆仍进入一种准周期运动状态,分岔的数目已经无法判断。这种倍周期分岔现象是非线性问题所特有的。图 3-10 准周期振动相图及相图(,)120.80.585f 当增至 1.128 时,振动情况非常复杂,如图 4-11,此即为复摆混沌运动的f奇怪吸引子,此时复摆的相轨迹局部不稳定,但全局稳定,复摆逐渐脱离周期运动,其运动不再是纯粹的振动,而是开始出现了小幅转动,相空间的轨线在特定的区域无规则地绕来绕去,开始出现混沌运动的趋势。图 3-11 混沌振动曲线及相图 (,)120.81.128f 由图 4-11 可以看到相图有两个稳定平衡位置,复摆围绕一个稳定平衡位置振动若干次以后,转而围绕另外一个稳定平衡位置振动若干次,然后又跳回原平衡位置振动若干次,这样来回振动,虽然每次轨迹都不重合,但最终被吸引到相图中的某一点附近运动。如果继续增加驱动力,我们会发现复摆系统又逐渐恢复到简单运动,如图f4-12,系统开始进入单周期运动,如图 4-13,系统完全进入单周期运动。图 3-12 混沌系统单周期振动曲线及相图 (,)120.81.28f 图 3-13 混沌系统单周期振动曲线及相图 (,)120.81.3f 如果进一步增加驱动力,当驱动力很大时,系统又会出现混沌运动状态,ff如图 3-14 所示,由它的运动曲线可以清楚地看出,此时复摆已不是完全在平衡位置附近的周期振动,而是一会儿做振
展开阅读全文