§ 4 线性多步法 /* Multistep Method */
用 若干 节点处的 y 及 y’ 值的 线性组合 来近似
y(xi+1)。
),.,(,.,1 1 0 1 1 1 1 0 1 k i k i i i k i k i i i f f f f h y y y y - - + - - - + + + + + + + + + = b b b b a a a
其通式可写为,),( jjj yxff =
当 b-1?0 时,为 隐式公
式 ; b-1=0 则为 显式公式 。
? 基于数值积分的构造法
将 在 上积分,得到 ),( yxfy =? ],[
1+ii xx
? +=-+ 1 ))(,()()( 1 iixxii dxxyxfxyxy
只要 近似地算出右边的积分,则可通
过 近似 y(xi+1) 。而 选用不同近似式 Ik,可得到不
同的计算公式 。
? +? 1 ))(,(iixxk dxxyxfI
kii Iyy +=+ 1
§ 4 Multistep Method
? 亚当姆斯显式公式 /* Adams explicit formulae */
利用 k+1 个节点上的被积函数值 构造 k 阶牛顿
后插 多项式,有
kiii fff --,...,,1
]1,0[,)( ?+ thtxN ik
?? ? +++=+ 1010 )()())(,(1 dthhtxRdthhtxNdxxyxf ikxx ikii
Newton
插值余项
dthtxNhyy ikii )(101 ++= ?+ /* 显式计算公式 */
局部截断误差为,?
+=-= ++ 1011 )()( dthtxRhyxyR ikiii
例,k=1 时有 )()(
11 --+=?+=+ iiiiii fftfftfhtxN
? --+ -+=-++= 10 111 )3(2)]([ iiiiiiii ffhydtfftfhyy
dththtdx yfdhR xxi )1(!21))(,(10 2
2
+= ? ?? )(125 3 iyh ????=
§ 4 Multistep Method
注,一般有,其中 Bk 与 yi+1 计算公式
中 fi,…,fi-k 各项的 系数 均可查表得到 。
)()2(2 ikkki yhBR ?++=
1 0
1
2
3
k
21
23
1223
2455
21-
1216-
2459-
125
2437 249-
125
83
720251
fi fi-1 fi-2 fi-3 … Bk







Misprint
on p.204
常用的是 k = 3 的 4阶亚当姆斯显式公式
)9375955(24 3211 ---+ -+-+= iiiiii ffffhyy
§ 4 Multistep Method
? 亚当姆斯隐式公式 /* Adams implicit formulae */
利用 k+1 个节点上的被积函数值 fi+1,fi,…,fi-k+1 构造 k 阶
牛顿 前插 多项式。与显式多项式完全类似地可得到一系列
隐式公式,并有,其中 与 fi+1,fi,…,
fi-k+1 的系数亦可查表得到。 )(
)2(2 ikkki yhBR ?++=
~
kB
~
1 0
1
2
3
k
21-
21
125
249
21
128
2419
121-
245- 241
121-
241-
72019-
fi+1 fi fi-1 fi-2 … Bk







~
常用的是 k = 3 的 4阶亚当姆斯隐式公式
)5199(24 2111 --++ +-++= iiiiii ffffhyy
小于 Bk
较同阶显
式 稳定
§ 4 Multistep Method
? 亚当姆斯预测 -校正系统
/* 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
Don’t you think there’s something you can do?
)(720251 )5(5 iyh ? )(72019 )5(5 iyh ?-4阶 Adams隐式公式的截断误差为 )(72019)( )5(511 iii yhyxy ?-=- ++
4阶 Adams显式公式的截断误差为 )(
720
251)( )5(5
11 iii yhyxy ?=- ++
当 h 充分小 时,可近似认为 ?i ? ?i,则,
19
2 5 1
)(
)(
11
11 -?--
++
++
ii
ii yxy yxy
)(270251)( 1111 ++++ -+? iiii yyyxy
)(27019)( 1111 ++++ --? iiii yyyxy
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 Algorithm
To approximate the the solution of the initial-value problem
At (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-10
Step 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,
0)(,),,(' yaybxayxfy =??=
24/)9375955( 3211 ---+ -+-+= iiiiii ffffhyp
270/)(25111 iiii pcpm -+= ++
24/)519),(9( 21111 --+++ +-++= iiiiiii fffmxfhyc
2 7 0/)(19 1111 ++++ --= iiii pccy
应为 ( ci+1 - pi+1 ),但因 ci+1 尚未
算出,只好用 ( ci - pi )取代之。
§ 4 Multistep Method
? 基于泰勒展开的构造法
),.,(,.,1 1 0 1 1 1 1 0 1 k i k i i i k i k i i i f f f f h y y y y - - + - - - + + + + + + + + + = b b b b a a a
将通式中的右端各项 yi-1,…,yi-k ; fi+1,fi-1,
…,fi-k 分别在 xi 点作 泰勒展开,与精确解
y(xi+1) 在 xi 点的泰勒展开作 比较 。通过令 同
类项系数相等,得到足以确定待定系数 a0,…,ak ;
b-1,b0,…,bk 的等式,则可构造出线性多步法的
公式。
例,设 ) ( 3 3 2 2 1 1 0 2 2 1 1 0 1 - - - - - + ? + ? + ? + ? + + + = i i i i i i i i y y y y h y y y y b b b b a a a
确定式中待定系数 a0,a1,a2,b0,b1,b2,b3,使得公式具有 4阶
精度。
§ 4 Multistep Method
解,)( 5)4(42413612211 hOyhyhyhyhyy iiiiii ++???-??+?-=-
)(22 5)4(43233422 hOyhyhyhyhyy iiiiii ++???-??+?-=-
)( 4)4(3612211 hOyhyhyhyy iiiii +-???+??-?=?-
)(22 4)4(33422 hOyhyhyhyy iiiii +-???+??-?=?-
)(3 4)4(3292293 hOyhyhyhyy iiiii +-???+??-?=?-
)()( 5)4(42413612211 hOyhyhyhyhyxy iiiiii ++???+??+?+=+ /* y(xi) = yi */
1210 =++ aaa
hh =+++-- )2( 21021 bbbaa
22132121212 )322( hh =---+ bbbaa
36132921212341613 )2( hh =+++-- bbbaa
424132923416123212414 )( hh =---+ bbbaa
个未知数
个方程
7
5
§ 4 Multistep Method
? 令 a1 = a2 = 0 Adams 显式 公式
? 以 y?i+1 取代 y?i-1,并取 a1 = a2 = 0 Adams 隐式 公式
? 以 yi-3 取代 y?i-3,则可导出另一组 4 阶显式算法,其中
包含了著名的 米尔尼 /* Milne */ 公式
)22(34 2131 ---+ ?+?-?+= iiiii yyyhyy
其局部截断误差为 ),(,)(
45
14
1)5(5 +?= iiiii xxyhR ??
注,上式也可通过 数值积分 导出,即将 在区间
上积分,得到
再过 做 f 的插值多项式即可。
),( yxfy =?
],[ 13 +- ii xx ? +
-
+= -+ 1
3
,))(,()()( 31 i
i
x
xii dxxyxfxyxy
21,,-- iii fff
取 a1 = 1,a2 = 0
得到 辛甫生 /* Simpson */ 公式
与 Milne 公式匹配使用
? 辛甫生 /* Simpson */ 公式 )4(
3 1111 -+-+ ?+?+?+= iiiii yyy
hyy
在区间 [xi-1,xi+1]上积分,并用
Simpson数值积分 公式来近似积
分项,亦可得此 Simpson公式。
§ 4 Multistep Method
? Milne-Simpson 系统的缺点是 稳定性差,为改善稳定性,
考虑另一种隐式校正公式,
)( 11011221101 -+---+ ?+?+?+++= iiiiiii yyyhyyyy bbbaaa
要求公式具有 4 阶精度。通过泰勒展开,可得到 个等式,
从中解出 个未知数,则有 个自由度。
5
6 1
取 a1 = 1 得
Simpson 公式
哈明 /* Hamming */ 用 a1 的不同数值进行试验,发现当 a1 = 0
时,公式的稳定性较好,即,
)2(83)9(81 1121 -+-+ ?-?+?+-= iiiiii yyyhyyy
其局部截断误差为
),(,)(401 1)5(5 +?-= iiiii xxyhR ??
注,哈明公式不能用数值积分方法推导出来。