ルンゲ＝クッタ法のリスト

ルンゲ＝クッタ法 は、以下の形の常微分方程式の初期値問題の解を数値で近似計算する方法である。
: y' = f(t, y), \; y(t_0) = y_0
一般的に、ルンゲ＝クッタ法は以下の形で与えられる。
: y_{n+1} = y_n + h \sum_{i=1}^s b_i k_i\, 
ただし、
: k_i = f\left(t_n + c_i h, y_n + h \sum_{j = 1}^{i-1} a_{ij} k_j\right), 
以下のリストで記述するすべての計算方法は、それに対応するブッチャー配列で与えられる。ある一つの方法に対する係数をブッチャー配列で以下の形で表す。 
: 
\begin{array}{c|cccc}
c_1    & a_{11} & a_{12}& \dots & a_{1s}\\
c_2    & a_{21} & a_{22}& \dots & a_{2s}\\
\vdots & \vdots & \vdots& \ddots& \vdots\\
c_s    & a_{s1} & a_{s2}& \dots & a_{ss} \\
\hline
       & b_1    & b_2   & \dots & b_s\\
\end{array}

また、陽的ルンゲ＝クッタ法に対応するルンゲ＝クッタ行列は狭義の下三角行列であるので上三角成分の表記は省略される。

## 陽的ルンゲ＝クッタ法

### （前進）オイラー法

オイラー法は1次の方法である。 安定性と精度が低いため、オイラー法は入門の例でしか使われない（実際は大規模な計算では今でも使われることがある）。 

: 
\begin{array}{c|c}
0 &  \\
\hline
  & 1 \\
\end{array}


### 陽的中点法
（陽的）中点法は2段2次の方法である（陰的中点法も参照）。

: 
\begin{array}{c|cc}
0   &    &   \\
1/2 & 1/2 &   \\
\hline
    & 0   & 1  \\
\end{array}


### ホイン法

 も2段2次の方法である (陽的台形公式としても知られている)。

: 
\begin{array}{c|cc}
0   &    &   \\
1 & 1 &   \\
\hline
    & 1/2 & 1/2  \\
\end{array}


### Ralston法

Ralston法 は2段2次の方法のうちで局所誤差の上界が最小のものである。

: 
\begin{array}{c|cc}
0   &    &   \\
2/3 & 2/3 &   \\
\hline
    & 1/4   & 3/4  \\
\end{array}


### 一般的な2段2次の方法

: 
\begin{array}{c|ccc}
0   &    &    \\
x & x &    \\
\hline
    & 1-\frac{1}{2x} & \frac{1}{2x} \\
\end{array}


### クッタの3次の方法

: 
\begin{array}{c|ccc}
0   &    &    &     \\
1/2 & 1/2 &    &     \\
1   & -1  & 2   &     \\
\hline
    & 1/6 & 2/3 & 1/6  \\
\end{array}
 

### 古典的ルンゲ＝クッタ法

: 
\begin{array}{c|cccc}
0   &    &    &    & \\
1/2 & 1/2 &    &    & \\
1/2 & 0   & 1/2 &    & \\
1   & 0   & 0   & 1   & \\
\hline
    & 1/6 & 1/3 & 1/3 & 1/6\\
\end{array}


### クッタの3/8公式

この方法は、上記の古典的方法と同じ論文で提出されたが、古典的方法に比べるとあまり用いられていない。

: 
\begin{array}{c|cccc}
0   &    &  &    & \\
1/3 & 1/3 &  &    & \\
2/3 & -1/3   & 1 &   & \\
1   & 1   & -1   & 1   & \\
\hline
    & 1/8 & 3/8 & 3/8 & 1/8\\
\end{array}


## 埋め込み型ルンゲ＝クッタ法

埋め込み型の方法はルンゲ＝クッタ法の局所誤差を推定するために開発された方法である。それらの方法は誤差を制御するために刻み幅を調整する。

埋め込み型方法に対応するブッチャー配列は以下のように与えられる。
: 
\begin{array}{c|cccc}
c_1    & a_{11} & a_{12}& \dots & a_{1s}\\
c_2    & a_{21} & a_{22}& \dots & a_{2s}\\
\vdots & \vdots & \vdots& \ddots& \vdots\\
c_s    & a_{s1} & a_{s2}& \dots & a_{ss} \\
\hline
       & b_1    & b_2   & \dots & b_s\\
       & b_1^*    & b_2^*   & \dots & b_s^*\\
\end{array}

