将k2=hf(xn+hyn+k1)按照二元函数的泰勒展式在 (xnyn)点展开为 k2=h.f(, ym)+/f (r, n)+uhf( n, n)(r,, m)+O(hy 将其代入ynm1=ck+c2k2中整理得 m=y+h( +c,f(n,yn) +c4f(xn,yn)+f(xm,yn)f(xn,yn)+O(h 由于要求方法是二阶的,故令上式与()式中关于h同次幂的 系数相等,得 C+C,=1 21=12 四个未知数 个方程
将 按照二元函数的泰勒展式在 (xn ,yn )点展开为 2 1 1 1 ( , ) n n k h f x h y k = + + 3 2 1 1 ( , ) ( , ) ( , ) ( , ) ( ) n n x n n n n y n n k h f x y hf x y hf x y f x y O h = + + + 将其代入 y c k c k n+1 1 1 2 2 = + 中整理得 1 1 2 2 3 2 1 1 ( ) ( , ) ( , ) ( , ) ( , ) ( ) n n n n x n n n n y n n y y h c c f x y c h f x y f x y f x y O h + = + + + + + 由于要求方法是二阶的,故令上式与(*)式中关于h同次幂的 系数相等,得 1 2 2 1 2 1 1 1 2 1 2 c c c c + = = = 四个未知数 三个方程!
选取c2为自由参量,则有{41=12c2 =1/2 根据c2取值的不同,可得到不同的迭代公式,例如 n+1 +(k1+k2)2 取c2=12,得到改进的欧拉法:k=hf(xn,y) k2=h f(rn+h, yn+k) y,+k2 取c2=1,得到中点公式:{k=hf(xn) k,=hf(x, +h/, y,+, /2) (见课本P211P213)
选取c2为自由参量,则有 根据C2取值的不同,可得到不同的迭代公式,例如 1 2 1 2 1 2 1 1 2 1 2 c c c c = − = = 取c2=1/2, 得到改进的欧拉法: 1 1 2 1 2 1 ( ) / 2 ( , ) ( , ) n n n n n n y y k k k h f x y k h f x h y k + = + + = = + + 取c2=1, 得到中点公式: 1 2 1 2 1 ( , ) ( / 2, / 2) n n n n n n y y k k h f x y k h f x h y k + = + = = + + ……(见课本P211-P213)
同理可得,经典四阶龙格一库塔公式 n1=yn+(k1+2k2+2k3+k4)/6 k=hf(rn,yn) k2=hf(xn+h/2,y2+k1/2) k,=h f(m+h/2, y,+k2/2 hf(,+h,y+k) 例7.2用四阶经典龙格一库塔法解初值问题 y=x-y+ ,0≤x≤1,h=0.1 解:略。(参考课本P214)
同理可得,经典四阶龙格-库塔公式 1 1 2 3 4 1 2 1 3 2 4 3 ( 2 2 ) / 6 ( , ) ( / 2, / 2) ( / 2, / 2) ( , ) n n n n n n n n n n y y k k k k k h f x y k h f x h y k k h f x h y k k h f x h y k + = + + + + = = + + = + + = + + 例7.2 用四阶经典龙格-库塔法解初值问题 1 , 0 1, 0.1 (0) 1 y x y x h y =−+ = = 解: 略。(参考课本P214)
§5线性多步法 Linear Multi-step Method) 在常微分方程的数值解法中,如果求解yn+时只用到前 点yn的值,则称此数值方法为单步法,如前面所述各方法; 如果求解yn时要用到前面kk>1)个点yn+*×1yn+2,yn,则 称此方法为多步法或k步法 形如∑amm=b2B/m的计算公式称为线性多步法,通 常取ak=1.若B=0,则称上式为显式k步法;否则为隐式k步法。 51线性多步法的建立方法 利用数值积分的方法 基于泰勒展开式的待定系数法
§5 线性多步法(Linear Multi-step Method) 在常微分方程的数值解法中,如果求解yn+1时只用到前一 点yn的值,则称此数值方法为单步法,如前面所述各方法; 如果求解yn+k时要用到前面k(k>1)个点yn+k-1 ,yn+k-2 ,…,yn,则 称此方法为多步法或k步法。 5.1 线性多步法的建立方法 • 利用数值积分的方法 • 基于泰勒展开式的待定系数法 0 0 k k j n j j n j j j y h f + + = = 形如 = 的计算公式称为线性多步法,通 常取 k =1. 若 k = 0, 则称上式为显式k步法;否则为隐式k步法
511利用数值积分的方法 考虑方程y=f(x,y)在区间[xn=1,xn]上的积分 yt=」.f(x,y)x +」/(xy)dk 如果通过等距节点xn1,x2…,xk上的已知值f1,f=2…fn-k 作 Lagrange插值(例如k=2时),可得 f(x, y) (x-xn-2)(x-xn-3).(x-xn-k) f-i+ 2)( 1 (x-xn1)(x-xn2)…(x-xn-k+1) 1)( n-k k+1 代入(*)式可得
5.1.1利用数值积分的方法 1 1 ( , ) n n n n x x x x y dx f x y dx − − = 考虑方程 y f x y = ( , ) 在区间 [ , ] x x n n −1 上的积分 即 1 1 ( ) ( ) ( , ) (*) n n x n n x y x y x f x y dx − = + − 如果通过等距节点 上的已知值 作Lagrange插值(例如k=2时),可得 1 2 , , , n n n k x x x − − − 1 2 , , , n n n k f f f − − − 2 3 1 1 2 1 3 1 1 2 1 1 2 1 ( )( ) ( ) ( , ) ( )( ) ( ) ( )( ) ( ) ( )( ) ( ) n n n k n n n n n n n k n n n k n k n k n n k n n k n k x x x x x x f x y f x x x x x x x x x x x x f x x x x x x − − − − − − − − − − − − − + − − − − − − − + − − − = + − − − − − − + − − − 代入(*)式可得