实验六 计算机数值模拟实验_第1页
实验六 计算机数值模拟实验_第2页
实验六 计算机数值模拟实验_第3页
实验六 计算机数值模拟实验_第4页
实验六 计算机数值模拟实验_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验六计算机数值模拟实验计算机数值模拟方法是从基本的物理定律出发,用离散化变量描述物理体系的状态,然后利用电子计算机计算这些离散变量在基本物理定律制约下的演变,从而体现物理过程的规律计算机数值模拟实验是在计算机中进行的实验虽然它不能替代真实的物理实验,但确实是一种极其重要的实验方法它是通过大量“个例”来研究特定的物理过程,能够反复进行,方便地控制和调整参数,在理论研究和实验研究之间搭起了一座“桥梁”数值模拟可以研究一些非常复杂的过程,而理论研究必须作出许多简化假设才能处理这些过程,简化则意味着可能丢失许多重要的因素,这就使得数值模拟可以更全面地了解一个物理过程,而且还可能发现新的物理现象另一方

2、面,数值模拟也能够为实验观测方案提供理论的支持,对大型实验装置进行评估,对实验条件或参数进行优化选择,以避免造成极大的经济损失和人力浪费随着计算机性能的高速发展,数值模拟在各门学科的研究中应用将更加广泛,起到越来越重要的作用本实验选择一个非线性动力学系统中的混沌吸引子作为研究实例这类问题用常规的理论方法和实验方法是不容易了解其运动规律的,但通过计算机模拟实验我们便可得到具体的物理图像实验中要求读者通过在IBMPC或兼容机上的计算机编程和实验,掌握数值模拟的基本方法和步骤一、实验原理1数值模拟的基本方法由于各门学科研究的对象都具有自身的特点,使得数值模拟的方法在不同学科中有其不同的特征,但任何数

3、值模拟都需要求解描述相应物理过程的数学方程这些数学方程的数值求解方法有其共性,因而各门学科中数值模拟方法有共同之处,一般都涉及到如下几个步骤:(1)建立物理模型对任何物理过程的数值模拟都首先要建立模型,所建立的模型的合理性在很大程度上决定了模拟结果是否可靠建立模型包括如下步骤:a)找出决定所研究的物理过程的主要因素;b)导出适当的数学方程;c)给出切合物理实际的边值条件和初始条件.(2)方程和初值、边值条件的离散化:a)选择合适的数值方法,常用的有差分法、有限元法和边界元法;b)将计算区域划分为离散网格点,网格点(时间、空间)可以是规则的,也可以是不规则则的,取决于计算区域的几何形状是否规则,

4、网格点多少(决定于时间和空间步长的大的选择需要综合考虑计算时间的长短、计算机内存的大小等因素;c)将方程和初值、边值条件化为网格点上的代数方程(组).(3)选择适当的代数方程组求解方法(4)在计算机上实现数值求解:a)设计流程图;b)编写计算机程序;c)调试程序,检查程序是否有语法错误、数学公式的程序语言表达是否正确,根据计算结果检查算法的计算精度,以及是否有数值的不稳定性存在.(5)计算结果的诊断.诊断是将数值模拟结果以一定的形式(通常是图形)表达出来,这是调试程序和输出结果的重要手段.利用数值模拟的实例.作为一个实验的具体例子,我们研究美国气象学家罗伦兹(E.N.Lorenz)于1963年

5、在大气科学杂志上提出的第一个表现奇异吸引子的动力学系统.该混沌系统描述了从水桶的底部加热时,桶内液体的运动情况加热时,底部的液体越来越热,并开始逐渐上升,产生对流当提供足够的热量并保持不变时,对流便会产生不规则的运动和湍流建立模型该混沌系统模型可以用下列三个微分方程描述:dX二ay(t)-az(t);(6.1)dtdy二r(t)x(t)-y(t)-x(t)z(t);(6.2)dtdz(6.3)矿x(t)y(t)+bz(t)其中x正比于对流运动的速度,y正比于水平方向温度的变化,z正比于竖直方向温度的变化,系数a通常取值为10.0,b通常取值为8/3,r正比于水桶底部和水桶顶部之间的温度变化,是

