Computational Physics二,多步法和隐式法=(x,)作一步精确积分对方程多步法dxXntf(x, y(x))dx(1)Yn+I = yn +XnX-XX-Xop(x)=y+yLagrangeo-XX-Xo线性插值:X-XnX-XnX-X-X-Xn-1+yn=-yn-I+yn=yn-lhhX-Xn-I-X大我们用x和xn-1点上的y值来提供f在所需区间[xn,Xn+1]上的一个线性外插值x-XnX-Xn-l(2)fn-- +O(h2)hh其中 f,=f(xn,yn)将(2)带入(1)式,并对x积分可得:(f,-=fn-1)+0(h3)Yn+I = yn + h(推导时注意:Xn+1-Xn=Xn-Xn-1=hAdams-Bashforth二步法ChenweiJiang,Xi'anJiaotongUniversity,2019
Chenwei Jiang, Xi’an Jiaotong University, 2019 Computational Physics 二. 多步法和隐式法 ( , ) n n n f = f x y ) ( ) 2 1 2 3 ( 3 1 1 y y h f f O h n + = n + n - n - + 我们用 xn 和 xn-1 点上的 y 值来提供 f 在所需区间[xn , xn+1 ]上 的一个线性外插值 其中 —— Adams-Bashforth二步法 1 1 ( , ( ))d n n x n n x y y f xyx x + + = + ò (1) 将(2)带入(1)式,并对x积分可得: ( ) 2 1 1 f O h h x x f h x x f n n n n + - - - = - - (2) 推导时注意:xn+1-xn=xn-xn-1=h 对方程 作一步精确积分 多步法 ( , ) d d f x y x y = 1 0 10 1 01 10 1 1 1 1 1 1 ( ) n n nn n n nn n n nn x x x x xy y xx xx xx xx xx xx y y yy x x xx h h j - - - - - - - - = + - - - - - = += - + - - Lagrange 线性插值:
Computational Physics若以fnJn-1,fn-2,n-3的拟合多项式来外插(四次Lagrange插值),得Adams-Bashforth四步法hYn+1 = y, +-(55 f, - 59 fn-I +37fn-2 - 9 fn-3)+0(h5)24单单关于的值无法启动上述多步法,该方法的启动需要通过其他方法(如Euler法,泰勒级数法等)获得多个f值例题4.考虑下述微分方程和初始条件dy / dx = -xy; y(0)=1用Adams-Bashforth二步法求解y(2)的值,采用不用的步长h,并与精确值比较,计算误差大小。用Euler法或泰勒级数法产生启动递推关系所需要的值见Matlab程序chapter2 example 4 Adams Bashforth.mChenweiJiang,Xi'anJiaotongUniversity,2019
Chenwei Jiang, Xi’an Jiaotong University, 2019 Computational Physics 若以 fn , fn-1 , fn-2 , fn-3 的拟合多项式来外插(四次Lagrange插 值), 得Adams-Bashforth四步法 (55 59 37 9 ) ( ) 24 5 1 1 2 3 f f f f O h h y y n + = n + n - n - + n - - n - + 单单关于y0的值无法启动上述多步法,该方法的启动需要通过 其他方法(如Euler法,泰勒级数法等)获得多个f 值。 见Matlab程序 chapter2_example_4_Adams_Bashforth.m 用Adams-Bashforth二步法求解y(2)的值,采用不用的步长 h,并与精确值比较,计算误差大小。用Euler法或泰勒级 数法产生启动递推关系所需要的y值。 dy dx xy y / ; (0) 1 = - = 例题4. 考虑下述微分方程和初始条件
Computational Physics隐式法在区间[x,X+1]上过f,,fn+1两点对f做线性插值,得x-xX-X+ f. + O(h2)Hn+hnhCXn+l带入积分公式f(x, y)dxYn+1 = Yn +nnh得 yn+1 = yn +=[f(xn,yn)+ f(xn+1,yn+1)]+O(h3)2上式中等号两边都有y+项,因此称为隐式法下面来推导一个典型的隐式法:Adams-Moulton二步法dy+对方程f(x,y)dx=f(x,J)作一步精确积分Yn+1 = Yn +dxChenweiJiang,Xi'anJiaotongUniversity,2019
Chenwei Jiang, Xi’an Jiaotong University, 2019 Computational Physics 在区间 [xn , xn+1] 上过 fn, fn+1 两点对 f 做线性插值,得 带入积分公式 得 下面来推导一个典型的隐式法:Adams-Moulton二步法 隐式法 对方程 ( , ) d d f x y x y = 作一步精确积分 1 1 ( , )d n n x n n x y y f xy x + + = + ò 1 2 1 ( ) n n n n xx xx f f f Oh h h + + - - = - + 1 1 (, ) n n x n n x y y f x y dx + + = + ò 3 1 11 [ ( , ) ( , )] ( ) 2 n n nn n n h y y f x y f x y Oh + ++ =+ + + 上式中等号两边都有yn+1项,因此称为隐式法
Computational PhysicsLagrangez(x) = yolo(x) + yili(x)+ yzl,(x)二次插值:(x-x)(x-x,)l(x) =(xo - x)(xo - x2)(x - x)(x - x2)(x-xo)(x -xi)l(x) =l (x) =(x - xo)(x) -x2)(xz -xo)(x - x))我们用f-1,f,和f+1三点上作二次多项式插值(x - x,)(x-x)(x - xn+1)(x-x)1Tn+lh?2h2(x-xn+)(x-xn-+ +O(h3)2h?代入积分公式,从xn→xn+1上对f作积分,得h"(5 fn++ +8f, - J.-1)+O(h*)VVn+I = YnT12Adams-Moulton二步法ChenweiJiang,Xi'anJiaotongUniversity,2019
Chenwei Jiang, Xi’an Jiaotong University, 2019 Computational Physics 我们用 fn-1, fn 和 fn+1 三点上作二次多项式插值 1 11 2 2 1 1 3 2 1 ( )( ) ( )( ) 2 ( )( ) ( ) 2 nn n n n n n n n xx xx xx xx ff f h h xx xx f Oh h - + - + + - - - - = - - - + + Lagrange 二次插值: ( ) ( ) ( ) ( ) 2 0 0 1 1 2 2 j x = y l x + y l x + y l x ( )( ) ( )( ) ( ) 0 1 0 2 1 2 0 x x x x x x x x l x - - - - = ( )( ) ( )( ) ( ) 1 0 1 2 0 2 1 x x x x x x x x l x - - - - = ( )( ) ( )( ) ( ) 2 0 2 1 0 1 2 x x x x x x x x l x - - - - = (5 8 ) ( ) 12 4 1 1 1 f f f O h h y y n + = n + n + + n - n - + —— Adams-Moulton二步法 代入积分公式,从 xn → xn+1 上对 f 作积分, 得
ComputationalPhysics同样方法用三次多项式插值,可得三步法公式h(9 fn+1 +19 f, -5 fn-1 + fn-2)+ 0(hs)Yn+i = Yn +24一Adams-Moulton三步法Adams-Moulton二步法与三步法都既是多步法又是隐式法多步法:最初几个格点的启动值需要通过其它的方法如欧拉法、泰勒级数法来获得隐式法:不能直接使用,它通常用在预报校正算法中先通过显式法“预报”一个yn+的值,然后利用隐式法来校正得到一个更精确的值。这样的算法有个优点,它可以持续监控积分的精度。ChenweiJiang,Xi'anJiaotongUniversity,2019
Chenwei Jiang, Xi’an Jiaotong University, 2019 Computational Physics 先通过显式法“预报”一个 yn+1的值,然后利用隐式法来校正 得到一个更精确的值。这样的算法有个优点,它可以持续监控 积分的精度。 隐式法: 不能直接使用,它通常用在预报校正算法中 多步法:最初几个格点的启动值需要通过其它的方法如欧拉 法、泰勒级数法来获得 (9 19 5 ) ( ) 24 5 1 1 1 2 f f f f O h h y y n + = n + n + + n - n - + n - + 同样方法用三次多项式插值,可得三步法公式 —— Adams-Moulton三步法 Adams-Moulton二步法与三步法都既是多步法又是隐式法