1 2 1
3 0 1 2 3
1 3 1 2
5 ( 5 ) 6
1
( )
0,
8 4 8
1,,,,0,
3 3 3
4
( 2 2 )
3
14
( )
45
n n n n n
nn
M i l i ne
y y h f f f
M i l i ne
R h y O h
M i l i ne
0
(二)米尔尼 公式取r =3,并令 由方程组可解出相应的线性多步式称为 公式,其局部截断误差为公式是四阶四 步显式公式。
12
1 2 1 1
5 ( 5 ) 6
1
( m in )
0,m i n
13
( 9 ) ( 2 )
88
1
( )
40
n n n n n n
nn
H am g
H am g
y y y h f f f
R h y O h
(三)哈明 公式取r=2,并令 可得到 公式其局部截断误差为
Hamming 公式是四阶三步隐式公式。
1
1
,
)
,
)
n
n
y
n+1
n+1
n+1
隐式法与显式法的比较一般地,同阶的隐式法比显式法精确,而且数值稳定性也好。但在隐式公式中,通常很难解出y 需要用迭代法求解,这样又增加了计算量。
在实际计算中,很少单独用显式公式或隐式公式,
而是将它们联合使用:先用显式公式求出y(x 的预测值,记作y 再用隐式公式对预测值进行校正,求出y (x 的近似值 。
§ 5.预测 — 校正系统用显式公式计算预测值,然后用隐式公式进行校正,
得到近似值 yn+1这样一组计算公式称为预测 — 校正系统。
一般采用同阶的隐式公式与显式公式。常用的预测 — 校正系统有两种:
1 2 31
1 1 1 21
( 5 5 5 9 3 7 9 )
24
[ 9 (,) 1 9 5 ]
24
n n n n nn
n n n n n nn
A d a m s
h
y y f f f f
h
y y f x y f f f
预测—校正公式预测校正
3 1 21
1 2 1 11
l i m i n
4
( 2 2 )
3
13
( 9 ) [ (,) 2 ) ]
88
n n n nn
n n n n n nn
M i ne H am g
y y h f f f
y y y h f x y f f
预测—校正公式
( 1)
RK
3
说明:
以上两种预测—校正公式均为四阶公式,其起步值通常用四阶 公式计算。
(2) 有时为提高精度,校正公式可迭代进行多次,但迭代次数一般不超过 次。
用局部截断误差进一步修正预测-校正公式
5 ( 5 ) 6
1 1
5 ( 5 ) 6
11
5 ( 5 ) 6
1 1
5 ( 5 )
1 1
11 11
1
251
( ) ( )
720
19
( ) ( )
720
270
()
720
720
()
270
251
( ) ( )
270
()
nn n
n n n
nn n
nn n
nn nn
n
Adams
y x y h y O h
y x y h y O h
y y h y O h
h y y y
y x y y y
yx
由 公式的局部截断误差公式两式相减
11 1
19
()
270
nn n
y y y
1 1 2 3
11
1 1 1 1 2
1 1 1 1
( 55 59 37 9 )
24
251
()
270
[ 9 (,) 19 5 ]
24
19
()
270
n n n n n n
n n n n
n n n n n n n
n n n n
A da m s
h
p y f f f f
m p c p
h
c y f x m f f f
y c c p
由上面就得到多环节的 预测-校正公式预测改进校正改进
1 3 1 2
11
1 2 1 1 1
1 1 1 1
l n m i n
4
( 2 2 )
3
112
()
121
13
( 9 ) [ (,) 2 ]
88
9
()
121
n n n n n
n n n n
n n n n n n n
n n n n
M i e H am g
p y h f f f
m p c p
c y y h f x m f f
y c c p
完全类似,可以导出多环节的预测-校正公式预测改进校正改进
00
1 1 1
1
1 1 2 1 1
1,,(,),,( 2),,1
( 3 ) (,)
(,)
22
n n n
n n n
ba
a b f x y N y h x a n
N
f f x y
hK
K hf K hf x y
K
算法
( )输入 置计算
2
3 1 1 4 1 1 3
1 1 2 3 4
00
(,) (,)
22
1
( 2 2 )
6
( 4) (,)
( 5 ) 3,1,3
1,0,0,6
n n n n
n n n
nn
hK
hf x y K hf x h y K
y y K K K K x a nh
xy
n n n
n n p c
输出若 置 返回 ;
否则,置 转 。
3 3 3 3
0 3 2 1 0 0
3 1 3 2
1 1 1
3 3 0
( 6 )
(,)
4 1 1 2
( 2 2 ) ( )
3 1 2 1
13
( 9 ) [ (,) 2 ]
88
9
( ),)
121
( 7 ) 1,,,
( 0,1,2 ),,,,
j j j j j j
f f x y x x h
p y f f f m p c p
c y y h f x m f f
y c c p x y
n N n n x x y y f f
j x x y y p p
计算输出(
若,置
0
,6cc? 转;
否则停机。
§ 5,常微分方程组与高阶方程的数值解
'
12
0
0
(,,,,) ( 1,2,,)
( ) ( 1,2,,)
i i N
ii
y f x y y y i N
y x y i N
一、一阶方程组一阶方程组的初值问题
12
'
0 0 0 0
12 0
0
12
y f
y (,,) ;
y f (,y ) ;
y (,,) ;
y ( ) y ;
f (,,) ;
T
N
T
N
T
N
y y y
x
y y y
x
f f f
若对 和 采用向量的记号
,1 1 2 3 4
1 1 2
2 1 1 1 2 2 1 1
3 1 1 2
( 2 2 )
6
( 1,2,,),
(,,,,) ;
(,,,,) ;
2 2 2 2
(,,
22
i n in i i i i
i i n n n Nn
i i n n n Nn N
i i n n
h
y y K K K K
iN
K f x y y y
h h h h
K f x y K y K y K
hh
K f x y K
或表达为其中
2 2 2 2
4 1 1 3 2 2 3 3
,,) ;
22
(,,,,) ;
n Nn N
i i n n n Nn N
hh
y K y K
K f x h y hK y hK y hK
'
0
0
n+ 1 n 1 2 3 4
1 n 2 n 1
3 n 2 4 n 3
y f (,y ) ;
y ( ) y ;
y y ( k 2 k 2 k k )
6
k f (,y ) ; k f (,y k ) ;
22
k f (,y k ) ; k f (,y k ) ;
22
nn
nn
x
x
h
hh
xx
hh
x x h h
求解这一初值问题的四阶龙格—库塔公式为其中
'
0 0
'
00
,,
,,
dy
y f x y z y
dx
dz
z g x y z z
dx
yx
x z
以两个方程组为例
,2,1,0
,,,
,,,
,1
001
0
0
1
n
zhg
yhf
E ul e r
zxzyxzz
yxzyxyy
n
n
nnn
n
n
n
nn
法方程组的
2) 方程组的 R-k 法
22
6
1
22
6
1
43211
43211
MMMMzz
KKKKyy
nn
nn
zyxzyxK nnnnnn hghf,,,,,M 11
2
,
2
,
2
2
,
2
,
2
11
2
11
2
M
z
K
yxM
M
z
K
yxK
nnn
nnn
h
hg
h
hf
2
2
2
2
2
2
22
3
22
3
M
z
K
yxM
M
z
K
yxK
n
n
n
n
n
n
,,
h
hg
,,
h
hf
,2,1,0
,,
,,
334
334
n
hhg
hhf
MzKyxM
MzKyxK
n
n
n
n
n
n
二、化高阶方程为一阶方程组
( ) ' ( 1 )
' ' ( 1 ) ( 1 )
0 0 0 0 0 0
' '' ( 1 )
1 2 3
'
1 2 1 0
(,,,,);
( ),( ),,( ),
,,,,,
()
mm
mm
m
m
m
y f x y y y
y x y y x y y x y
y y y y y y y y
m
y y y x y
高阶微分方程的初值问题可通过变量代换化为一阶微分方程组的初值问题。设有 阶常微分方程初值问题引入新变量则可将 阶方程化为如下一阶方程组:
0
''
2 3 2 0 0
' ( 2 )
1 1 0 0
' ( 1 )
1 2 0 0
()
()
(,,,,) ( )
m
m m m
m
m m m
y y y x y
y y y x y
y f x y y y y x y
"'
'
''
0 0 0 0
'
00
''
00
1 1 2 3 4
1 1 2 3 4
(,,) ;
( ),( ),
,( ) ;
(,,),( ),
( 2 2 ) ;
6
( 2 2 )
6
,1,2,3,4)
nn
nn
ii
y f x y y
zy
y x y y x y
y z y x y
z f x y z z x y
h
y y K K K K
h
z z M M M M
K M i
以二阶方程的初值问题为例:
引入新变量对其用四阶龙格-库塔公式
( 计算公式略.
" 2 '
'
'
'
'2
0 0 0
1 0 1 0 0 0
5 si n 2 2 0 1
( 0) 2,( 0) 3
( 0) 2
,
5 si n 2 2 ( 0) 3
0,2,3,
3 (,,) 2
x
x
RK
y e x y y x
yy
y z y
zy
z e x y z z
x y z RK
K z L f x y z
K
例:用四阶 方法求解初值问题 (取 h=0,1)
解:令因 由 公式得
2 0 1
2 0 0 1 0 1
3.1
2
(,,) 1.623 822 4
2 2 2
h
zL
h h h
L f x y K z L
继续计算(略)。
3 0 1 2 3
1 3 1 2
5 ( 5 ) 6
1
( )
0,
8 4 8
1,,,,0,
3 3 3
4
( 2 2 )
3
14
( )
45
n n n n n
nn
M i l i ne
y y h f f f
M i l i ne
R h y O h
M i l i ne
0
(二)米尔尼 公式取r =3,并令 由方程组可解出相应的线性多步式称为 公式,其局部截断误差为公式是四阶四 步显式公式。
12
1 2 1 1
5 ( 5 ) 6
1
( m in )
0,m i n
13
( 9 ) ( 2 )
88
1
( )
40
n n n n n n
nn
H am g
H am g
y y y h f f f
R h y O h
(三)哈明 公式取r=2,并令 可得到 公式其局部截断误差为
Hamming 公式是四阶三步隐式公式。
1
1
,
)
,
)
n
n
y
n+1
n+1
n+1
隐式法与显式法的比较一般地,同阶的隐式法比显式法精确,而且数值稳定性也好。但在隐式公式中,通常很难解出y 需要用迭代法求解,这样又增加了计算量。
在实际计算中,很少单独用显式公式或隐式公式,
而是将它们联合使用:先用显式公式求出y(x 的预测值,记作y 再用隐式公式对预测值进行校正,求出y (x 的近似值 。
§ 5.预测 — 校正系统用显式公式计算预测值,然后用隐式公式进行校正,
得到近似值 yn+1这样一组计算公式称为预测 — 校正系统。
一般采用同阶的隐式公式与显式公式。常用的预测 — 校正系统有两种:
1 2 31
1 1 1 21
( 5 5 5 9 3 7 9 )
24
[ 9 (,) 1 9 5 ]
24
n n n n nn
n n n n n nn
A d a m s
h
y y f f f f
h
y y f x y f f f
预测—校正公式预测校正
3 1 21
1 2 1 11
l i m i n
4
( 2 2 )
3
13
( 9 ) [ (,) 2 ) ]
88
n n n nn
n n n n n nn
M i ne H am g
y y h f f f
y y y h f x y f f
预测—校正公式
( 1)
RK
3
说明:
以上两种预测—校正公式均为四阶公式,其起步值通常用四阶 公式计算。
(2) 有时为提高精度,校正公式可迭代进行多次,但迭代次数一般不超过 次。
用局部截断误差进一步修正预测-校正公式
5 ( 5 ) 6
1 1
5 ( 5 ) 6
11
5 ( 5 ) 6
1 1
5 ( 5 )
1 1
11 11
1
251
( ) ( )
720
19
( ) ( )
720
270
()
720
720
()
270
251
( ) ( )
270
()
nn n
n n n
nn n
nn n
nn nn
n
Adams
y x y h y O h
y x y h y O h
y y h y O h
h y y y
y x y y y
yx
由 公式的局部截断误差公式两式相减
11 1
19
()
270
nn n
y y y
1 1 2 3
11
1 1 1 1 2
1 1 1 1
( 55 59 37 9 )
24
251
()
270
[ 9 (,) 19 5 ]
24
19
()
270
n n n n n n
n n n n
n n n n n n n
n n n n
A da m s
h
p y f f f f
m p c p
h
c y f x m f f f
y c c p
由上面就得到多环节的 预测-校正公式预测改进校正改进
1 3 1 2
11
1 2 1 1 1
1 1 1 1
l n m i n
4
( 2 2 )
3
112
()
121
13
( 9 ) [ (,) 2 ]
88
9
()
121
n n n n n
n n n n
n n n n n n n
n n n n
M i e H am g
p y h f f f
m p c p
c y y h f x m f f
y c c p
完全类似,可以导出多环节的预测-校正公式预测改进校正改进
00
1 1 1
1
1 1 2 1 1
1,,(,),,( 2),,1
( 3 ) (,)
(,)
22
n n n
n n n
ba
a b f x y N y h x a n
N
f f x y
hK
K hf K hf x y
K
算法
( )输入 置计算
2
3 1 1 4 1 1 3
1 1 2 3 4
00
(,) (,)
22
1
( 2 2 )
6
( 4) (,)
( 5 ) 3,1,3
1,0,0,6
n n n n
n n n
nn
hK
hf x y K hf x h y K
y y K K K K x a nh
xy
n n n
n n p c
输出若 置 返回 ;
否则,置 转 。
3 3 3 3
0 3 2 1 0 0
3 1 3 2
1 1 1
3 3 0
( 6 )
(,)
4 1 1 2
( 2 2 ) ( )
3 1 2 1
13
( 9 ) [ (,) 2 ]
88
9
( ),)
121
( 7 ) 1,,,
( 0,1,2 ),,,,
j j j j j j
f f x y x x h
p y f f f m p c p
c y y h f x m f f
y c c p x y
n N n n x x y y f f
j x x y y p p
计算输出(
若,置
0
,6cc? 转;
否则停机。
§ 5,常微分方程组与高阶方程的数值解
'
12
0
0
(,,,,) ( 1,2,,)
( ) ( 1,2,,)
i i N
ii
y f x y y y i N
y x y i N
一、一阶方程组一阶方程组的初值问题
12
'
0 0 0 0
12 0
0
12
y f
y (,,) ;
y f (,y ) ;
y (,,) ;
y ( ) y ;
f (,,) ;
T
N
T
N
T
N
y y y
x
y y y
x
f f f
若对 和 采用向量的记号
,1 1 2 3 4
1 1 2
2 1 1 1 2 2 1 1
3 1 1 2
( 2 2 )
6
( 1,2,,),
(,,,,) ;
(,,,,) ;
2 2 2 2
(,,
22
i n in i i i i
i i n n n Nn
i i n n n Nn N
i i n n
h
y y K K K K
iN
K f x y y y
h h h h
K f x y K y K y K
hh
K f x y K
或表达为其中
2 2 2 2
4 1 1 3 2 2 3 3
,,) ;
22
(,,,,) ;
n Nn N
i i n n n Nn N
hh
y K y K
K f x h y hK y hK y hK
'
0
0
n+ 1 n 1 2 3 4
1 n 2 n 1
3 n 2 4 n 3
y f (,y ) ;
y ( ) y ;
y y ( k 2 k 2 k k )
6
k f (,y ) ; k f (,y k ) ;
22
k f (,y k ) ; k f (,y k ) ;
22
nn
nn
x
x
h
hh
xx
hh
x x h h
求解这一初值问题的四阶龙格—库塔公式为其中
'
0 0
'
00
,,
,,
dy
y f x y z y
dx
dz
z g x y z z
dx
yx
x z
以两个方程组为例
,2,1,0
,,,
,,,
,1
001
0
0
1
n
zhg
yhf
E ul e r
zxzyxzz
yxzyxyy
n
n
nnn
n
n
n
nn
法方程组的
2) 方程组的 R-k 法
22
6
1
22
6
1
43211
43211
MMMMzz
KKKKyy
nn
nn
zyxzyxK nnnnnn hghf,,,,,M 11
2
,
2
,
2
2
,
2
,
2
11
2
11
2
M
z
K
yxM
M
z
K
yxK
nnn
nnn
h
hg
h
hf
2
2
2
2
2
2
22
3
22
3
M
z
K
yxM
M
z
K
yxK
n
n
n
n
n
n
,,
h
hg
,,
h
hf
,2,1,0
,,
,,
334
334
n
hhg
hhf
MzKyxM
MzKyxK
n
n
n
n
n
n
二、化高阶方程为一阶方程组
( ) ' ( 1 )
' ' ( 1 ) ( 1 )
0 0 0 0 0 0
' '' ( 1 )
1 2 3
'
1 2 1 0
(,,,,);
( ),( ),,( ),
,,,,,
()
mm
mm
m
m
m
y f x y y y
y x y y x y y x y
y y y y y y y y
m
y y y x y
高阶微分方程的初值问题可通过变量代换化为一阶微分方程组的初值问题。设有 阶常微分方程初值问题引入新变量则可将 阶方程化为如下一阶方程组:
0
''
2 3 2 0 0
' ( 2 )
1 1 0 0
' ( 1 )
1 2 0 0
()
()
(,,,,) ( )
m
m m m
m
m m m
y y y x y
y y y x y
y f x y y y y x y
"'
'
''
0 0 0 0
'
00
''
00
1 1 2 3 4
1 1 2 3 4
(,,) ;
( ),( ),
,( ) ;
(,,),( ),
( 2 2 ) ;
6
( 2 2 )
6
,1,2,3,4)
nn
nn
ii
y f x y y
zy
y x y y x y
y z y x y
z f x y z z x y
h
y y K K K K
h
z z M M M M
K M i
以二阶方程的初值问题为例:
引入新变量对其用四阶龙格-库塔公式
( 计算公式略.
" 2 '
'
'
'
'2
0 0 0
1 0 1 0 0 0
5 si n 2 2 0 1
( 0) 2,( 0) 3
( 0) 2
,
5 si n 2 2 ( 0) 3
0,2,3,
3 (,,) 2
x
x
RK
y e x y y x
yy
y z y
zy
z e x y z z
x y z RK
K z L f x y z
K
例:用四阶 方法求解初值问题 (取 h=0,1)
解:令因 由 公式得
2 0 1
2 0 0 1 0 1
3.1
2
(,,) 1.623 822 4
2 2 2
h
zL
h h h
L f x y K z L
继续计算(略)。