欧拉公式的改进课件_第1页
欧拉公式的改进课件_第2页
欧拉公式的改进课件_第3页
欧拉公式的改进课件_第4页
欧拉公式的改进课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

§1Euler’sMethod

欧拉公式的改进:隐式欧拉法/*implicitEulermethod*/向后差商近似导数x0x1))(,()(1101xyxfhyxy+)1,...,0(),(111-=+=+++niyxfhyyiiii由于未知数yi+1

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

欧拉公式,而前者称为显式/*explicit*/欧拉公式。一般先用显式计算一个初值,再迭代求解。隐式欧拉法的局部截断误差:即隐式欧拉公式具有1阶精度。Hey!Isn’ttheleadingtermofthelocaltruncationerrorofEuler’smethod?Seemsthatwecanmakeagooduseofit…§1Euler’sMethod欧拉公式的改进:1§1Euler’sMethod梯形公式/*trapezoidformula*/—显、隐式两种算法的平均注:的确有局部截断误差,即梯形公式具有2阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。中点欧拉公式/*midpointformula*/中心差商近似导数x0x2x1假设,则可以导出即中点公式具有2阶精度。需要2个初值y0和y1来启动递推过程,这样的算法称为双步法/*double-stepmethod*/,而前面的三种算法都是单步法/*single-stepmethod*/。§1Euler’sMethod梯形公式/*tr2方法§1Euler’sMethod显式欧拉隐式欧拉梯形公式中点公式简单精度低稳定性最好精度低,计算量大精度提高计算量大精度提高,显式多一个初值,可能影响精度Can’tyougivemeaformulawithalltheadvantagesyetwithoutanyofthedisadvantages?Doyouthinkitpossible?Well,callmegreedy…OK,let’smakeitpossible.方法§1Euler’sMethod显式欧拉隐式3改进欧拉法/*modifiedEuler’smethod*/Step1:先用显式欧拉公式作预测,算出),(1iiiiyxfhyy+=+Step2:再将代入隐式梯形公式的右边作校正,得到1+iy)],(),([2111+++++=iiiiiiyxfyxfhyy注:此法亦称为预测-校正法/*predictor-correctormethod*/。可以证明该算法具有2阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。§1Euler’sMethod改进欧拉法/*modifiedEuler’sme4§2龙格-库塔法/*Runge-KuttaMethod*/建立高精度的单步递推格式。单步递推法的基本思想是从(xi,yi)点出发,以某一斜率沿直线达到(xi+1

,yi+1

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

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

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

(i=1,…,m),i

(i=2,…,m)

和ij

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

)

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

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

/*ClassicalRunge-KuttaMethod*/:其中i(i=1,…,m),i(i8§2Runge-KuttaMethod注:

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

的值,即计算f

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

取小。HW:p.202#1,2§2Runge-KuttaMethod注:753可达到9§2Runge-KuttaMethodLab15.Runge-Kutta(OrderFour)UseRunge-Kuttamethodoforderfourtoapproximatethesolutionoftheinitial-valueproblem,,and(1)YouaresupposedtowriteafunctionvoidRK4(double(*f)(),doublea,doubleb,doubley0,intn,FILE*outfile)toapproximatethesolutionofProblem(1)withy’=f,xin[a,b],andtheinitialvalueofybeingy0.Outputtheapproximatingvaluesofyonthen+1equallyspacedgridpointsfromatobtooutfile.InputThereisnoinputfile.Instead,youmusthandinyourfunctionina*.hfile.Theruleofnamingthe*.hfileisthesameasthatofnamingthe*.cor*.cppfiles.Output(representsaspace)

Foreachtestcase,youaresupposedtoprintn+1lines,andeachlineisinthefollowingformat:

fprintf(outfile,“%8.4f%12.8e\n”,x,y);§2Runge-KuttaMethodLab15.10§2Runge-KuttaMethodSampleJudgeProgram#include<stdio.h>#include<math.h>#include"98115001_15.h"

doublef0(doublex,doubley){return(yx*x+1.0);

}

voidmain(){

FILE*outfile=fopen("out.txt","w");intn;doublea,b,y0;

a=0.0;b=2.0;y0=0.50;n=10;RK4(f0,a,b,y0,n,outfile);fprintf(outfile,"\n");fclose(outfile);}SampleOutput(representsaspace)0.00005.00000000e0010.20008.29293333e0010.40001.21407621e+0000.60001.64892202e+0000.80002.12720268e+0001.00002.64082269e+0001.20003.17989417e+0001.40003.73234007e+0001.60004.28340950e+0001.80004.81508569e+0002.00005.30536300e+000§2Runge-KuttaMethodSampleJ11§3收敛性与稳定性/*ConvergencyandStability*/

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

(同时i)时有yi

y(xi

),则称该算法是收敛的。例:就初值问题考察欧拉显式格式的收敛性。解:该问题的精确解为欧拉公式为对任意固定的x=xi=ih,有§3收敛性与稳定性/*Convergencyand12§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!"§3ConvergencyandStability13§3ConvergencyandStability定义若某算法在计算过程中任一步产生的误差在以后的计算中都逐步衰减,则称该算法是绝对稳定的/*absolutelystable*/。一般分析时为简单起见,只考虑试验方程/*testequation*/常数,可以是复数当步长取为h时,将某算法应用于上式,并假设只在初值产生误差,则若此误差以后逐步衰减,就称该算法相对于绝对稳定,的全体构成绝对稳定区域。我们称算法A比算法B稳定,就是指A的绝对稳定区域比B的大。hlh=h§3ConvergencyandStability定14§3ConvergencyandStability例:考察显式欧拉法由此可见,要保证初始误差0以后逐步衰减,必须满足:0-1-2ReImg例:考察隐式欧拉法可见绝对稳定区域为:210ReImg注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。§3ConvergencyandStability例15§3ConvergencyandStability例:隐式龙格-库塔法而显式1~4阶方法的绝对稳定区域为其中2阶方法的绝对稳定区域为0ReImgk=1k=2k=3k=4-1-2-3---123ReImg无条件稳定HW:p.202#6§3ConvergencyandStability例16§4线性多步法/*MultistepMethod*/用若干节点处的y及y’值的线性组合来近似y(xi+1)。)...(...110111101kikiiikikiiiffffhyyyy--+---+++++++++=bbbbaaa其通式可写为:当10时,为隐式公式;1=0则为显式公式。

基于数值积分的构造法将在上积分,得到只要近似地算出右边的积分,则可通过近似y(xi+1)。而选用不同近似式Ik,可得到不同的计算公式。§4线性多步法/*MultistepMethod17§4MultistepMethod亚当姆斯显式公式/*Adamsexplicitformulae*/利用k+1个节点上的被积函数值构造k阶牛顿后插多项式,有Newton插值余项/*显式计算公式*/局部截断误差为:例:k=1时有§4MultistepMethod亚当姆斯显式公18§4MultistepMethod注:一般有,其中Bk与yi+1计算公式中fi,…,fik

各项的系数均可查表得到。10123kfifi1fi2fi3…Bk…………………Misprintonp.204常用的是k=3的4阶亚当姆斯显式公式§4MultistepMethod注:一般有19§4MultistepMethod亚当姆斯隐式公式/*Adamsimplicitformulae*/利用k+1个节点上的被积函数值fi+1

,fi,…,fik+1

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

,fi,…,fik+1的系数亦可查表得到。~~10123kfi+1fifi1fi2…Bk…………………~常用的是k=3的4阶亚当姆斯隐式公式小于Bk较同阶显式稳定§4MultistepMethod亚当姆斯隐式公20§4MultistepMethod亚当姆斯预测-校正系统/*Adamspredictor-correctorsystem*/Step1:用Runge-Kutta法计算前k

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

,则:Predictedvaluepi+1Modifiedvaluemi+1Correctedvalueci+1Modifiedfinalvalueyi+1外推技术/*extrapolation*/§4MultistepMethod亚当姆斯预测-21§4MultistepMethod

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

.Output:ap

温馨提示

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

评论

0/150

提交评论