ch6-常微分方程数值解_第1页
ch6-常微分方程数值解_第2页
ch6-常微分方程数值解_第3页
ch6-常微分方程数值解_第4页
ch6-常微分方程数值解_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

Chapter6

常微分方程数值解NumericalMethodsforOrdinaryDifferentialEquations

§6.0Introduction§6.1欧拉方法

(Euler’sMethod)§6.2龙格-库塔法

(Runge-KuttaMethod)§6.3收敛性与稳定性

(ConvergencyandStability)§6.4线性多步法

(MultistepMethods)§6.5微分方程组与高阶方程

(SystemsofDifferentialEquationsandHigher-OrderEquations)

§6.6边值问题的数值解

(Boundary-ValueProblems)

考虑一阶常微分方程的初值问题/*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

(常数)。§6.0Introduction

欧拉公式:x0x1向前差商近似导数记为定义在假设yi=y(xi),即第i步计算是精确的前提下,考虑的截断误差Ri=y(xi+1)

yi+1称为局部截断误差/*localtruncationerror*/。定义若某算法的局部截断误差为O(hp+1),则称该算法有p阶精度。

欧拉法的局部截断误差:欧拉法具有1阶精度。Ri的主项/*leadingterm*/亦称为欧拉折线法

/*Euler’spolygonalarcmethod*/

§6.1欧拉方法

(Euler’sMethod)例6.1

用欧拉法求初值问题当h=0.02时在区间[0,0.10]上的数值解。方程真解:〔参考程序〕nxnyny(xn)

n=y(xn)-

yn001.00001.0000010.020.98200.98250.000520.040.96500.96600.001030.060.94890.95030.001440.080.93370.93540.001750.100.91920.92120.0020欧拉公式的变形与改进:

