Summarize Timeline Top Qs Fact Check
区間 [t0 , t0 + h ] 上の常微分方程式の初期値問題 を以下のように定める。
y
′
=
f
(
t
,
y
)
,
y
(
t
0
)
=
y
0
.
{\displaystyle y'=f(t,y),\quad y(t_{0})=y_{0}.}
解候補の空間を n 次以下の多項式からなるベクトル空間とし、点 0 ≤ c1 < c2 < ... < cn ≤ 1 を選ぶ(時々、ck も選点と呼ばれるが、方程式の定義域 が [0,1] とは限らないので最初に述べた選点とは少し違う定義となる)。
それらの点に対応する選点法による近似(多項式)解 p (t ) は、初期値条件 p (t0 ) = y0 と選点 tk = t0 + ck h (1 ≤ k ≤ n ) での微分方程式 p' (tk ) = f (tk , p (tk )) を満足する。そのように与えられた方程式の数は n +1 であり、p の未知係数の数と一致する。そのため、近似解は一意に定められる。したがって、最後の時刻 t0 + h での近似解は p (t0 + h ) となる。
以上のような方法は実際にすべて陰的ルンゲ=クッタ法 であり、以下のブッチャー配列で与えられる。
c
1
a
11
a
12
⋯
a
1
n
c
2
a
11
a
12
⋯
a
2
n
⋮
⋮
⋮
⋱
⋮
c
n
a
11
a
12
⋯
a
n
n
b
1
b
2
⋯
b
n
{\displaystyle {\begin{array}{c|ccccc}c_{1}&a_{11}&a_{12}&\cdots &a_{1n}\\c_{2}&a_{11}&a_{12}&\cdots &a_{2n}\\\vdots &\vdots &\vdots &\ddots &\vdots \\c_{n}&a_{11}&a_{12}&\cdots &a_{nn}\\\hline &b_{1}&b_{2}&\cdots &b_{n}\end{array}}}
この中で、ck は選ばれた点に対応し、bk と akj は以下の公式で与えられる[ 1] 。
b
k
=
∫
0
1
q
k
(
τ
)
q
k
(
c
k
)
d
τ
{\displaystyle b_{k}=\int _{0}^{1}{\frac {q_{k}(\tau )}{q_{k}(c_{k})}}d\tau }
a
k
j
=
∫
0
c
k
q
j
(
τ
)
q
j
(
c
j
)
d
τ
{\displaystyle a_{kj}=\int _{0}^{c_{k}}{\frac {q_{j}(\tau )}{q_{j}(c_{j})}}d\tau }
ここで、
q
j
(
τ
)
=
(
τ
−
c
j
)
−
1
∏
i
=
1
n
(
τ
−
c
i
)
{\displaystyle q_{j}(\tau )=(\tau -c_{j})^{-1}\prod _{i=1}^{n}(\tau -c_{i})}
である。
しかし、陰的ルンゲ=クッタ法がすべて選点法であるわけではない[ 2] 。
例として、上記の常微分方程式に対し点 c1 = 0 と c2 = 1 を選ぶとしよう(よって n = 2 )。近似解 p (t ) は2次多項式であり、選点法による方程式
p
(
t
0
)
=
y
0
,
{\displaystyle p(t_{0})=y_{0},\,}
p
′
(
t
0
)
=
f
(
t
0
,
p
(
t
0
)
)
,
{\displaystyle p'(t_{0})=f(t_{0},p(t_{0})),\,}
p
′
(
t
0
+
h
)
=
f
(
t
0
+
h
,
p
(
t
0
+
h
)
)
{\displaystyle p'(t_{0}+h)=f(t_{0}+h,p(t_{0}+h))\,}
を満足する。計算を簡単にするために、p を以下の形で書く。
p
(
t
)
=
α
(
t
−
t
0
)
2
+
β
(
t
−
t
0
)
+
γ
{\displaystyle p(t)=\alpha (t-t_{0})^{2}+\beta (t-t_{0})+\gamma \,}
上記の方程式系を用いて未知の係数を解くと
α
=
1
2
h
(
f
(
t
0
+
h
,
p
(
t
0
+
h
)
)
−
f
(
t
0
,
p
(
t
0
)
)
)
,
β
=
f
(
t
0
,
p
(
t
0
)
)
,
γ
=
y
0
.
{\displaystyle {\begin{aligned}\alpha &={\frac {1}{2h}}\left(f(t_{0}+h,p(t_{0}+h))-f(t_{0},p(t_{0}))\right),\\\beta &=f(t_{0},p(t_{0})),\\\gamma &=y_{0}.\end{aligned}}}
であることがわかる。したがって対応する選点法は次の公式で(陰的に)与えられる。
y
1
=
p
(
t
0
+
h
)
=
y
0
+
1
2
h
(
f
(
t
0
+
h
,
y
1
)
+
f
(
t
0
,
y
0
)
)
,
{\displaystyle y_{1}=p(t_{0}+h)=y_{0}+{\frac {1}{2}}h\left(f(t_{0}+h,y_{1})+f(t_{0},y_{0})\right),\,}
ここで、y1 = p (t0 + h ) は t = t0 + h での近似解である。
この方法は微分方程式における台形公式 として知られている。確かに、方程式を以下のように書き換えって(数値積分における)台形公式で近似することから上記の公式を導出することも可能である。
y
(
t
)
=
y
(
t
0
)
+
∫
t
0
t
f
(
τ
,
y
(
τ
)
)
d
τ
,
{\displaystyle y(t)=y(t_{0})+\int _{t_{0}}^{t}f(\tau ,y(\tau ))\,{\textrm {d}}\tau ,\,}
上述の点 ci は n 次のルジャンドル多項式 の根として選べる。それらの点に対応する選点法は、n 段ガウス・ルジャンドル法(Gauss-Legendre method)として知られている。n 段ガウス・ルジャンドルは次数 2n を持ち、n 段ルンゲ=クッタ法の中にでも一番精度の高い方法である[ 3] 。さらに、ガウス・ルジャンドル法はすべてA-安定であり[ 4] 、硬い方程式 にも適用できる。しかし n が4以上の時、ルジャンドル多項式の根を効率良く計算することが困難であり、加えて対応する方法の係数も極めて複雑であるので、4段以上のガウス・ルジャンドル法はあまり使われない[ 5] 。
2段ガウス・ルジャンドル法は以下のブッチャー配列で与えられる。
1
2
−
3
6
1
4
1
4
−
3
6
1
2
+
3
6
1
4
+
3
6
1
4
1
2
1
2
{\displaystyle {\begin{array}{c|cc}{\frac {1}{2}}-{\frac {\sqrt {3}}{6}}&{\frac {1}{4}}&{\frac {1}{4}}-{\frac {\sqrt {3}}{6}}\\{\frac {1}{2}}+{\frac {\sqrt {3}}{6}}&{\frac {1}{4}}+{\frac {\sqrt {3}}{6}}&{\frac {1}{4}}\\\hline &{\frac {1}{2}}&{\frac {1}{2}}\\\end{array}}}
そして3段ガウス・ルジャンドル法は以下のブッチャー配列で与えられる。
1
2
−
15
10
5
36
2
9
−
15
15
5
36
−
15
30
1
2
5
36
+
15
24
2
9
5
36
−
15
24
1
2
+
15
10
5
36
+
15
30
2
9
+
15
15
5
36
5
18
4
9
5
18
{\displaystyle {\begin{array}{c|ccc}{\frac {1}{2}}-{\frac {\sqrt {15}}{10}}&{\frac {5}{36}}&{\frac {2}{9}}-{\frac {\sqrt {15}}{15}}&{\frac {5}{36}}-{\frac {\sqrt {15}}{30}}\\{\frac {1}{2}}&{\frac {5}{36}}+{\frac {\sqrt {15}}{24}}&{\frac {2}{9}}&{\frac {5}{36}}-{\frac {\sqrt {15}}{24}}\\{\frac {1}{2}}+{\frac {\sqrt {15}}{10}}&{\frac {5}{36}}+{\frac {\sqrt {15}}{30}}&{\frac {2}{9}}+{\frac {\sqrt {15}}{15}}&{\frac {5}{36}}\\\hline &{\frac {5}{18}}&{\frac {4}{9}}&{\frac {5}{18}}\end{array}}}