常微分方程数值解法01560课件_第1页
常微分方程数值解法01560课件_第2页
常微分方程数值解法01560课件_第3页
常微分方程数值解法01560课件_第4页
常微分方程数值解法01560课件_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

所谓微分方程数值解法,就是研究利用计算机求解微分方程的近似解的数值方法及相关理论。《微分方程数值解法》是“信息与计算科学”专业的专业基础课程之一,与数值代数、数值逼近和计算几何统称三大核心课程。第一部分常微分方程数值解/*NumericalMethodsforOrdinaryDifferentialEquations*/

待求解的问题:一阶常微分方程的初值问题/*Initial-ValueProblem*/:解的存在唯一性(“常微分方程”理论):只要f(x,y)在[a,b]R1上连续,且关于y满足Lipschitz

条件,即存在与x,y无关的常数L使对任意定义在[a,b]上的y1(x)和y2(x)都成立,则上述IVP存在唯一解。解析解法:(常微分方程理论)只能求解极少一类常微分方程;实际中给定的问题不一定是解析表达式,而是函数表,无法用解析解法。如何求解计算解函数y(x)在一系列节点a=x0<x1<…<xn=b

处的近似值节点间距为步长,通常采用等距节点,即取hi=h

(常数)。数值解法:求解所有的常微分方程步进式:根据已知的或已求出的节点上的函数值计算当前节点上的函数值,一步一步向前推进。因此只需建立由已知的或已求出的节点上的函数值求当前节点函数值的递推公式即可。--------Euler’sMethod§1欧拉方法

/*Euler’sMethod*/§1Euler’sMethodTaylor展开法几何意义亦称为欧拉折线法

/*Euler’spolygonalarcmethod*/

几何直观是帮助我们寻找解决一个问题的思路的好办法哦定义在假设yn=y(xn),即第n步计算是精确的前提下,考虑公式或方法本身带来的误差:Rn=y(xn+1)

yn+1,称为局部截断误差/*localtruncationerror*/。说明

显然,这种近似有一定误差,而且步长越大,误差越大,如何估计这种误差y(xn+1)

yn+1?§1Euler’sMethod截断误差:实际上,y(xn)

yn,yn也有误差,它对yn+1的误差也有影响,见下图。但这里不考虑此误差的影响,仅考虑方法或公式本身带来的误差,因此称为方法误差或截断误差。局部截断误差的分析:由于假设yn=y(xn),即yn准确,因此分析局部截断误差时将y(xn+1)和

yn+1都用点xn上的信息来表示,工具:Taylor展开。

欧拉法的局部截断误差:Rn+1的主项/*leadingterm*/§1Euler’sMethod定义若某算法的局部截断误差为O(hp+1),则称该算法有p阶精度。欧拉法具有1阶精度。在xn点用一阶向前差商近似一阶导数Euler’smethod§1Euler’sMethod§1Euler’sMethod

欧拉公式的改进:隐式欧拉法或后退欧拉法

/*implicitEulermethodorbackwardEulermethod*/xn+1点向后差商近似导数隐式或后退欧拉公式由于未知数yn+1

同时出现在等式的两边,故称为隐式/*implicit*/

欧拉公式,而前者称为显式/*explicit*/欧拉公式。隐式公式不能直接求解,一般需要用Euler显式公式得到初值,然后用Euler隐式公式迭代求解。因此隐式公式较显式公式计算复杂,但稳定性好(后面分析)。收敛性§1Euler’sMethod见上图,显然,这种近似也有一定误差,如何估计这种误差y(xn+1)

yn+1?方法同上,基于Taylor展开估计局部截断误差。但是注意,隐式公式中右边含有f(xn+1

,yn+1),由于yn+1不准确,所以不能直接用y'(xn+1)代替f(xn+1