隐式欧拉法/*implicitEulermethod*/向后差商近似导数x0x1))(,()(1101xyxfhyxy+

)1,...,0(),(111-=+=+++niyxfhyyiiii由于未知数yi+1

同时出现在等式的两边,不能直接得到,故称为隐式/*implicit*/

欧拉公式,而前者称为显式/*explicit*/欧拉公式。一般先用显式计算一个初值,再迭代求解。

隐式欧拉法的局部截断误差:即隐式欧拉公式具有1阶精度。Hey!Isn’ttheleadingtermofthelocaltruncationerrorofEuler’smethod?Seemsthatwecanmakeagooduseofit…§6.1欧拉方法

(Euler’sMethod)

梯形公式/*trapezoidformula*/—显、隐式两种算法的平均注:的确有局部截断误差,即梯形公式具有2阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。

中点欧拉公式/*midpointformula*/中心差商近似导数x0x2x1假设,则可以导出即中点公式具有2阶精度。需要2个初值y0和y1来启动递推过程,这样的算法称为双步法/*double-stepmethod*/,而前面的三种算法都是单步法/*single-stepmethod*/。§6.1欧拉方法

(Euler’sMethod)方法

显式欧拉隐式欧拉梯形公式中点公式简单精度低稳定性最好精度低,计算量大精度提高计算量大精度提高,显式多一个初值,可能影响精度Can’tyougivemeaformulawithalltheadvantagesyetwithoutanyofthedisadvantages?Doyouthinkitpossible?Well,callmegreedy…OK,let’smakeitpossible.§6.1欧拉方法

(Euler’sMethod)改进欧拉法/*modifiedEuler’smethod*/Step1:先用显式欧拉公式作预测,算出),(1iiiiyxfhyy+=+Step2:再将代入隐式梯形公式的右边作校正,得到1+iy)],(),([2111+++++=iiiiiiyxfyxfhyy注:此法亦称为预测-校正法/*predictor-correctormethod*/。可以证明该算法具有2阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。§6.1欧拉方法

(Euler’sMethod)欧拉法的截断误差:

改进欧拉法的截断误差:【例6.2】

在区间[0,1.5]上,取h=0.1,求解〔参考程序〕。本题的精确解为,可用来检验近似解的精确程度。计算结果如下表:

xn

欧拉法yn迭代一次改进欧拉法yn准确解01110.11.11.0959091.0954450.21.1918181.1840961.1832160.31.2774381.2602011.2649110.41.3582131.3433601.3416410.51.4351331.4161021.4142140.61.5089661.4829561.4832400.71.5803381.5525151.5491930.81.6497831.6164761.6124520.91.7177791.6781681.6733201.01.7847701.7378691.7320511.11.851181.7958221.7888541.21.9174641.8522421.8439091.31.9840461.9073231.8973671.42.0514041.9612531.9493591.52.1200522.0142072.000000建立高精度的单步递推格式。单步递推法的基本思想是从(xi,yi)点出发,以某一斜率沿直线达到(xi+1

,yi+1

)点。欧拉法及其各种变形所能达到的最高精度为2阶。

考察改进的欧拉法,可以将其改写为:斜率一定取K1K2的平均值吗?步长一定是一个h吗?§6.2龙格-库塔法

(Runge-KuttaMethod)首先希望能确定系数

1、

2、p,使得到的算法格式有2阶精度,即在的前提假设下,使得

Step1:将K2在(xi,yi)点作Taylor展开将改进欧拉法推广为:),(),(][12122111phKyphxfKyxfKKKhyyiiiiii++==++=+llStep2:将K2代入第1式,得到§6.2Runge-KuttaMethodsStep3:将yi+1与y(xi+1)在xi点的泰勒展开作比较要求,则必须有:这里有个未知数,个方程。32存在无穷多个解。所有满足上式的格式统称为2阶龙格-库塔格式。注意到,就是改进的欧拉法。Q:为获得更高的精度,应该如何进一步推广?§6.2Runge-KuttaMethods其中

i

(i=1,…,m),

i

(i=2,…,m)

ij

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

)

均为待定系数,确定这些系数的步骤与前面相似。)...,(......),(),(),(]...[1122112321313312122122111--++++++=+++=++==++++=mmmmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyybbbabbaballl

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

/*ClassicalRunge-KuttaMethod*/:§6.2Runge-KuttaMethods注:

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

的值,即计算f

的值。Butcher于1965年给出了计算量与可达到的最高精度阶数的关系:753可达到的最高精度642每步须算Ki的个数

由于龙格-库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。对于光滑性不太好的解,最好采用低阶算法而将步长h

取小。HW:p.127#1,2,3,5§6.2Runge-KuttaMethods【例6.3】

用Runge-Kutta(龙格―库塔)方法解初值问题y’=x2–y(0≤x≤1)y(0)=1.〔参考程序〕 解:

取h=0.1,

【作业】用Runge-Kutta方法解例6.2,与那里的结果比较。

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

(同时i

)时有yi

y(xi

),则称该算法是收敛的。例:就初值问题考察欧拉显式格式的收敛性。解:该问题的精确解为欧拉公式为对任意固定的x=xi=ih,有

§6.3收敛性与稳定性

(ConvergenceandStability)

稳定性/*Stability*/例:考察初值问题在区间[0,0.5]上的解。分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。0.00.10.20.30.40.5精确解改进欧拉法

欧拉隐式欧拉显式

节点xi

1.0000

2.00004.0000

8.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!"§6.3ConvergenceandStability定义若某算法在计算过程中任一步产生的误差在以后的计算中都逐步衰减,则称该算法是绝对稳定的/*absolutelystable*/。一般分析时为简单起见,只考虑试验方程/*testequation*/常数,可以是复数当步长取为h时,将某算法应用于上式,并假设只在初值产生误差,则若此误差以后逐步衰减,就称该算法相对于绝对稳定,的全体构成绝对稳定区域。我们称算法A比算法B稳定,就是指A的绝对稳定区域比B的大。hlh=h§6.3ConvergenceandStability例:考察显式欧拉法由此可见,要保证初始误差

0以后逐步衰减,必须满足:0-1-2ReImg例:考察隐式欧拉法可见绝对稳定区域为:210ReImg注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。§6.3ConvergenceandStability例:隐式龙格-库塔法而显式1~4阶方法的绝对稳定区域为其中2阶方法的绝对稳定区域为0ReImgk=1k=2k=3k=4-1-2-3---123ReImg无条件稳定§6.3ConvergenceandStability用若干节点处的y及y’值的线性组合来近似y(xi+1)。)...(...110111101kikiiikikiiiffffhyyyy--+---+++++++++=bbbbaaa其通式可写为:

基于数值积分的构造法将在上积分,得到只要近似地算出右边的积分,则可通过近似y(xi+1)。而选用不同近似式Ik,可得到不同的计算公式。§6.4线性多步法

(MultistepMethods)当10时,为隐式公式;1=0那么为显式公式。

亚当姆斯显式公式/*Adamsexplicitformulae*/利用k+1个节点上的被积函数值构造k阶牛顿后插多项式,有Newton插值余项/*显式计算公式*/局部截断误差为:例:k=1时有§6.4MultistepMethods注:一般有,其中Bk与yi+1计算公式中fi,…,fi

k

各项的系数均可查表得到。10123kfifi1fi2fi3…Bk…………………Misprintonp.204常用的是k=3的4阶亚当姆斯显式公式§6.4MultistepMethods

亚当姆斯隐式公式/*Adamsimplicitformulae*/利用k+1个节点上的被积函数值fi+1

,fi,…,fi

k+1

构造k阶牛顿前插多项式。与显式多项式完全类似地可得到一系列隐式公式,并有,其中与fi+1

,fi,…,fi

k+1的系数亦可查表得到。~~10123kfi+1fifi1fi2…Bk…………………~常用的是k=3的4阶亚当姆斯隐式公式小于Bk较同阶显式稳定§6.4MultistepMethods

亚当姆斯预测-校正系统/*Adamspredictor-correctorsystem*/Step1:用Runge-Kutta法计算前k

个初值;Step2:用Adams显式计算预测值;Step3:用同阶Adams隐式计算校正值。注意:三步所用公式的精度必须相同。通常用经典Runge-Kutta法配合4阶Adams公式。Hey!LookatthelocaltruncationerroroftheexplicitandimplicitAdamsmethods:andDon’tyouthinkthere’ssomethingyoucando?4阶Adams隐式公式的截断误差为4阶Adams显式公式的截断误差为当h充分小时,可近似认为

i

i

,则:Predictedvaluepi+1Modifiedvaluemi+1Correctedvalueci+1Modifiedfinalvalueyi+1外推技术/*extrapolation*/§6.4MultistepMethods

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

.Output:approximationyatthe(N+1)valuesofx.Step1Seth=(b

a)/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+1

pi+1

),但因ci+1

