强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx

上传人:b****6 文档编号:3656852 上传时间:2022-11-24 格式:DOCX 页数:38 大小:199.08KB
下载 相关 举报
强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx_第1页
第1页 / 共38页
强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx_第2页
第2页 / 共38页
强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx_第3页
第3页 / 共38页
强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx_第4页
第4页 / 共38页
强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx

《强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx》由会员分享,可在线阅读,更多相关《强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx(38页珍藏版)》请在冰豆网上搜索。

强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计.docx

强烈推荐基于Matlab的复摆混沌行为研究毕业论文设计

毕业论文

基于Matlab的复摆混沌行为研究

摘要

自然界中存在无数的无序、非平衡和随机的复杂系统。

混沌现象出现于非线性系统中,它揭示了有序与无序的统一,确定性与随机性的统一。

混沌运动是非线性动力学系统所特有的复杂运动状态,是一种貌似随机的不规则运动,混沌的发现被誉为继相对论和量子力学后的第三次物理学革命,混沌的研究一直备受学术界的关注。

Matlab是一个适用于科学计算、工程设计、数值分析等领域的各种计算、演算和仿真分析的高性能的优秀数学软件。

混沌理论研究的是非线性问题,难以用解析式表达,只能采用数值解法,而Matlab在这方面便可展示其强大的潜能。

本论文利用了Matlab软件研究经典的混沌现象的特征,并且对混沌的特点以及形成过程进行模拟分析研究;并用Matlab模拟了复摆运动行为及混沌现象,对不同周期作出相图及奇怪吸引子,可以看到随着外驱动力的增加,复摆振动逐渐由倍周期分岔走向混沌。

关键词:

混沌,Matlab,复摆,倍周期分岔,奇怪吸引子

 

thecomplexbehaviorofchaoticpendulumbasedonmATLAB

 

ABSTRACT

 

Therearemanydisorders,non-equilibrium,randomcomplexsystemsinthenature.Chaosappearsinnonlinearsystems,itrevealstheunityoforderanddisorder,certaintyandrandomnessofunity.Chaosisanonlineardynamicsystemuniquetothecomplexstateofmotion,isaseeminglyrandom,irregularmotion,chaos,followingthediscoveryofrelativityandquantummechanicsknownasthethirdaftertherevolutioninphysics,Chaosofacademicattention.

Matlabisasuitableforscientificcomputing,engineeringdesign,numericalanalysisofthevariousfieldsofcomputing,calculationandsimulationanalysisof,andMatlabwilldemonstrateitsstrongpotentialinthisrespect.

Inthisthesis,aMatlabsoftwareforclassicalchaoscharacteristics,andthechaosofthecharacteristicsandformationprocessofsimulationstudies;anduseMatlabtosimulatethependulummovementbehaviorandchaoticphenomena,ondifferentcyclestothephasediagramandthestrangeattractor,Asyoucanseetheincreaseinexternaldrivingforce,pendulumvibrationgraduallyfromperiod-dou

-blingbifurcationtochaos.

 

Keywords:

Chaos,Matlab,compoundpendulum,bifurcation,strangeattractor

前言1

第一章Matlab基础及应用2

§1.1Matlab简介2

§1.2Matlab基础3

§1.2.1基本运算3

§1.2.2绘图功能4

§1.2.3数值分析7

§1.2.4M文件及程序调试8

§1.3Matlab的简单应用8

§1.4本章小结13

第二章混沌行为与特性14

§2.1混沌理论14

§2.1.1简单的数学游戏14

§2.1.2“蝴蝶效应”15

§2.2用Matlab演示混沌的基本性质16

§2.2.1用Matlab产生标准的混沌信号16

§2.2.2倍周期分岔——通向混沌之路17

§2.2.3初值敏感性20

§2.3本章小结21

第三章用Matlab模拟复摆振动中的混沌行为22

§3.1复摆运动模型与振动方程22

§3.2复摆运动状态的模拟研究23

