欧拉公式的改进ppt课件.ppt
1 Eulers Method, 欧拉公式的改进:, 隐式欧拉法 /* implicit Euler method */,由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。,一般先用显式计算一个初值,再迭代求解。, 隐式欧拉法的局部截断误差:,即隐式欧拉公式具有 1 阶精度。,Hey! Isnt the leading term of the local truncation error of Eulers method ? Seems that we can make a good use of it ,1 Eulers Method, 梯形公式 /* trapezoid formula */, 显、隐式两种算法的平均,注:的确有局部截断误差 , 即梯形公式具有2 阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。, 中点欧拉公式 /* midpoint formula */,假设 ,则可以导出即中点公式具有 2 阶精度。,需要2个初值 y0和 y1来启动递推过程,这样的算法称为双步法 /* double-step method */,而前面的三种算法都是单步法 /* single-step 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, lets make it possible., 改进欧拉法 /* modified Eulers method */,注:此法亦称为预测-校正法 /* predictor-corrector method */。可以证明该算法具有 2 阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。,1 Eulers Method,2 龙格 - 库塔法 /* Runge-Kutta Method */,建立高精度的单步递推格式。,单步递推法的基本思想是从 ( xi , yi ) 点出发,以某一斜率沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变形所能达到的最高精度为2阶。,斜率一定取K1 K2 的平均值吗?,步长一定是一个h 吗?,2 Runge-Kutta Method,首先希望能确定系数 1、2、p,使得到的算法格式有2阶精度,即在 的前提假设下,使得,Step 1: 将 K2 在 ( xi , yi ) 点作 Taylor 展开,Step 2: 将 K2 代入第1式,得到,2 Runge-Kutta Method,Step 3: 将 yi+1 与 y( xi+1 ) 在 xi 点的泰勒展开作比较,要求 ,则必须有:,这里有 个未知数, 个方程。,3,2,存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库塔格式。,注意到, 就是改进的欧拉法。,Q: 为获得更高的精度,应该如何进一步推广?,其中i ( i = 1, , m ),i ( i = 2, , m ) 和 ij ( i = 2, , m; j = 1, , i1 ) 均为待定系数,确定这些系数的步骤与前面相似。,2 Runge-Kutta Method, 最常用为四级4阶经典龙格-库塔法 /* Classical Runge-Kutta Method */ :,2 Runge-Kutta Method, 由于龙格-库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。对于光滑性不太好的解,最好采用低阶算法而将步长h 取小。,HW: p.202 #1, 2,2 Runge-Kutta Method,2 Runge-Kutta Method,3 收敛性与稳定性 /* Convergency and Stability */, 收敛性 /* Convergency */,例:就初值问题 考察欧拉显式格式的收敛性。,解:该问题的精确解为,欧拉公式为,对任意固定的 x = xi = i h ,有,3 Convergency and Stability, 稳定性 /* Stability */,例:考察初值问题 在区间0, 0.5上的解。分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。,1.00002.0000 4.00008.0000 1.6000101 3.2000101,1.00002.5000101 6.25001021.56251023.90631039.7656104,1.00002.50006.25001.56261013.90631019.7656101,1.00004.97871022.47881031.23411046.14421063.0590107,What is wrong ?!,3 Convergency and Stability,一般分析时为简单起见,只考虑试验方程 /* test equation */,常数,可以是复数,3 Convergency and Stability,例:考察隐式欧拉法,可见绝对稳定区域为:,注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。,3 Convergency and Stability,例:隐式龙格-库塔法,而显式 1 4 阶方法的绝对稳定区域为,其中2阶方法 的绝对稳定区域为,无条件稳定,HW: p.202 #6,4 线性多步法 /* Multistep Method */,用若干节点处的 y 及 y 值的线性组合来近似y(xi+1)。,其通式可写为:,当 10 时,为隐式公式; 1=0 则为显式公式。, 基于数值积分的构造法,4 Multistep Method, 亚当姆斯显式公式 /* Adams explicit formulae */,Newton插值余项,/* 显式计算公式 */,局部截断误差为:,例:k=1 时有,4 Multistep Method,注:一般有 ,其中Bk 与yi+1 计算公式中 fi , , fik 各项的系数均可查表得到 。,Misprint on p.204,4 Multistep Method, 亚当姆斯隐式公式 /* Adams implicit formulae */,小于Bk,较同阶显式稳定,4 Multistep Method, 亚当姆斯预测-校正系统 /* Adams predictor-corrector system */,Step 1: 用Runge-Kutta 法计算前 k 个初值;,Step 2: 用Adams 显式计算预测值;,Step 3: 用同阶Adams 隐式计算校正值。,注意:三步所用公式的精度必须相同。通常用经典Runge-Kutta 法配合4阶Adams 公式。,4阶Adams隐式公式的截断误差为,Predicted value pi+1,Modified value mi+1,Corrected value ci+1,Modified final value yi+1,外推技术 /* extrapolation */,4 Multistep Method,Adams 4th-Order predictor-corrector AlgorithmTo approximate the the solution of the initial-value problemAt (N+1) equally spaced numbers in the interval a, b.Input: endpoints a, b; integer N; initial value y0 .Output: approximation y at the (N+1) values of x.Step 1 Set h = (b a) / N ; x0 = a; y0 = y0; Output ( x0, y0 );Step 2 For i = 1, 2, 3 Compute yi using classical Runge-Kutta method; Output ( xi , yi );Step 3 For i = 4, , N do steps 4-10Step 5 ; /* predict */ Step 6 ; /* modify */Step 7 ; /* correct */Step 8 ; /* modify the final value */Step 9 Output ( xi+1 , yi+1 ); Step 10 For j = 0, 1, 2, 3 Set xi = xi+1 ; yi = yi+1 ; /* Prepare for next iteration */Step 11 STOP.,应为( ci+1 pi+1 ), 但因ci+1 尚未算出,只好用( ci pi )取代之。,