您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第九章常微分方程数值解
(NumericalMethodsforOrdinaryDifferentialEquations)问题驱动:蝴蝶效应洛伦兹吸引子(Lorenzattractor)是由MIT大学的气象学家EdwardLorenz在1963年给出的,他给出第一个混沌现象——蝴蝶效应。图10.1.1蝴蝶效应示意图洛伦兹方程是大气流体动力学模型的一个简化的常微分方程组:dxxydtdyrxyxzdtdzbzxydt该方程组来源于模拟大气对流,该模型除了在天气预报中有显著的应用之外,还可以用于研究空气污染和全球侯变化。洛伦兹借助于这个模型,将大气流体运动的强度x与水平和垂直方向的温度变化y和z联系了起来。参数称为普兰特数,r是规范化的瑞利数,b和几何形状相关。洛伦兹方程是非线性方程组,无法求出解析解,必须使用数值方法求解上述微分方程组。洛伦兹用数值解绘制结果图10.1.1,并发现了混沌现象。§1引言微分方程数值解一般可分为:常微分方程数值解和偏微分方程数值解。自然界与工程技术中的许多现象,其数学表达式可归结为常微分方程(组)的定解问题。一些偏微分方程问题也可以转化为常微分方程问题来(近似)求解。Newton最早采用数学方法研究二体问题,其中需要求解的运动方程就是常微分方程。许多著名的数学家,如Bernoulli(家族),Euler、Gauss、Lagrange和Laplace等,都遵循历史传统,研究重要的力学问题的数学模型,在这些问题中,许多是常微分方程的求解。作为科学史上的一段佳话,海王星的发现就是通过对常微分方程的近似计算得到的。本章主要介绍常微分方程数值解的若干方法。一、初值问题的数值解法1、一阶常微分方程初值问题的一般形式0(,),(1)()yfxyaxbyay常微分方程的数值解法分为(1)初值问题的数值解法(2)边值问题的数值解法(2)一般构造方法:离散点函数值集合+线性组合结构→近似公式2.迭代格式的构造(1)构造思想:将连续的微分方程及初值条件离散为线性方程组加以求解。由于离散化的出发点不同,产生出各种不同的数值方法。基本方法有:有限差分法(数值微分)、有限体积法(数值积分)、有限元法(函数插值)等等。(3)如何保证迭代公式的稳定性与收敛性?3.微分方程的数值解法需要解决的主要问题(1)如何将微分方程离散化,并建立求其数值解的迭代公式?(2)如何估计迭代公式的局部截断误差与整体误差?称在区域D上对满足Lipschitz条件是指:1212120..(,)(,),[,],,[(),()]LstfxyfxyLyyxabyyyxyx(,)fxyy{(,),()()}Dxyaxbyxyyx记4、相关定义二、初值问题解的存在唯一性考虑一阶常微分方程的初值问题/*Initial-ValueProblem*/:0)(],[),(yaybaxyxfdxdy|||),(),(|2121yyLyxfyxf则上述IVP存在唯一解。只要在上连续,且关于y满足Lipschitz条件,(,)fxy1,abR即存在与无关的常数L使,xy对任意定义在上的都成立,,ab12,yxyx求函数y(x)在一系列节点a=x0x1…xn=b处的近似值的方法称为微分方程的数值解法。()(1,...,)iiyyxin称节点间距为步长,通常采用等距节点,即取hi=h(常数)。)1,...,0(1nixxhiii1,,nyy称为微分方程的数值解。三、初值问题的离散化方法离散化方法的基本特点是依照某一递推公式,值,取。按节点从左至右的顺序依次求出的近似()iyx(1,...,)iyin0y如果计算,只用到前一步的值,则称这类方法为单步方法。1iyiy如果计算需用到前r步的值,,则称这类方法为r步方法。1iy11,,iiryyiy§2欧拉方法/*Euler’sMethod*/欧拉公式(单步显示公式):向前差商近似导数hxyxyxy)()()(010),()()()(000001yxfhyxyhxyxy1y记为x0x1)1,...,0(),(1niyxfhyyiiii亦称为欧拉折线法/*Euler’spolygonalarcmethod*/在假设yi=y(xi),即第i步计算是精确的前提下,考虑的截断误差Ri=y(xi+1)yi+1称为局部截断误差/*localtruncationerror*/。定义2.2若某算法的局部截断误差为O(hp+1),则称该算法有p阶精度。定义2.1欧拉法的局部截断误差:11()iiiRyxy23()()2ihyxOhRi的主项/*leadingterm*/欧拉法具有1阶精度。232[()()()()][(,)]hiiiiiiyxhyxyxOhyhfxy()iiyyx'()(,())iiiyxfxyx2()Oh例1:用欧拉公式求解初值问题2201.201yxyxy()取步长。0.1h解:应用Euler公式于题给初值问题的具体形式为:2120,1,...,1101iiiiyyhxyiy其中。0.1ixi计算结果列于下表:iixiyiyxiiyxy1234567891011120.10.20.30.40.50.60.70.80.91.01.11.21.0000000.9800000.9415840.8883890.8252500.7571470.6883540.6220180.5601130.5036420.4529110.4077830.9900990.9615380.9174310.8630690.8000000.7352940.6711410.6097560.5524860.5000000.4524890.4098360.0099010.0184620.0241530.0263200.0252500.0218520.0172130.0122620.0076260.0036420.0004220.002053可用来检验近似解的准确程度。进行计算,数值解已达到了一定的精度。这个初值问题的准确解为,211yxx从上表最后一列,我们看到取步长0.1h欧拉公式的改进:隐式欧拉法/*implicitEulermethod*/向后差商近似导数hxyxyxy)()()(011x0x1))(,()(1101xyxfhyxy由于未知数yi+1同时出现在等式的两边,不能直接得到,故称为隐式/*implicit*/欧拉公式,而前者称为显式/*explicit*/欧拉公式。111,0,1iiiiyhfxiyyn一般先用显式计算一个初值,再迭代求解。隐式欧拉法的局部截断误差:11()iiiRyxy23()()2ihyxOh即隐式欧拉公式具有1阶精度。梯形公式/*trapezoidformula*/—显、隐式两种算法的平均)1,...,0()],(),([2111niyxfyxfhyyiiiiii注:梯形公式的局部截断误差,311iiiRyxyOh即梯形公式具有2阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。中点欧拉公式/*midpointformula*/中心差商近似导数hxyxyxy2)()()(021x0x2x1))(,(2)()(1102xyxfhxyxy1,...,1),(211niyxfhyyiiii假设,则可以导出即中点公式具有2阶精度。)(),(11iiiixyyxyy)()(311hOyxyRiii方法显式欧拉隐式欧拉梯形公式中点公式简单精度低稳定性最好精度低,计算量大精度提高计算量大精度提高,显式多一个初值,可能影响精度Can’tyougivemeaformulawithalltheadvantagesyetwithoutanyofthedisadvantages?Doyouthinkitpossible?Well,callmegreedy…OK,let’smakeitpossible.改进欧拉法/*modifiedEuler’smethod*/Step1:先用显式欧拉公式作预测,算出Step2:再将代入隐式梯形公式的右边作校正,得到1iy)1,...,0(),(,),(211niyxfhyxfyxfhyyiiiiiiii1,iiiiyyhfxy111,,2iiiiiiyyyyhfxfx注:此法亦称为预测-校正法/*predictor-correctormethod*/可以证明该算法具有2阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。改进的欧拉法),(),(2111nnnnnnyxfyxfhyy在实际计算时,可将欧拉法与梯形法则相结合,计算公式为,...2,1,0),(),(2),()(11)1(1)0(1kyxfyxfhyyyxhfyyknnnnnknnnnn应用改进欧拉法,如果序列收敛,,,)1(1)0(1nnyy它的极限便满足方程),(),(2111nnnnnnyxfyxfhyy改进欧拉法的截断误差)(0)(311hyxynn因此,改进欧拉法公式具有2阶精度二元函数的n阶Taylor展式:****1**1(,)1(,)(,)(,)!knnikiikikfxhyfxyfxyhOhkxy'()(,())''()'()'''()'()('())'()''()xyxxxyyxyyyyxfxyxyxffyxyxffyxffyxyxfyx例2:用改进Euler公式求解例1中的初值问题,取步长。0.1h解:对此初值问题采用改进Euler公式,其具体形式为0212111111122()0,1,...,1112piiiicpiiiipciiiyyyhxyyyhxyiyyy计算结果列于下表:iixiy1piy1ciyiiyxy改进的Euler法iiyxyEuler法01234567891011120.00.10.20.30.40.50.60.70.80.91.01.11.21.0000000.9900000.9613660.9172460.8619540.8000340.7355270.6175870.6103990.5532890.5009190.4534790.4108591.0000000.9703890.9243970.8667650.8025170.7360290.6706070.6084430.5507850.4981860.4507350.4082370.9800000.9523330.9100950.8571430.7975510.7350250.6725670.6123550.5557930.5036510.4562230.4134810.0000000.0000990.0001730.0001850.0001150.0000340.0002330.0004460.0006430.0008030.0009190.0009900.0010230.0000000.0099010.0184620.0241530.0263200.0252500.0218520.0172130.0122620.0076260.0036420.0004220.002053通过计算结果的比较可以看出,改进的
本文标题:第九章常微分方程数值解
链接地址:https://www.777doc.com/doc-3573496 .html