§3.2.1无驱动力无阻尼的复摆运动23

§3.2.2无驱动力有阻尼的复摆运动25

§3.2.3有驱动力有阻尼的复摆运动,受迫运动27

§3.3本章小结33

结论35

参考文献36

致谢37

前言

自然界中存在无数的无序、非平衡和随机的复杂系统。

混沌现象出现于非线性系统中,它揭示了有序与无序的统一,确定性与随机性的统一。

混沌现象是指确定性系统中出现的一种类似随机过程的行为。

混沌运动是非线性动力学系统所特有的复杂运动状态,是一种貌似随机的不规则运动,混沌的发现被誉为继相对论和量子力学后的第三次物理学革命,混沌的研究一直备受学术界的关注。

复摆运动是大学物理中基本的力学模型之一,在教学中通常只考虑其简谐振动的情况,内容比较单一,没有太多的研究空间。

实际上,当复摆在驱动力矩及阻尼力矩的作用下,将出现复杂的非线性运动,而且在一定的条件下可通过倍周期分岔逐渐进入到混沌运动状态。

如果将复摆的这些非线性振动特性利用计算机模拟出来,不仅可以加深我们对复摆运动规律的认识,给我们提供一个宽阔的研究空间,而且还有助于我们了解物理学的发展前沿,开阔我们的视野。

Matlab是集数值运算、符号运算、数据可视化、数据图文字统一处理、系统动态仿真等功能于一体的数学软件,具有很高的编程效率,在线性代数、矩阵分析、数值计算及优化、系统动力学、建模与仿真等领域中得到广泛应用。

混沌理论研究的是非线性问题,难以用解析式表达,只能采用数值解法,而Matlab在这方面便可展示其强大的潜能。

本论文第一章对Matlab进行了简单介绍,并且详细介绍了Matlab的基本功能及在物理中的简单应用,第二章从简单的数学游戏和“蝴蝶效应”入手,说明了混沌运动主要特征及性质,并且用Matlab来演示其特性。

第三章从复摆的运动方程出发,利用计算机进行数值求解,研究复摆从周期运动转化为混沌运动的过程。

 

第一章Matlab基础及应用

§1.1Matlab简介

Matlab(MatrixLaboratory)是美国MathWorks公司开发的一套高性能的数值分析和计算软件,用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件之一。

Matlab将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台[1]。

在欧美等国家的高校,Matlab已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具,成为攻读学位的本科、硕士、博士生必须掌握的基本技能。

在设计研究单位和工业开发部门,Matlab被广泛的应用于研究和解决各种具体问题。

在中国,Matlab也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从Matlab中找到合适的功能。

1983年美国Mathworks公司首次推出Matlab(MatrixLaboratory),之后其功能不断扩充,版本不断升级,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(Matlab2006b)版,最新版本为7.4(R2007a)版[1]。

Matlab的主界面是一个高度集成的工作环境[1],有4个不同职责分工的窗口[3]。

它们分别是命令窗口(CommandWindow)、历史命令窗口(CommandHistory)、当前目录窗口(CurrentDirectory)和工作空间窗口(Workspace)。

除此之外,Matlab6.5之后的版本还添加了开始按钮(Start)。

菜单栏和工具栏在组成方式和内容上与一般应用软件基本相同或相似。

Matlab6.5的界面是一个web浏览器形式的工作环境,如图1-1所示。

图1-1Matlab6.5的界面

§1.2Matlab基础

§1.2.1基本运算

Matlab能识别一般常用的加(+)、减(-)、乘(*)、除()、幂次(^)等数学运算符号[2],因此在Matlab下进行基本运算,在Matlab命令窗口(CommandWindow)内提示符(>>)之后输入表达式,并按下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)

自然指数

log(x)

自然对数

sqrt(x)

x的开平方

x.^2

x的开方

§1.2.2绘图功能

Matlab的plot是最基本的绘图命令,可以对一组x坐标及相应的y坐标,进行描点绘图。

1、基本绘图命令:

