将k2=hf(x+h,yn+)按照二元函数的泰勒展式在 (xnyn)点展开为 k2=h[(x,1)+(x,)+(xn,(xn)+O() 将其代入yn=ck+c2k中整理得 ym=yn+h(c+c)f(rn,yn) +c[2(x,)+1(xny)(x,)+0h2 由于要求方法是二阶的,故令上式与()式中关于h同次幂的 系数相等,得 +Cn=1 C241=1/2 四个未知数 个方程!
将 按照二元函数的泰勒展式在 (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为自由参量,则有=1/2c2 4=12c 根据C2取值的不同,可得到不同的迭代公式,例如 yuuI=y,+(k+k,)/2 取c2=1/2,得到改进的欧拉法:{k=hf(x,y) k2=h·f(xn+h,yn+k) Vn+=yn t 取c2=1,得到中点公式:{k=h,f(x) k2=h f(r,+h/2, yn+k/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)
同理可得,经典四阶龙格一库塔公式 yn+1=yn+(k+ 2 2+2 k, +k4)/6 k=h·f(xn,yn) k2=h·f(xn2+h/2,yn+k1/2) k=h f(r,+h/2, yn,+k2/2) k4=h·f(xn+h,yn+k3) 例72用四阶经典龙格一库塔法解初值问题 y=x-y+ 0<x<1.h=0.1 y(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 mu| ti-step Method) 在常微分方程的数值解法中,如果求解yn+,时只用到前 点yn的值,则称此数值方法为单步法,如前面所述各方法; 如果求解yn+时要用到前面k(k>)个点yn+1,yn+2,,yn,则 称此方法为多步法或k步法。 形如∑m=B∑Bm的计算公式称为线性多步法,通 常取a=1.若B4=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)在区间[x1,xn]上的积分 ydx=f(, y)dx 即 y(rn)=y(xm-)+[f(x,y)dx 如果通过等距节点xn12x12…,xk上的已知值fn1,fn2…,fnk 作 Lagrange插值(例如k=2时),可得 f(r,y)= (x-xn-2)(x-x-3)…(x-x2) n. x-xn=1)(x-xn=2)…(x-xn-k+1) k -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 − − − − − − − − − − − − − + − − − − − − − + − − − = + − − − − − − + − − − 代入(*)式可得