尚未算出,只好用(ci

pi)取代之。§6.4MultistepMethods

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

将通式中的右端各项yi1,…,yi

k;fi+1,fi1,…,fi

k

分别在

xi点作泰勒展开,与精确解

y(xi+1)在xi点的泰勒展开作比较。通过令同类项系数相等,得到足以确定待定系数

0,…,

k;

1,

0,…,

k

的等式,则可构造出线性多步法的公式。§6.4MultistepMethods例:设)(3322110221101-----+

+

+

+

+++=iiiiiiiiyyyyhyyyybbbbaaa确定式中待定系数

0,

1,

2,

0,

1,

2,

3,

使得公式具有4阶精度。解:/*y(xi)=yi*/个未知数个方程75§6.4MultistepMethods

1=

2=0Adams

显式公式

以y

i+1取代y

i1,并取

1=

2=0Adams

隐式公式

以yi3取代y

i3,则可导出另一组4阶显式算法,其中包含了著名的米尔尼

/*Milne*/公式其局部截断误差为注:上式也可通过数值积分导出,即将在区间上积分,得到再过做f的插值多项式即可。取

1=1,

2=0得到辛甫生

/*Simpson*/公式与Milne公式匹配使用

辛甫生

/*Simpson*/公式在区间[xi1,xi+1]上积分,并用Simpson数值积分公式来近似积分项,亦可得此Simpson公式。§6.4MultistepMethods

Milne-Simpson系统的缺点是稳定性差,为改善稳定性,考虑另一种隐式校正公式:要求公式具有4阶精度。通过泰勒展开,可得到个等式,从中解出个未知数,那么有个自由度。561取

1=1得Simpson公式哈明

/*Hamming*/用

1的不同数值进行试验,发现当

1=0

时,公式的稳定性较好,即:其局部截断误差为注:Hamming公式不能用数值积分方法推导出来。§6.4MultistepM

温馨提示

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

评论

0/150

提交评论