plot(x,y,'*b')%绘出的图形数据点均用*做蓝标记

title('myfirstplot')%绘出的图形名称

xlabel('x'),ylabel('y')%绘出的图形x,y轴名称

gtext('x'),gtext('y')%对曲线名称进行标注

表1-2plot命令的曲线颜色选项参考表

标识符

Y

m

C

r

g

b

w

k

颜色

品红

绿

表1-3plot命令的曲线符号、格式参考表

标识符

.

o

×

+

-

*

--

线点型

圆圈

×号

+号

实线

*线

虚线

长划线

2、多条曲线的绘制:

(1)plot(t,[y:

y1])%绘出两个具有相同自变量的图形

(2)plot(t,y1,'b'),,plot(t,y2,'r')%绘出两种不同颜色的图形

(3)plotyy(t,y1,t,y2)%绘出两条刻度不同的y轴[1]

3、绘制三维空间曲线

程序命令:

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),表示将窗口划分为m×n个区域,而下一个命令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(-x5));%此为左下角图

>>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);axisnormal

>>subplot(2,2,2);plot(x,y);axissquare

>>subplot(2,2,3);plot(x,y);axisequal

>>subplot(2,2,4);plot(x,y);axisequaltight

图1-4在axis命令后加不同的字符串控制

表1-4中是一些改变目前图轴长宽比的命令,这些命令必须在plot之后调用才能发挥作用。

表1-4改变图轴长宽比例的命令

命令

说明

axisnormal

使用默认长宽比(等于图形长宽比)

axissquare

长宽比例为1

axisequal

长宽比例不变,但两轴刻度一致

axisequaltight

两轴刻度比例一致,且图轴紧贴图形

axisimage

两轴刻度比例一致(适用于图像显示)

6、要画出网格线或画出图轴外围的方形,可用grid与box命令。

表1-5grid和box命令

命令

说明

gridon

画出网格线

gridoff

取消网格线

boxon

画出图轴外围的方形

Boxoff

画出图轴外围的方形

§1.2.3数值分析

Matlab可以用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰勒级数展开、寻优等等,可求得解析符号解。

1、求方程:

的全部根。

>>x=roots(p)%求根

>>x=

-1.8857

-0.7604+1.7916i

-0.7604-1.7916i

1.0732

2、求积分:

>>quad('x.*log(1+x)',0,1)

>>ans=

0.2500

3、用Matlab的ODE命令求解常微分方程,Matlab解常微分方程组的能力很强而且很方便,对于我们在普通物理学中遇到的大多数动力学方程都可以用命ode45求解[3]。

Matlab只能解一阶的常微分方程组,高阶的常微分方程需要转化成一阶方程组才能求解。

对于二阶常微分方程,首先需要化成显式形式,然后令,,则二阶常微分方程化为两个一阶常微分方程组成的方程组,从而使问题得到解决。

(1-1)

下一节我们将举例说明如何用命令ode45求解常微分方程。

§1.2.4M文件及程序调试

由Matlab语句构成的程序文件称为M文件,它以m作为文件的扩展名。

M文件可分为两种:

一种是主程序文件(ScriptFile),是由用户为解决特定的问题而编制的;另一种是子程序文件(FunctionFile),它必须由其它M文件来调用,函数文件往往具有一定的通用性,并且可以进行递归调用。

1、主程序文件的格式特征如下:

(1)用clear,closeall等语句开始,清除工作空间原有的变量和图形,以避免其它以执行程序残留数据对本程序的影响;

(2)如果文件中有全局变量,即在子程序中与主程序的变量,应在程序的起始部分注明;

(3)整个程序应按Matlab标示符的要求起文件名,并加上后缀m。

2、子程序文件的格式特征如下:

(1)由Function起头,后跟的函数名必须与文件名相同;

(2)由输入输出变量,可进行变量传递;

(3)除非用global声明,程序中的变量均为局部变量,运行后不保存在工作空间中。

§1.3Matlab的简单应用

