§ 4 线性多步法 /* Multistep Method */
用 若干 节点处的 y 及 y’ 值的 线性组合 来近似
y(xi+1)。
)...(..,110111101 kikiiikikiii ffffhyyyy --+---+ ++++++++= bbbbaaa
其通式可写为,),( 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?++=
10
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
~
10
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 充分小 时,可近似认为?ii,则:
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
基于泰勒展开的构造法
)...(..,110111101 kikiiikikiii ffffhyyyy --+---+ ++++++++= bbbbaaa
将通式中的右端各项 yi-1,…,yi-k ; fi+1,fi-1,
…,fi-k 分别在 xi 点作 泰勒展开,与精确解
y(xi+1) 在 xi 点的泰勒展开作 比较 。通过令 同类项系数相等,得到足以确定待定系数 a0,…,ak ;
b-1,b0,…,bk 的等式,则可构造出线性多步法的公式。
例,设 )( 3322110221101 -----+?+?+?+?+++= iiiiiiii yyyyhyyyy bbbbaaa
确定式中待定系数 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
注,哈明公式不能用数值积分方法推导出来。
用 若干 节点处的 y 及 y’ 值的 线性组合 来近似
y(xi+1)。
)...(..,110111101 kikiiikikiii ffffhyyyy --+---+ ++++++++= bbbbaaa
其通式可写为,),( 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?++=
10
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
~
10
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 充分小 时,可近似认为?ii,则:
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
基于泰勒展开的构造法
)...(..,110111101 kikiiikikiii ffffhyyyy --+---+ ++++++++= bbbbaaa
将通式中的右端各项 yi-1,…,yi-k ; fi+1,fi-1,
…,fi-k 分别在 xi 点作 泰勒展开,与精确解
y(xi+1) 在 xi 点的泰勒展开作 比较 。通过令 同类项系数相等,得到足以确定待定系数 a0,…,ak ;
b-1,b0,…,bk 的等式,则可构造出线性多步法的公式。
例,设 )( 3322110221101 -----+?+?+?+?+++= iiiiiiii yyyyhyyyy bbbbaaa
确定式中待定系数 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
注,哈明公式不能用数值积分方法推导出来。