ここで、上側の段の係数  は  次陽的方法に対応するものであり、下側の段の係数  は  次陽的方法に対応するものである。

### ホイン・オイラー法
この方法は、2次のホイン法と1次のオイラー法を組み合わせる方法であり、もっとも単純な埋め込み型方法である。
: 
\begin{array}{c|cc}
	0&\\
	1& 	1 \\
\hline
&	1/2& 	1/2\\
	&	1 &	0
\end{array}


### フェールベルグ RK1(2)

フェールベルグ法は3段で、次数2と1の方法を用いる。 

: 
\begin{array}{c|ccc}
	0&\\
	1/2& 	1/2 \\
        1& 1/256 & 255/256 \\
\hline
&	1/512 & 255/256 & 1/512 \\
&	1/256& 	255/256 & 0

\end{array}


### Bogacki–Shampine法

 は4段で、次数3と2の方法を用いる。MATLABのコマンド ode23 はこの方法の実装である。

: 
\begin{array}{c|ccc}
	0& \\
	1/2& 	1/2 \\
        3/4& 0 & 3/4 \\
        1& 2/9 & 1/3 & 4/9 \\
\hline
&	2/9 & 1/3 & 4/9 & 0 \\
&	7/24& 1/4 & 1/3 & 1/8

\end{array}


### ルンゲ＝クッタ＝フェールベルグ法

ルンゲ＝クッタ＝フェールベルグ法 は5段で、次数5と4の方法を用いる。

: 
\begin{array}{c|cccccc}
0& \\
1/4& 1/4 \\
3/8& 3/32 & 9/32 \\
12/13& 1932/2197 & -7200/2197 & 7296/2197 \\
1& 439/216 & -8 & 3680/513 & -845/4104 \\
\hline 
& 16/135 & 0 & 6656/12825 & 28561/56430 & -9/50 & 2/55  \\
& 25/216 & 0 & 1408/2565 & 2197/4104 & -1/5 & 0
\end{array}


### Cash-Karp法

 はフェールベルグの最初のアイディアを変型した方法である。フェールベルグの方法と同じく5段で、次数5と4の方法を用いる。

: 
\begin{array}{c|cccccc}
	0& \\
	1/5& 	1/5 \\
        3/10& 3/40 & 9/40 \\
        3/5& 3/10 & -9/10 & 6/5 \\
        1& -11/54 & 5/2 & -70/27 & 35/27 \\
\hline
&	37/378 & 0 & 250/621 & 125/594 & 0 & 512/1771  \\
&	2825/27648 & 0 & 18575/48384 & 13525/55296 & 277/14336 & 1/4

\end{array}


### ドルマン＝プリンス法

ドルマン＝プリンス法 は6段で、次数5と4の方法を用いる。MATLABのコマンド ode45 はこの方法を実装したものである。

: 
\begin{array}{c|ccccccc}
	0& \\
	1/5& 1/5 \\
        3/10& 3/40 & 9/40 \\
        4/5& 44/45 & -56/15 & 32/9 \\
        8/9& 19372/6561 & -25360/2187 & 64448/6561 & -212/729 \\
        1& 9017/3168 & -355/33 & 46732/5247 & 49/176 & -5103/18656 \\
\hline
&	35/384 & 0 & 500/1113 & 125/192 & -2187/6784 & 11/84 & 0  \\
&	5179/57600 & 0 & 7571/16695 & 393/640 & -92097/339200 & 187/2100 & 1/40
\end{array}


## 陰的ルンゲ＝クッタ
上述の埋め込み型方法と同じく、ブッチャー配列に二つの方法が含まれている場合、表で重ねて書かれた下側の段の係数の方法が誤差をコントロールするためのものとなる。

### 後退オイラー法（陰的オイラー法）

後退オイラー法 は1次の方法である。 この方法は、偏微分方程式である線型拡散方程式の時間方向の離散化に用いた場合には無条件に安定で非振動的な方法である。

:
\begin{array}{c|c}
1 & 1 \\
\hline
  & 1 \\
\end{array}


### 陰的中点法

陰的中点法は2次方法である。選点法であり、以下のの最も簡単な場合である。

: 
\begin{array}{c|c}
1/2 & 1/2 \\
\hline
 & 1
\end{array}


### ガウス・ルジャンドル法

これらの方法はガウス求積法に基づいた方法であり、高い次数を持つ（ 段ガウス・ルジャンドル法の次数は  である）。