6、该动力学系统模型中重要的参数,在实验中可以采用常数,或采用周期瑞利数r(t)=r0+rlcoswt关于该模型的建立和参数的详细讨论可参阅有关参考文献.该方程组的初始条件为x(t=0)=x0,y(t=0)=y0,z(t=0)=z0.此问题没有边值条件.方程的离散化,方程(6.1)、(6.1)、(6.3)与初始条件一起构成一个一阶微分方程组,可以米用四阶龙格一库塔(RungeKutta)法求解.龙格一库塔方法计算公式为:如果微分方程为dx/dt=f(x,y,z,t),贝I:xinc1=f(x,y,z,t)*dtxinc2=f(x+xinc1/2,y+yinc1/2,z+zinc1/2)*dt,xi

7、nc3=f(x+xinc2/2,y+yinc2/2,z+zinc2/2)*dt,xinc4=f(x+xinc3,y+yinc3,z+zinc3,t+dt)*dt,xn+1=xn+(xinc1+2*xinc2+2*xinc3+xinc4)/6其中x为第n个迭代点,X1第n+1个迭代点,dt为时间步长.根据上式,从初始值nn+1x(t=O)=x0,y(t=O)=y0,z(t=O)=z0开始就可以计算出以后各个时间的x,y和z的值.图6.1实验方框图实验的演示程序.附录给出了罗伦兹吸引子的C语言演示程序.程序中利用了四阶龙格一库塔算法,在TurboC+3.0中编译通过.程序流程如图1所示,其主要步骤

8、如下:要求用户输入xyz的初值,r。,r,以及DisplayAfter其中DisplayAfter指定了在开始显示x-y曲线以前,计算机所进行的迭代运算的次数.该参数的加入,是便于用户观察到程序进行了DisplayAfter个迭代运算后的输出结果.在演示程序中,固定的参数和变量为:参数a,固定为a=10;参数b,固定为b=8.0/3.0;时间步进dt,固定为dt=0.001;r(t)中的角频率,固定为=7.62.迭代次数置0,时间置0.判断是否有键按下,如有则停止迭代,否则执行以下几步:迭代次数是否大于DisplayAfter,如是则显示该次迭代结果,否则迭代结果不显示出来(但仍然进行下一步迭

9、代计算).迭代结果的显示可以根据需要显示x-t图、y-t图、z-t图、x-y图、x-z图、y-z图.在演示程序仅显示x-y图.进行x,y,z,的迭代计算。在程序中,先计算该次的xincl,xinc2,xinc3,xinc4,yincl,yinc2,yinc3,yinc4,zincl,zinc2,zinc3,zinc4后,再计算新的x,y,z迭代结果如果计算完xincl,xinc2,xinc3,xinc4后立即迭代出新的x,再用该新的x和原来的y,z去计算yincl,yinc2,yinc3,yinc4,再迭代出的y会有错误.这一点在编程中需要引起重视.f)迭代次数加1,时间增加一个步进dt.g)

10、执行第3步.(4)罗伦兹混沌系统的实验观察.a)初值对混沌系统的影响(蝴蝶效应).混沌系统是一个非线性系统,初值对系统的敏感性是混沌运动的一个基本特征.x,y,z的初值对混沌动力学系统有很大影响.我们以天气预报系统为例进行说明.在气象系统模型中,天气预报所用的信息可以包括从各个气象站获得的风速、温度、气压等测量参数,将这些信息输入计算机模型中观察天气预报.每次从气象站获得的信息不能保证都是准确的,例如在某次测量风速时可能在距离不远的公路上正好有一辆大卡车通过,或者近处有一只鸟儿的翅膀在拍打,甚至是一只蝴蝶的翅膀在振翅.在混沌现象发现以前,人们通常认为这些测量的微小误差对天气预报的影响只是短时的

