




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 Eulers Method 欧拉公式的改进:欧拉公式的改进: 隐式欧拉法隐式欧拉法 /* implicit Euler method */向后差商近似导数向后差商近似导数hxyxyxy)()()(011 x0 x1)(,()(1101xyxfhyxy+ + )1,., 0(),(111 = =+ += =+ + + +niyxfhyyiiii由于未知数由于未知数 yi+1 同时出现在等式的两边,不能直接得到,同时出现在等式的两边,不能直接得到,故称为隐式故称为隐式 /* implicit */ 欧拉公式,而前者称为显式欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。欧拉公
2、式。一般先用显式计算一个初值,再迭代求解。一般先用显式计算一个初值,再迭代求解。 隐式欧拉法的局部截断误隐式欧拉法的局部截断误差:差:11)(+=iiiyxyR)()(322hOxyih+ + = =即隐式欧拉公式具有即隐式欧拉公式具有 1 阶精度。阶精度。 Hey! Isnt the leading term of the local truncation error of Eulers method ? Seems that we can make a good use of it )(22ihxy 1 Eulers Method 梯形公式梯形公式 /* trapezoid formula
3、 */ 显、隐式两种算法的平均显、隐式两种算法的平均)1,., 0(),(),(2111 = =+ + += =+ + + +niyxfyxfhyyiiiiii注:的确有局部截断误差注:的确有局部截断误差 , 即梯形公式具有即梯形公式具有2 阶精度,比欧拉方法有了进步。阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。迭代法,其迭代收敛性与欧拉公式相似。)()(311hOyxyRiii=+ 中点欧拉公式中点欧拉公式 /* midpoint formula */中心差商近似导数中心差商近似导数hxy
4、xyxy2)()()(021 x0 x2x1)(,(2)()(1102xyxfhxyxy+ + 1,., 1),(211 = =+ += = + +niyxfhyyiiii假设假设 ,则可以导出,则可以导出即中点公式具有即中点公式具有 2 阶精度。阶精度。)(),(11iiiixyyxyy= = = )()(311hOyxyRiii= = = =+ + +需要需要2个初值个初值 y0和和 y1来启动递推来启动递推过程,这样的算法称为双步法过程,这样的算法称为双步法 /* double-step method */,而前面的三种算法都是单步法,而前面的三种算法都是单步法 /* single-st
5、ep method */。方方 法法 1 Eulers Method显式欧拉显式欧拉隐式欧拉隐式欧拉梯形公式梯形公式中点公式中点公式简单简单精度低精度低稳定性最好稳定性最好精度低精度低, 计算量大计算量大精度提高精度提高计算量大计算量大精度提高精度提高, 显式显式多一个初值多一个初值, 可能影响精度可能影响精度 Cant you give me a formula with all the advantages yet without any of the disadvantages? Do you think it possible? Well, call me greedy OK, let
6、s make it possible. 改进欧拉法改进欧拉法 /* modified Eulers method */Step 1: 先用显式欧拉公式作预测,算出先用显式欧拉公式作预测,算出),(1iiiiyxfhyy+ += =+ +Step 2: 再将再将 代入隐式梯形公式的右边作校正,得到代入隐式梯形公式的右边作校正,得到1+ +iy),(),(2111+ + + + + += =iiiiiiyxfyxfhyy注:此法亦称为预测注:此法亦称为预测-校正法校正法 /* predictor-corrector method */。可以证明该算法具有。可以证明该算法具有 2 阶精度,同时可以看
7、到它是阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。面将看到,它的稳定性高于显式欧拉法。 )1,., 0(),(,),(211 = =+ + + += =+ + +niyxfhyxfyxfhyyiiiiiiii1 Eulers Method2 龙格龙格 - 库塔法库塔法 /* Runge-Kutta Method */建立高精度的单步递推格式。建立高精度的单步递推格式。单步递推法的基本思想是从单步递推法的基本思想是从 ( xi , yi ) 点出发,以某一点出发,以某一斜率沿直线达到斜
8、率沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变点。欧拉法及其各种变形所能达到的最高精度为形所能达到的最高精度为2阶。阶。 考察改进的欧拉法,可以将其改写为:考察改进的欧拉法,可以将其改写为:),(),(2121121211hKyhxfKyxfKKKhyyiiiiii+ + += = = + + += =+ +斜率斜率一定取一定取K1 K2 的平均值吗?的平均值吗?步长一定是一个步长一定是一个h 吗?吗?2 Runge-Kutta Method首先希望能确定系数首先希望能确定系数 1、2、p,使得到的算法格式有,使得到的算法格式有2阶精度,即在阶精度,即在 的前提假设下,使得
9、的前提假设下,使得 )(iixyy = =)()(311hOyxyRiii= = = =+ + +Step 1: 将将 K2 在在 ( xi , yi ) 点作点作 Taylor 展开展开)(),(),(),(),(2112hOyxfphKyxphfyxfphKyphxfKiiyiixiiii+ + + += =+ + += =)()()(2hOxyphxyii+ + + + = =将改进欧拉法推广为:将改进欧拉法推广为:),(),(12122111phKyphxfKyxfKKKhyyiiiiii+ + += = =+ + += =+ +l ll l),(),(),(),(),(),()(yx
10、fyxfyxfdxdyyxfyxfyxfdxdxyyxyx+ += =+ += = = Step 2: 将将 K2 代入第代入第1式,得到式,得到 )()()()()()()()(322212211hOxyphxyhyhOxyphxyxyhyyiiiiiiii+ + + + + + += =+ + + + + + + += =+ +l ll ll ll ll l2 Runge-Kutta MethodStep 3: 将将 yi+1 与与 y( xi+1 ) 在在 xi 点的泰勒展开作比较点的泰勒展开作比较)()()()(322211hOxyphxyhyyiiii+ + + + + + += =
11、+ +l ll ll l)()(2)()()(321hOxyhxyhxyxyiiii+ + + + + += =+ +要求要求 ,则必须有:,则必须有:)()(311hOyxyRiii=+21,1221= = =+ +pl ll ll l这里有这里有 个未知个未知数,数, 个方程。个方程。32存在无穷多个解。所有满足上式的格式统称为存在无穷多个解。所有满足上式的格式统称为2阶龙格阶龙格 - 库库塔格式。塔格式。21, 121= = = =l ll lp注意到,注意到, 就是改进的欧拉法。就是改进的欧拉法。 Q: 为获得更高的精度,应该如何进一步推广?为获得更高的精度,应该如何进一步推广?其中其
12、中i ( i = 1, , m ),i ( i = 2, , m ) 和和 ij ( i = 2, , m; j = 1, , i1 ) 均为待定系均为待定系数,确定这些系数的步数,确定这些系数的步骤与前面相似。骤与前面相似。 2 Runge-Kutta Method).,(.),(),(),(.1122112321313312122122111 + + + + + + += =+ + + += =+ + += = =+ + + + += =mm mmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyyb bb bb ba ab bb ba a
13、b ba al ll ll l 最常用为四级最常用为四级4阶经典龙格阶经典龙格-库塔法库塔法 /* Classical Runge-Kutta Method */ :),(),(),(),()22(34222312221432161hKyhxfKKyxfKKyxfKyxfKKKKKyyiihihihihiiihii+ + += =+ + += =+ + += = =+ + + + += =+ +2 Runge-Kutta Method注:注: 龙格龙格-库塔法的主要运算在于计算库塔法的主要运算在于计算 Ki 的值,即计算的值,即计算 f 的的值。值。Butcher 于于1965年给出了计算量与
14、可达到的最高精年给出了计算量与可达到的最高精度阶数的关系:度阶数的关系:753可达到的最高精度可达到的最高精度642每步须算每步须算Ki 的个数的个数)(2hO)(3hO)(4hO)(5hO)(6hO)(4hO)(2nhO8n 由于龙格由于龙格-库塔法的导出基于泰勒展开,库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。对故精度主要受解函数的光滑性影响。对于光滑性不太好的解,最好采用低阶算于光滑性不太好的解,最好采用低阶算法而将步长法而将步长h 取小。取小。HW: p.202 #1, 22 Runge-Kutta MethodLab 15. Runge-Kutta (Order Fou
15、r) Use Runge-Kutta method of order four to approximate the solution of the initial-value problem, , and (1)You are supposed to write a functionvoid RK4 ( double (*f)( ), double a, double b, double y0, int n, FILE *outfile)to approximate the solution of Problem (1) with y= f, x in a, b, and the initi
16、al value of y being y0. Output the approximating values of y on the n+1 equally spaced grid points from a to b to outfile.InputThere is no input file. Instead, you must hand in your function in a *.h file. The rule of naming the *.h file is the same as that of naming the *.c or *.cpp files.Output (
17、represents a space) For each test case, you are supposed to print n+1 lines, and each line is in the following format: fprintf( outfile, “%8.4f%12.8en”, x, y );),(yxfy = = ,bax 0)(yay= =2 Runge-Kutta MethodSample Judge ProgramSample Judge Program#include #include #include #include #include 98115001_
18、15.h#include 98115001_15.hdouble f0(double x, double y)double f0(double x, double y) return (y return (yx x* *x+1.0); x+1.0); void main( )void main( ) FILE FILE * *outfile = fopen(out.txt, w);outfile = fopen(out.txt, w);int n;int n;double a, b, y0;double a, b, y0;a = 0.0; b = 2.0; y0 = 0.50; n = 10;
19、a = 0.0; b = 2.0; y0 = 0.50; n = 10;RK4(f0, a, b, y0, n, outfile);RK4(f0, a, b, y0, n, outfile);fprintf(outfile, n);fprintf(outfile, n);fclose(outfile);fclose(outfile); Sample Output Sample Output ( ( represents a space) represents a space) 0.00000.00005.00000000e5.00000000e0010010.20000.20008.29293
20、333e8.29293333e0010010.40000.40001.21407621e+0001.21407621e+0000.60000.60001.64892202e+0001.64892202e+0000.80000.80002.12720268e+0002.12720268e+0001.00001.00002.64082269e+0002.64082269e+0001.20001.20003.17989417e+0003.17989417e+0001.40001.40003.73234007e+0003.73234007e+0001.60001.60004.28340950e+000
21、4.28340950e+0001.80001.80004.81508569e+0004.81508569e+0002.00002.00005.30536300e+0005.30536300e+0003 收敛性与稳定性收敛性与稳定性 /* Convergency and Stability */ 收敛性收敛性 /* Convergency */定义定义 若某算法对于任意固定的若某算法对于任意固定的 x = xi = x0 + i h,当,当 h0 ( 同时同时 i ) 时有时有 yi y( xi ),则称该算法是收敛的。,则称该算法是收敛的。 例:就初值问题例:就初值问题 考察欧拉显式格式的收敛
22、性。考察欧拉显式格式的收敛性。 = = = 0)0(yyyyl l解:该问题的精确解为解:该问题的精确解为 xeyxyl l0)(= =欧拉公式为欧拉公式为iiiiyhyhyy)1 (1l ll l+ += =+ += =+ +0)1 (yhyiil l+ += =对任意固定的对任意固定的 x = xi = i h ,有,有iixhhxihyhyyl ll ll ll l)1()1(/10/0+ += =+ += =ehhh=+l ll l/10)1(lim)(0ixxyeyi= =l l 3 Convergency and Stability 稳定性稳定性 /* Stability */例:
23、考察初值问题例:考察初值问题 在区间在区间0, 0.5上的解。上的解。分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。 = = = = 1)0()(30)(yxyxy0.00.10.20.30.40.5精确解精确解改进欧拉法改进欧拉法 欧拉隐式欧拉显式欧拉显式 节点 xixey30= 1.00002.0000 4.00008.0000 1.6000101 3.2000101 1.00002.5000101 6.25001021.56251023.90631039.76561041.00002.50006.25001.56261013.9063
24、1019.76561011.00004.97871022.47881031.23411046.14421063.0590107What is wrong ?! An Engineer complains: Math theorems are so unstable that a small perturbation on the conditions will cause a crash on the conclusions!3 Convergency and Stability定义定义若某算法在计算过程中任一步产生的误差在以后的计若某算法在计算过程中任一步产生的误差在以后的计算中都逐步衰减,
25、则称该算法是绝对稳定的算中都逐步衰减,则称该算法是绝对稳定的 /*absolutely stable */。一般分析时为简单起见,只考虑试验方程一般分析时为简单起见,只考虑试验方程 /* test equation */yyl l= = 常数,可以常数,可以是复数是复数当步长取为当步长取为 h 时,将某算法应用于上式,并假设只在初值时,将某算法应用于上式,并假设只在初值产生误差产生误差 ,则若此误差以后逐步衰减,就称该,则若此误差以后逐步衰减,就称该算法相对于算法相对于 绝对稳定,绝对稳定, 的全体构成绝对稳定区域。的全体构成绝对稳定区域。我们称算法我们称算法A 比算法比算法B 稳定,就是指稳
26、定,就是指 A 的绝对稳定区域比的绝对稳定区域比 B 的大。的大。000yy = = hl hl h= =h3 Convergency and Stability例:考察显式欧拉法例:考察显式欧拉法011)1(yhyhyyiiii+ + + += =+ += =l l000yy = = 011)1(yhyii+ + + += =01111)1( + + + + + += = = =iiiihyy由此可见,要保证初始误差由此可见,要保证初始误差0 以后逐步衰减,以后逐步衰减,必须满足:必须满足:hhl l= =1|1| + + h0-1-2ReImg例:考察隐式欧拉法例:考察隐式欧拉法11+ +
27、 + += =iiiyhyyl liiyhy = =+ +11101111 + + + = =iih可见绝对稳定区域为:可见绝对稳定区域为:1|1| h210ReImg注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。法的好。3 Convergency and Stability例:隐式龙格例:隐式龙格-库塔法库塔法 = =+ + + + += =+ + + += =+ +),., 1().,(.11111mjhKhKyhxfKKKhyymmjjijijmmiib bb ba al ll l而显式而显式 1 4 阶方法的绝对稳定阶方法的绝对
28、稳定区域为区域为 + + += =+ += =+ +)2,2(1111KhyhxfKhKyyiiii其中其中2阶方法阶方法 的绝对稳定区域为的绝对稳定区域为0ReImgk=1k=2k=3k=4-1-2-3-123ReImg无条件稳定无条件稳定HW: p.202 #64 线性多步法线性多步法 /* Multistep Method */用若干节点处的用若干节点处的 y 及及 y 值的线性组合来近似值的线性组合来近似y(xi+1)。).(.110111101kikiiikikiiiffffhyyyy + + + + + + + + + + + += =b bb bb bb ba aa aa a其通
29、式可写为:其通式可写为:),(jjjyxff = =当当 10 时,为隐时,为隐式公式式公式; 1=0 则为则为显式公式。显式公式。 基于数值积分的构造法基于数值积分的构造法将将 在在 上积分,得到上积分,得到),(yxfy =,1+iixx + += = + +1)(,()()(1iixxiidxxyxfxyxy只要近似地算出右边的积分只要近似地算出右边的积分 ,则可通,则可通过过 近似近似y(xi+1) 。而选用不同近似式。而选用不同近似式 Ik,可得到,可得到不同的计算公式。不同的计算公式。 + + 1)(,(iixxkdxxyxfIkiiIyy+ += =+ +14 Multistep
30、 Method 亚当姆斯显式公式亚当姆斯显式公式 /* Adams explicit formulae */利用利用k+1 个节点上的被积函数值个节点上的被积函数值 构造构造 k 阶牛顿阶牛顿后插多项式后插多项式 , 有有kiiifff ,.,11, 0, )( + +thtxNik + + + += =+ +1010)()()(,(1dthhtxRdthhtxNdxxyxfikxxikiiNewton插值余项插值余项dthtxNhyyikii)(101+ + += = + +/* 显式计算公式显式计算公式 */局部截断误差为:局部截断误差为: + += = = =+ + +1011)()(d
31、thtxRhyxyRikiii例:例:k=1 时有时有)()(11 + += = + += =+ +iiiiiifftfftfhtxN + + + += = + + += =10111)3(2)(iiiiiiiiffhydtfftfhyydththtdxyfdhRxxi)1(!21)(,(1022+ += = )(1253iyh = =4 Multistep Method注:一般有注:一般有 ,其中,其中Bk 与与yi+1 计算公式计算公式中中 fi , , fik 各项的系数均可查表得到各项的系数均可查表得到 。 )()2(2ikkkiyhBR + + += =10123k212312232
32、4552112162459125243724912583720251fifi1fi2fi3BkMisprint on p.204常用的是常用的是 k = 3 的的4阶亚当姆斯显式公式阶亚当姆斯显式公式)9375955(243211 + + + + + += =iiiiiiffffhyy4 Multistep Method 亚当姆斯隐式公式亚当姆斯隐式公式 /* Adams implicit formulae */利用利用k+1 个节点上的被积函数值个节点上的被积函数值 fi+1 , fi , , fik+1 构造构造 k 阶牛顿前插多项式。与显式多项式完全类似地可得到一阶牛顿前插多项式。与显式
33、多项式完全类似地可得到一系列隐式公式,并有系列隐式公式,并有 ,其中,其中 与与 fi+1 , fi , , fik+1 的系数亦可查表得到。的系数亦可查表得到。)()2(2ikkkiyhBRh h+ + += =kB10123k21 21125249211282419121 245 241121 241 72019 fi+1fifi1fi2Bk常用的是常用的是 k = 3 的的4阶亚当姆斯隐式公式阶亚当姆斯隐式公式)5199(242111 + + + + + + += =iiiiiiffffhyy小于小于Bk较同阶显较同阶显式稳定式稳定4 Multistep Method 亚当姆斯预测亚当姆
34、斯预测-校正系统校正系统 /* Adams predictor-corrector system */Step 1: 用用Runge-Kutta 法计算前法计算前 k 个初值;个初值;Step 2: 用用Adams 显式计算预测值;显式计算预测值;Step 3: 用同阶用同阶Adams 隐式计算校正值。隐式计算校正值。注意:三步所用公注意:三步所用公式的精度必须相同。式的精度必须相同。通常用经典通常用经典Runge-Kutta 法配合法配合4阶阶Adams 公式。公式。 Hey! Look at the local truncation error of the explicit and implicit Adams methods: and Dont you think theres something you can do?)(720251)5(5iyh )(72019)5(5iyhh h 4阶阶Adams隐式公式的截断误差为隐式公式的截断误差为)(72019)()5(511iiiyhyxyh h = = + + +4阶阶Adams显式公式的截断误差为显式公式的截断误差为)(720251)()5(511iiiyhyxy = = + + +当当 h 充分小时,可近似认为充分小时,可近似认为i i ,那,那么:么:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提高混合动力技术在铁路运输
- 科研项目中的资源共享
- 心衰患者高血压护理查房
- 不续约合同范例
- 买地合同范例
- 农村拍卖荒山合同标准文本
- 护理专项质控年度总结
- 幼儿园防踩踏安全教育
- 护理安全警示案例及分析
- 会展策划公司合同标准文本
- 双休日超车好时机!课件-2024-2025学年高中下学期学习哲思主题班会
- 唐山市化工行业安全检查手册(2025版)
- 2025届河南省豫西北教研联盟(洛平许济)高三下学期3月二模生物学试卷(含答案)
- 中考科创班试题及答案
- 2025年江苏省职业院校技能大赛中职组(网络建设与运维)考试题库(含答案)
- 学校师德师风建设经验分享-校长汇报:从“尊重被看见”出发打造“四有好老师”团队
- TY/T 1111-2024路跑赛事活动指南
- 办公室文员招聘启事范文模板
- 2024初级会计职称考试题库(附参考答案)
- 基建工程安全管理
- 学风建设主题班会(大学班会)
评论
0/150
提交评论