§
9.4 龙格-库塔方法
得到高精度方法的一个直接想法是利用Taylor展开
假设式 y' =f(x,y) (a≤x≤b)
中的 f(x,y) 充分光滑,将y(xi+1)在x i点作Taylor展开,若
取右端不同的有限项作为y(xi+1)的近似值,就可得到
计算y(xi+1)的各种不同截断误差的数值公式。
例如:取前两项可得到
xy
(
xy
(
i
y
+
′
hO
xyh
)
)
(
(
+
hO
xyxhf
)
(
(
))
(
+
+
i
i
2
yxhf
hO
(
)
(
,
+
i
,
)
)
=+
1
=
=
xy
(
i
2
)
)
+
i
2
2014/9/2
1
i
i
i
若取前三项,可得到截断误差为O(h3)的公式
xy
(
i
)
=+
1
=
2
xyh
′′
(
2
i
)
+
hO
(
3
)
)
+
i
+
′
xyh
(
)
yxhf
,
(
i
i
)
+
]
类似地,若取前P+1项作为y(xi+1)的近似值,便得到
yxf
,
′+
(
yx
,
i
yx
,
i
′
x
′
y
)
(
)
)
f
(
f
i
i
i
i
+
hO
(
3
)
xy
(
y
i
2
h
2
i
+
[
y
=+
1
i
y
i
+
其中
y
y
=′
i
=′′′
i
=′′
yf
,
i
+′
f
ff
(
x
2014/9/2
L
yh
+′′
i
+′
i
2
yh
!2
+′=′
yxf
,
(
)
x
i
+′′=′′
f
f
)
xy
f
x
f
2
xx
i
+
ff
′
y
′′+′′
f
xy
yy
P
h
P
!
P
)
y
(
i
P阶泰勒方法
2
f
′+
f
x
f
+′
y
(
f
′
y
)
2
f
2
显然p=1时,
y i+1=y i+hf(xi,y i)
它即为我们熟悉的Euler方法。
当p≥2时,要利用泰勒方法就需要计算f(x,y)的高
阶微商。这个计算量是很大的,尤其当f(x,y)较复
杂时,其高阶导数会很复杂。因此,利用泰勒公
式构造高阶公式是不实用的。但是泰勒级数展开
法的基本思想是许多数值方法的基础。
R-K方法不是直接使用Taylor级数,而是利用它的思想
2014/9/2
3
Runge-Kutta 方法是一种高精度的单步法,简称R-K法
9.4.1 龙格-库塔(R-K)法的基本思想
Euler公式可改写成
y
i
K
=+
1
=
Ky
i
yxhf
(
i
+
,
i
)
则yi+1的表达式与y(xi+1)的Taylor展开式的前两项
完全相同,即局部截断误差为O(h2)。
2014/9/2
4
同理,改进Euler公式可改写成
y
i
K
1
K
2
=+
1
=
=
+
1
2
yxhf
i
i
xhf
+
i
y
i
(
(
,
K
1
+
1
2
K
2
)
Kyh
1
+
,
i
局部截断误差为O(h3)
)
上述两组公式在形式上共同点:都是用f(x,y)在某
些点上值的线性组合得出y(xi+1)的近似值yi+1, 且增
加计算的次数f(x,y)的次数,可提高截断误差的阶。如
欧拉法:每步计算一次f(x,y)的值,为一阶方法。改进
欧拉法需计算两次f(x,y)的值,为二阶方法。
2014/9/2
5
于是可考虑用函数f(x,y)在若干点上的函数值的
线性组合来构造近似公式,构造时要求近似公式在
(xi,yi)处的Taylor展开式与解y(x)在xi处的Taylor展开式
的前面几项重合,从而使近似公式达到所需要的阶数。
既避免求高阶导数,又提高了计算方法精度的阶数。
或者说,在[xi,xi+1]这一步内多计算几个点的斜率值,
然后将其进行加权平均作为平均斜率,则可构造出更
高精度的计算格式,这就是龙格—库塔(Runge-
Kutta)法的基本思想。
2014/9/2
6
一般龙格-库塔方法的形式为
L
+
+
+
+
2
Kc
p
p
2
y
y
KcKc
=
i
i
11
1
+
K
yxhf
(
,
)
=
i
i
1
K
xhf
yha
(
,
+
+
=
i
i
2
2
LLLLLL
K
yha
,
+
p
i
p
xhf
(
i
+
=
Kb
21
1
)
Kb
p
11
+
L
+
b
pp
,
1
−
K
)
p
1
−
称为P阶龙格-库塔方法。
其中ai,bij,ci为待定参数,要求上式yi+1在点(xi,yi)处作
Tailor展开,通过相同项的系数确定参数。
2014/9/2
7
Runge-Kutta方法的推导思想
对于常微分方程的初值问题
=′
y
)(
ay
),(
yxf
y
=
0
a
≤≤
bx
的解y=y(x),在区间[xi, xi+1]上使用微分中值定理,有
xy
(
)
−
xy
(
i
)
′=
y
(
ξ
i
)(
x
i
1
+
−
x
i
)
i
1
+
xxξ其中
∈
(
i
,
i
即
2014/9/2
i
)
1+
xy
(
=+
1
)
i
xy
(
i
)
+
yh
ξ′
(
i
)
8