4次の方法は以下のブッチャー配列で与えられる。

:
\begin{array}{c|cc}
\frac{1}{2}-\frac{\sqrt3}{6} & \frac{1}{4} & \frac{1}{4}-\frac{\sqrt3}{6}  \\
\frac{1}{2}+\frac{\sqrt3}{6}  & \frac{1}{4}+\frac{\sqrt3}{6} &\frac{1}{4} \\
\hline 
    & \frac{1}{2} & \frac{1}{2}\\
    & \frac12+\frac12 \sqrt3 & \frac12-\frac12 \sqrt3 \\
\end{array}


さらに6次の方法に対応する配列は以下で与えられる。

:
\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}  \\
    & -\frac56 & \frac83 & -\frac56
\end{array}


### Lobatto法

Lobatto法 は主に IIIA、 IIIB と IIIC（古典的な文献によって、記号 I と II は二種類のRadau法にのみ使われる）と呼ばれる三種類の方法を指している。方法の名称は Rehuel Lobatto にちなむ。それらの方法はすべて陰的であり、次数  を持ち、係数に対し条件  と  を満たす。

#### Lobatto IIIA法

Lobatto IIIA法 はコロケーション法である。

2次の方法は陰的台形公式として知られ、以下の配列で与えられる。

:
\begin{array}{c|cc}
0   & 0   & 0  \\
1   & 1/2 & 1/2\\
\hline
    & 1/2 & 1/2\\
\end{array}


さらに4次の方法は以下の配列で与えられる。

:
\begin{array}{c|ccc}
0   & 0   & 0   & 0    \\
1/2 & 5/24& 1/3 & -1/24\\
1   & 1/6 & 2/3 & 1/6  \\
\hline
    & 1/6 & 2/3 & 1/6  \\
\end{array}


これらの方法はどれもA-安定であるが、L-安定やB-安定ではない。

#### Lobatto IIIB法

Lobatto IIIB法 はコロケーション法ではないけど、非連続的コロケーション法として見ることができる。

2次の方法は以下の配列で与えられる。

:
\begin{array}{c|cc}
0   & 1/2 & 0  \\
1   & 1/2 & 0  \\

\hline
    & 1/2 & 1/2\\
\end{array}


さらに4次の方法は以下の配列であたえられる。

:
\begin{array}{c|ccc}
0   & 1/6 & -1/6& 0    \\
1/2 & 1/6 & 1/3 & 0    \\
1   & 1/6 & 5/6 & 0    \\
\hline
    & 1/6 & 2/3 & 1/6  \\
\end{array}


これらの方法はどれもA-安定であるが、L-安定やB-安定ではない。

#### Lobatto IIIC法

Lobatto IIIC法 も非連続的コロケーション法である。

2次の方法は以下の配列で与えられる。

:
\begin{array}{c|cc}
0   & 1/2 & -1/2\\
1   & 1/2 & 1/2 \\
\hline
    & 1/2 & 1/2 \\
& 1 & 0 \\
\end{array}


さらに4次の方法は以下の配列で与えられる。

:
\begin{array}{c|ccc}
0   & 1/6 & -1/3& 1/6  \\
1/2 & 1/6 & 5/12& -1/12\\
1   & 1/6 & 2/3 & 1/6  \\
\hline
    & 1/6 & 2/3 & 1/6  \\
\end{array}


これらの方法は、すべてL-安定であり、さらに代数的安定（よってB-安定）でもある。そのため、硬い方程式に対する適切な方法である。

#### Lobatto IIIC*法

Lobatto IIIC*法 は文献によって、Lobatto III法、ブッチャーのLobatto法やLobatto IIIC法としても知られている。

2次の方法は上述の陽的台形公式にあたり（よって陰的方法ではない）、以下の配列で与えられる。

:
\begin{array}{c|cc}
0   & 0 & 0\\
1   & 1 & 0 \\
\hline
    & 1/2 & 1/2 \\
\end{array}


さらに4次の方法は以下の配列で与えられる。

:
\begin{array}{c|ccc}
0   & 0 & 0 & 0  \\
1/2 & 1/4 & 1/4 & 0\\
1   & 0 & 1 & 0  \\
\hline
    & 1/6 & 2/3 & 1/6  \\
\end{array}


これらの方法は、どれもA-安定でも、L-安定でも、B-安定でもない。