11、,它对长时间的预报不会有影响.而图示模拟结果表明,即使是一个蝴蝶的拍打都会影响到三个月后的天气.这就是蝴蝶效应的意义.不过,长时间的天气预报并没有因此而消失.随着计算机技术的发展,气象学家有了办法对付蝴蝶效应:先用一些初始条件进行仿真,再使这些初始条件有细小的变化,如果天气图是完全改变的,则表明初始的气象系统是混沌的,不能用该模型进行长时间间隔的天气预测但是,如果初始条件的变化并没有影响到天气图,则表明初始的气象系统不是混沌的,此时就可以进行预测了在本实验中,可以先设定初值为x=y=z=1,r0=28(rl=0保证了系统内部处于相当不稳定的对流状态),=0.观察程序刚开始迭代的几百次的输出和迭

12、代了3000次后的输出(DisplayAfter=1和DisplayAfter=30000).然后,在其他条件不变的情况下,如果将z的初值从z=1改变为z=1.001,并重复实验。尽管z的初值变化只有一千分之一,但是观察在DisplayAfter=30000时,初值变化前后输出有了明显的变化.能被忽略.图10.1.2罗伦兹系统的混沌吸引子a=10.0,0/3.0,n)=265,尸i=0.从上述初值对系统的敏感性我们知道,如果在实际的应用模型中采用了微分方程组,又有可能出现混沌的话,那么在测量中任何初值的误差都将对系统产生很大的影响,变得不罗伦兹混沌吸引子.混沌是一种非周期的动力学过程,看似无序

13、,杂乱无章,但却隐含着丰富的内容,如混沌吸引子、分支、窗口等等.它是一种无序中的有序,决不仅仅是一个无从控制的随机过程.混沌吸引子是相空间的某部分,从它附近出发的任何点都逐渐趋近于它.在(x,y)平面上,我们可以看到形如肾脏的两叶的罗伦兹混沌吸引子图(图6.2).其中的点时而转到左页,时而转到右页.所有点的轨迹都螺旋趋近两叶中心不会离开闭合的曲面.倍周期运动研究.尽管罗伦兹方程所反映的是一个非线性的混沌系统.但是,进一步的实验表明,在某些条件下,仍然可以有周期性的轨迹出现.例如,在采用周期瑞利数r(t)=r0+rlcoswt时,无论系统的初始状态(x,y,z的初值)如何,如果r从0增加至5.0

14、,在r0=26.5时,如果我们观察系统经过较长时间迭代后的状态(DisplayAfter=50000),可以发现此时系统出现了稳态的单周期f图6.1.3a),在r0增大的过程中,可以获得稳态的双周期(图6.1.3b)、稳态的4周期(图6.1.3c)、稳态的64周期(图6.1.3d)等等。又例如,当对rl=10时,系统对不同的x,y,z初值的敏感性很快消失了系统此时处于稳定对流状态.如果很大,系统将处于周期状态而不是混沌状态.二、实验装置计算机硬件.IBMPC或兼容机一台.计算机性能的好坏主要影响模拟计算的速度.建议采用80486或速度更快的计算机.打印机一台,需要支持图形打印方式.计算机软件.DOS5.0以上操作系统.高级编程语言一种,例如BASIC,PASCAL,C,FORTRAN等.三、实验内容自选一种编程语言,对Lorenz吸引子进行模拟计算.编程获得x-y图的罗伦兹混沌吸引子图.验证混沌系统对初值的敏感性z=1和z=0.001时获得x-y图、z-t图,验证混沌系统的倍周期运动.将你的实验结果和附录程序的结果进行比较.四、思考和讨论试说明数值模拟方法的特点,它与理论研究、实验研究有什么关系?从混沌系统的基本特征出发,联系天气预报系统,说明蝴蝶效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论