本章用Matlab辅助普通物理学学习的几个简单的例子,意在引导读者对Matlab的功能特点及语句编程作一些简单的了解。

1、等量异号点电荷的电势分布

这个例子将介绍二维网格和三维曲面绘图的语句,物理情景是平面上在,处有一正电荷,,处有一负电荷,根据公式计算两点电荷电场中电势的分布,。

在命令窗口中输入:

(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)

其中,为观察屏上点坐标,为观察屏到光栅的垂直距离,为光栅各缝的宽度,为光栅常数,,是相邻狭缝的间距;是光栅上狭缝的数目;是光波波长;为常量。

令,,,光栅衍射公式可化为

(1-3)

采取国际单位制,并赋给公式中的各个物理量合理的数值,仿照双缝干涉的示例,编写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.(D^2+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平面内观察

colormap(gray);%选择灰度色图

mesh(X,Y,I);%绘制衍射图样

运行结果如图1-6(a)和图1-6(b)所示:

图1-6(a)光强与位置的关系图1-6(b)光栅衍射的模拟图样

3、质点在万有引力作用下的运动

以万有引力的固定不动的施力质点所在位置为坐标原点,建立直角坐标系,质点的运动微分方程为,分量方程为:

(1-4)

这两个方程都是二阶常微分方程,定义解矢量为,令

(1-5)

可将方程组(1-4)化为:

(1-6)

(1)编写微分方程组函数文件yxlcfun.m:

functionydot=yxlcfun(t,y,flag,p)%函数首行,p为参量Gm0

ydot=[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=[-100.260.2;-250.550;-250.860];%三组不同初始条件

plot(0,0,'*r')%画出O点

fori=1:

3%分别以不同初始条件解3次方程

[t,y]=ode45('yxlcfun',[0:

0.1:

300],y0(i,:

),[],p);

axis([-2525-2020]);%指定坐标范围

comet(y(:

1),y(:

3))%绘出质点运动轨迹(x,y)

end%结束循环

解出的结果如图1-7所示:

图1-7万有引力场中质点运动轨迹

由上面例子,我们初步了解了Matlab解常微分方程的一般过程,首先是建立微分方程函数文件,文件的格式如下:

fuctionydot=filename(t,y,p1,p2)%t,y是积分区间和解矩阵p1,p2是参数

ydot=[关于t,y的表达式];%ydot表示dydt

下面介绍ode45命令的用法,ode45的一般调用格式为:

[T,Y]=ode45('fun',tspan,y0,options,p1,p2,…)

其中含义如下表:

表1-6ode45命令含义

Fun

求解的微分方程函数名

Tspan

单调递增(减)的积分区间[t0:

tstep:

tfinal]

y0

初始条件矢量

Options

用odeset建立的优化选项,一般用默认值,为空矢量“[]”

p1,p2

传递给fun函数的参数

T,Y

T是输出的时间列矢量,矩阵Y的每一个列矢量是解的一个分量

各个项在命令中的位置和顺序不能颠倒,否则程序就会出错。

§1.4本章小结

本章首先对Matlab进行了简单介绍,介绍了Matlab的发展及应用前景,然后详细介绍了基本运算功能,基本绘图功能,数值分析功能,并且简单介绍了M文件的编写及Matlab的程序调试。

由于Matlab是集数值运算、符号运算、数据可视化、数据图文字统一处理、系统动态仿真等功能于一体的数学软件,所以为了加深对Matlab的基本功能的理解,在本章第三节我们列举了几个简单的应用。

例1等量异号点电荷的电势分布,应用了Matlab三维网格作图命令mesh(x,y,z)和基本函数数值运算功能。

例2光栅衍射,应用了Matlab的基本运算功能,基本绘图功能,数值分析功能。

例3质点在万有引力作用下的运动,应用了Matlab的基本运算功能,基本绘图功能,在一个窗口下绘制多条图形,并且利用Matlab的ode45命令求解常微分方程,最后总结了Matlab的ode45命令解常微分

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1