#### 一般化Lobatto法
上述のLobatto法の係数はすべて一意に定められるため、方法の線型結合も考えられる。一般的に、3つの実数パラメータ  (\alpha_{A},\alpha_{B},\alpha_{C})  からなるLobatto係数を以下のようにする。
:a_{i,j}(\alpha_{A},\alpha_{B},\alpha_{C}) = \alpha_{A}a_{i,j}^A + \alpha_{B}a_{i,j}^B + \alpha_{C}a_{i,j}^C + \alpha_{C*}a_{i,j}^{C*} 
但し、
:\alpha_{C*} = 1 - \alpha_{A} - \alpha_{B} - \alpha_{C}
ここで、 はLobatto IIIA法に対するルンゲ＝クッタ行列である。

、、 のとき、対応する方法はLobatto IIID法であり、Lobatto IIINW法とも呼ばれる。

2次の方法は以下の配列であたえられる。
:
\begin{array}{c|cc}
0   & 1/2 & 1/2\\
1   & -1/2 & 1/2 \\
\hline
    & 1/2 & 1/2 \\
\end{array}


さらに4次の方法は以下の配列であたえられる。

:
\begin{array}{c|ccc}
0   & 1/6 & 0 & -1/6  \\
1/2 & 1/12 & 5/12 & 0\\
1   & 1/2 & 1/3 & 1/6  \\
\hline
    & 1/6 & 2/3 & 1/6  \\
\end{array}


これらの方法もすべてL-安定であり、さらに代数的安定（よってB-安定）である。

### Radau法

Radau法 は次数  を持ち、A-安定である。しかし、方法に対する計算コストが高い以上、方法の次数が落ちるという恐れもある。

#### Radau IA法
Radau IA法の係数  は方程式
:P_{s}(2x-1) + P_{s-1}(2x-1) = 0
の解である。ここで、 は  次ルジャンドル多項式である。 

3次の方法は以下の配列で与えられる。

:
\begin{array}{c|cc}
0   & 1/4  & -1/4  \\
2/3 & 1/4  &  5/12 \\
\hline
    & 1/4 & 3/4 \\
\end{array}


さらに5次の方法は以下の配列で与えられる。

:
\begin{array}{c|ccc}
0   & \frac{1}{9} & \frac{-1 - \sqrt{6}}{18} & \frac{-1 + \sqrt{6}}{18} \\
\frac{3}{5} - \frac{\sqrt{6}}{10}  & \frac{1}{9} & \frac{11}{45} + \frac{7\sqrt{6}}{360} & \frac{11}{45} - \frac{43\sqrt{6}}{360}\\
\frac{3}{5} + \frac{\sqrt{6}}{10} & \frac{1}{9} & \frac{11}{45} + \frac{43\sqrt{6}}{360} & \frac{11}{45} - \frac{7\sqrt{6}}{360}  \\
\hline
    & \frac{1}{9} & \frac{4}{9} + \frac{\sqrt{6}}{36} & \frac{4}{9} - \frac{\sqrt{6}}{36}  \\
\end{array}


#### Radau IIA法
Radau IIA法の係数  は方程式
:P_{s}(2x-1) - P_{s-1}(2x-1) = 0
の解である。

3次の方法は以下の配列で与えられる。

:
\begin{array}{c|cc}
1/3 & 5/12 & -1/12\\
1   & 3/4  &  1/4 \\
\hline
    & 3/4 & 1/4 \\
\end{array}


さらに5次の方法は以下の配列で与えられる。

:
\begin{array}{c|ccc}
\frac{2}{5} - \frac{\sqrt{6}}{10}   & \frac{11}{45} - \frac{7\sqrt{6}}{360} & \frac{37}{225} - \frac{169\sqrt{6}}{1800} & -\frac{2}{225} + \frac{\sqrt{6}}{75} \\
\frac{2}{5} + \frac{\sqrt{6}}{10}  & \frac{37}{225} + \frac{169\sqrt{6}}{1800} & \frac{11}{45} + \frac{7\sqrt{6}}{360} & -\frac{2}{225} - \frac{\sqrt{6}}{75}\\
1                   & \frac{4}{9} - \frac{\sqrt{6}}{36} & \frac{4}{9} + \frac{\sqrt{6}}{36} & \frac{1}{9}  \\
\hline
    & \frac{4}{9} - \frac{\sqrt{6}}{36} & \frac{4}{9} + \frac{\sqrt{6}}{36} & \frac{1}{9}  \\
\end{array}


## 脚注

## 参考文献
* .
* .
* .
* .
* .
* .
* .
* 
* .
* 
* .