,yn+1)设已知曲线上一点Pn(xn,yn),过该点作弦线,斜率为(xn+1

,yn+1)点的方向场f(x,y)方向,若步长h充分小,可用弦线和垂线x=xn+1的交点近似曲线与垂线的交点。几何意义xnxn+1PnPn+1xyy(x)§1Euler’sMethod隐式欧拉法的局部截断误差:§1Euler’sMethod§1Euler’sMethod隐式欧拉法的局部截断误差:即隐式欧拉公式具有1阶精度。§1Euler’sMethod比较尤拉显式公式和隐式公式及其局部截断误差显式公式隐式公式§1Euler’sMethod若将这两种方法进行算术平均,即可消除误差的主要部分/*leadingterm*/而获得更高的精度,称为梯形法§1Euler’sMethod梯形公式/*trapezoidformula*/—显、隐式两种算法的平均注:的确有局部截断误差,即梯形公式具有2阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。梯形法的迭代计算和收敛性收敛性§1Euler’sMethod梯形法的简化计算

迭代计算量大,且难以预测迭代次数。为了控制计算量,通常只迭代一次就转入下一点的计算。用显式公式作预测,梯形公式作校正,得到如下预测校正系统,也称为改进尤拉法:改进欧拉法/*modifiedEuler’smethod*/Step1:先用显式欧拉公式作预测,算出),(1nnnnyxfhyy+=+Step2:再将代入隐式梯形公式的右边作校正,得到1+ny)],(),([2111+++++=nnnnnnyxfyxfhyy§1Euler’sMethod注:此法亦称为预测-校正法/*predictor-correctormethod*/。可以证明该算法具有2阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。§1Euler’sMethod其它形式几何解释xnxn+1ABPn+1=(A+B)/2尤拉法后退尤拉法梯形法§1Euler’sMethod令x=x1,得Anotherpointofview对右端积分采用左矩形、右矩形、梯形积分公式,即可得尤拉显式、隐式、梯形公式§1Euler’sMethod中点欧拉公式/*midpointformula*/中心差商近似导数x0x2x1假设,则可以导出即中点公式也具有2阶精度,且是显式的。需要2个初值y0和y1来启动递推过程,这样的算法称为双步法/*double-stepmethod*/,而前面的三种算法都是单步法/*single-stepmethod*/。§1Euler’sMethod几何解释xnxn+1尤拉法后退尤拉法中点法xn-1令x=x2,得Anotherpointofview对右端积分采用中矩形公式即得中点公式§1Euler’sMethod预测-校正-改进系统中点法具有二阶精度,且是显式的,与梯形公式精度相匹配,用中点公式作预测,梯形公式作校正,得到如下预测校正系统:校正误差约为预测误差的1/4§1Euler’sMethod预测误差和校正误差的事后误差估计式利用上两式可以估计预测值和校正值与准确值的误差,可以期望,利用这两个误差分别作预测值和校正值的补偿,有可能提高精度。设pn,cn分别为第n步的预测值和校正值,即此时cn+1未知,故用pn-cn代替§1Euler’sMethod预测-校正-改进公式注:利用该算法计算yn+1时,需要§1Euler’sMethod公式局部截断误差精度显隐稳定性步数尤拉显式公式1阶显差单步尤拉隐式公式1阶隐好单步梯形公式2阶隐差单步中点法2阶显好二步summary两个预测--校正系统尤拉两步法和梯形公式构成的预测-校正-改进系统尤拉公式和梯形公式构成的预测-校正系统例HW:p.201#1-5证明中点法和梯形公式的精度为2阶§2龙格-库塔法/*Runge-KuttaMethod*/建立高精度的单步递推格式:在改进尤拉法和尤拉两步法预测-校正系统中,预测公式都是单步法,如果预测误差很小,则通过校正后得到的近似值误差会更小,因此需要研究高精度的单步法.1.Taylor级数法IVP:设其解为y=y(x)由Taylor展开,有(1)§2Runge-KuttaMethod(2)§2Runge-KuttaMethod要使公式具有p阶精度,则在(1)式中截取前p+1项,用(2)式计算各阶导数,即得下面Taylor公式:局部截断误差(3)§2Runge-KuttaMethod2.Taylor公式(3)表面上看形式简单,但具体构造时往往很困难,因为按(2)式求导,这一过程可能很复杂。因此通常不直接用Taylor公式,而借鉴其思想提出其它公式。1.由此看出,一种方法具有p阶精度公式对不超过p次的多项式准确成立(局部截断误差为0)。这一等价条件也可以用来判断一种方法的精度。§2Runge-KuttaMethod单步递推法的基本思想是从(xn,yn)点出发,以某一斜率沿直线达到(xn+1

,yn+1

)点。欧拉法及其各种变形所能达到的最高精度为2阶。2.Runge—KuttaMethod由微分中值定理,有k*称为区间[xn,xn+1]上的平均斜率,只要知道平均斜率,就可计算y(xn+1).因此只要对平均斜率提供一种近似算法,则由(4)式可导出一种相应的求解公式。(4)§2Runge-KuttaMethod例§2Runge-KuttaMethod由此看出,改进的尤拉公式用xn与xn+1两个节点的斜率的算术平均作为平均斜率,xn+1点的斜率通过已知信息yn来预测。

考察改进的欧拉法,可以将其改写为:斜率一定取K1,K2的平均值吗?步长一定是h吗?即第二个节点一定是xn+1吗?§2Runge-KuttaMethod§2Runge-KuttaMethod首先希望能确定系数1、2、p,使得到的算法格式有2阶精度,即在的前提假设下,使得

Step1:将K2在(xi,yi)点作Taylor展开将改进欧拉法推广为:),(),(][12122111phKyphxfKyxfKKKhyyiiiiii++==++=+llStep2:将K2代入第1式,得到2阶Runge—KuttaMethod§2Runge-KuttaMethodStep3:将yi+1与y(xi+1)在xi点的泰勒展开作比较要求,则必须有:这里有个未知数,个方程。32存在无穷多个解。所有满足上式的格式统称为2阶龙格-库塔格式。注意到,就是改进的欧拉法;p=1/2,1=0,2=1,

变形尤拉公式。Q:为获得更高的精度,应该如何进一步推广?改进的Euler公式推广为二阶Runge-Kutta公式带来这样的启示:若在[xn,xn+1]上多预测几个点的斜率值,然后将它们的算术平均作为平均斜率,则有可能构造出具有更高精度的计算公式。--------Runge-Kutta方法的基本思想。注:二阶Runge-Kutta公式用多算一次函数值f的办法避开了二阶Taylor级数法所要计算的f的导数。在这种意义上,可以说Runge-Kutta方法实质上是Taylor级数法的变形。§2Runge-KuttaMethod其中i

(i=1,…,m),i

(i=2,…,m)

和ij

(i=2,…,m;j=1,…,i1

)

均为待定系数,确定这些系数的步骤与前面相似。

§2Runge-KuttaMethod)...,(......),(),(),(]...[1122112321313312122122111--++++++=+++=++==++++=mmmmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyybbbabbaballl高阶Runge—KuttaMethodGill公式:4阶经典龙格-库塔公式的一种改进§2Runge-KuttaMethod

最常用为四级4阶经典龙格-库塔法

/*ClassicalRunge-KuttaMethod*/:§2Runge-KuttaMethod注:

龙格-库塔法的主要运算在于计算Ki

的值,即计算f

的值。Butcher于1965年给出了计算量与可达到的最高精度阶数的关系:753可达到的最高精度642每步须算Ki的个数由于龙格-库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。对于光滑性不太好的解,最好采用低阶算法而将步长h

取小。§2Runge-KuttaMethod变步长的Runge—KuttaMethodQ:由局部截断误差可以看出,步长h越小,局部截断误差越小;但步长减小,在一定求解范围(区间)内要完成的步数就增加了,步数增加会引起计算量增大,导致舍入误差积累。因此要选取适当的步长。选择步长时要考虑两个问题:1.如何衡量和检验计算结果的精度?2.如何根据所获得的精度处理步长?HW:p.201#6-8§3单步法的收敛性与稳定性/*ConvergencyandStability*/前面介绍了两大类微分方程数值解法:一类是用差商近似导数得到的尤拉系列公式,另一类是基于平均斜率概念的Runge—Kutta公式。基本思想都是通过某种离散化手续,将微分方程转化为差分方程(代数方程)来求解。

Q1.这种转化是否合理?要看差分问题的解yn当h0时是否收敛到微分方程的解y(xn),即是否成立yn

y(xn),h0.-----收敛性问题Q2.实际计算时,由于舍入误差的影响,差分方程的解本身也有误差,这种误差在计算过程中会不会扩大-----稳定性问题§3ConvergencyandStability

收敛性/*Convergency*/定义若某算法对于任意固定的x=xi=x0+ih,当h0

(同时i)时有yi

y(xi

),则称该算法是收敛的。例:就初值问题考察欧拉显式格式的收敛性。解:该问题的精确解为欧拉公式为对任意固定的x=xi=ih,有§3ConvergencyandStability显式单步法的收敛性(1)§3ConvergencyandStability而整体截断误差为证明:设表示当yn=y(xn)时,

由公式(1)求得的结果,即则局部截断误差为(2)(2)-(1),得§3ConvergencyandStability从而§3ConvergencyandStability§3ConvergencyandStability

Euler法的收敛性:(x,y)=f(x,y),故当f(x,y)满足Lipschitz条件时,尤拉法收敛;§3ConvergencyandStability§3ConvergencyandStability稳定性/*Stability*/例:考察初值问题在区间[0,0.5]上的解。分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。0.00.10.20.30.40.5精确解改进欧拉法

欧拉隐式欧拉显式

节点xi

1.00002.00004.00008.00001.6000101

3.2000101

1.00002.5000101

6.25001021.56251023.90631039.76561041.00002.50006.25001.56261013.90631019.76561011.00004.97871022.47881031.23411046.14421063.0590107Whatiswrong??!AnEngineercomplains:"Maththeoremsaresounstablethatasmallperturbationontheconditionswillcauseacrashontheconclusions!"§3ConvergencyandStability§3ConvergencyandStability定义若某算法在计算过程中任一步产生的误差在以后的计算中都逐步衰减,则称该算法是绝对稳定的/*absolutelystable*/。一般分析某算法的稳定性时,为简单起见,只考虑模型方程或试验方程/*testequation*/常数,可以是复数当步长取为h时,将某算法应用于上式,并假设只在初值产生误差,则若此误差以后逐步衰减,就称该算法相对于绝对稳定,的全体构成绝对稳定区域。我们称算法A比算法B稳定,就是指A的绝对稳定区域比B的大。hlh=h§3ConvergencyandStability§3ConvergencyandStability§3ConvergencyandStability§3ConvergencyandStability例:隐式龙格-库塔法而显式1~4阶方法的绝对稳定区域为其中2阶方法的绝对稳定区域为0ReImgk=1k=2k=3k=4-1-2-3---123ReImg无条件稳定注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。小结尤拉两步公式与尤拉单步公式相比,使用两个节点上的已知信息将精度提高一阶。可以设想,计算y(xn+1)时,充分利用前面已经求出的节点上的y及y’值的线性组合来近似y(xn+1),精度会大大提高。----线性多步法的基本思想。构造线性多步法有多种途径,这里介绍两种:

基于数值积分的构造方法;

基于Taylor展开的构造方法。§4线性多步法/*MultistepMethod*/)...(...110111101rnrnnnrnrnnnffffhyyyy--+---+++++++++=bbbbaaa线性多步法的通式可写为:当10时,为隐式公式;1=0则为显式公式。

基于数值积分的构造法将在上积分,得到只要近似地算出右边的积分,则可通过近似y(xn+1)。而选用不同近似式I,可得到不同的计算公式。例如利用左矩形积分公式得到尤拉公式;梯形积分公式得到梯形公式。一般地,利用插值原理所建立的一系列数值积分方法也可以导出解微分方程的一系列计算公式。运用插值方法的关键在于选取合适的插值节点。假设已构造出f(x,y(x))的插值多项式Pr(x),则§4MultistepMethod亚当姆斯显式公式/*Adamsexplicitformulae*/利用r+1个节点上的被积函数值构造r阶牛顿后插多项式,有Newton插值余项/*Adams显式公式*/外推技术/*extrapolation*/table5-6,p.181jj0111/225/1233/8实际计算时,将差分展开ijrj=i局部截断误差为:注:Br与yn+1计算公式中fn,…,fnk

各项的系数均可查表得到。见下表。10123rfnfn1fn2fn3…Br…………………例:常用的是r=3的4阶亚当姆斯显式公式Adams显式公式用作为插值节点,在求积区间[xn,xn+1]上用插值函数Nr(x)近似f(x,y(x)),而xn+1不在插值节点内,因此是一个外推的过程。虽然公式是显式的,便于计算,但效果并不理想,比如稳定性较差等。因此改用通过r+1个节点的插值多项式Nr(x)近似f(x,y(x)),由于xn+1是其中一个插值点,因此是内插多项式,但导出的公式是隐式的。§4MultistepMethod亚当姆斯隐式公式/*Adamsimplicitformulae*/利用r+1个节点上的被积函数值fn+1

,fn,…,fnr+1

构造r阶牛顿前插多项式。与显式多项式完全类似地可得到一系列隐式公式。j011-1/22-1/123-1/24局部截断误差为:10123kfi+1fifi1fi2…Br…………………~小于Br注:与yn+1计算公式中fn+1

,…,fn+1k

各项的系数均可查表得到。见下表。常用的是k=3的4阶亚当姆斯隐式公式较同阶显式稳定例:§4MultistepMethod亚当姆斯预测-校正系统/*Adamspredictor-correctorsystem*/Step1:用Runge-Kutta法计算前k

个初值;Step2:用Adams显式计算预测值;Step3:用同阶Adams隐式计算校正值。注意:三步所用公式的精度必须相同。通常用经典Runge-Kutta法配合4阶Adams公式。4阶Adams隐式公式的截断误差为4阶Adams显式公式的截断误差为Predictedvaluepn+1Correctedvaluecn+1Modifiedvaluemn+1预测值与校正值的事后误差估计Adams显隐预测-校正-改进系统§4MultistepMethod

Adams4th-Orderpredictor-correctorAlgorithmToapproximatethethesolutionoftheinitial-valueproblemAt(N+1)equallyspacednumbersintheinterval[a,b].Input:endpointsa,b;integerN;initialvaluey0

.Output:approximationyatthe(N+1)valuesofx.Step1Seth=(ba)/N;x0=a;y0=y0;Output(x0,y0);Step2Fori=1,2,3ComputeyiusingclassicalRunge-Kuttamethod;Output(xi,yi);Step3Fori=4,…,Ndosteps4-10

Step5;/*predict*/

Step6;/*modify*/

Step7

;/*correct*/

Step8;/*modifythefinalvalue*/

Step9

Output(xi+1

,yi+1

);

Step10Forj=0,1,2,3Setxi

=xi+1

;yi

=yi+1

;/*Preparefornextiteration*/Step11STOP.应为(ci+1pi+1

),但因ci+1

尚未算出,只好用(cipi)取代之。§4MultistepMethod

基于泰勒展开的构造法)...(...110111101rnrnnnrnrnnnffffhyyyy--+---+++++++++=bbbbaaa

将通式中的右端各项yn1,…,ynk;fn+1,fn1,…,fnk(y’n+1,…,y’nk)分别在

xn点作泰勒展开,与精确解y(xn+1)在xn点的泰勒展开作比较。通过令同类项系数相等,得到足以确定待定系数0,…,r;

1,0,…,r

的等式,则可构造出线性多步法的公式。当10时,为隐式公式;1=0则为显式公式。局部截断误差为例:设)(3322110221101-----+++++++=nnnnnnnnyyyyhyyyybbbbaaa确定式中待定系数0,1,2,

0,1,2,3,

使得公式具有4阶精度。§4MultistepMethod解:/*y(xn)=yn*/个未知数个方程75§4MultistepMethod

令1=2=0Adams

显式公式以yn+1取代yn3,并取1=2=0Adams

隐式公式以yn3取代yn3,则可导出另一组4阶显式算法,其中包含了著名的米尔尼

/*Milne*/公式(4步4阶显式公式)其局部截断误差为注:上式也可通过数值积分导出,即将在区间上积分,得到再过做f的2次插值多项式即可。取1=1,2=0得到辛甫生

/*Simpson*/公式与Milne公式匹配使用,构成预测-校正系统辛甫生

/*Simpson*

温馨提示

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

评论

0/150

提交评论