数値解析 第8回 (5) ルンゲ・クッタ法、クッタの 3/8 公式
次のアイデア
$(9.9)$ 式の積分を台形公式風に近似したのがホイン法でした。
では、
シンプソンの公式 風に区間の中点での関数値も使い、
\begin{align}
\require{color}
\int_{x_n}^{x_{n+1}} & f(x, y(x))dx \\
& \mbox{≒ } \frac{h}{6}\Bigg\{f(x_n,\,\textcolor{red}{y(x_n)})
+ 4 f\left(x_{n}+\frac{h}{2},\, \textcolor{red}{y\left(x_{n}+\frac{h}{2}\right)}\right)
+ f(x_{n+1},\,\textcolor{red}{y(x_{n+1})})\Bigg\} \\
\end{align}
と考えよう、というのが次のアイデアです。
赤い部分が未知なので、再びここをオイラー法の近似式などで近似しなければなりませんが、単純な式では上手くいきませんでした。
それでもあきらめずに、テイラー展開の高次の項まで徹底的に書き出して作られたのがルンゲ・クッタ法です。
決定版:ルンゲ・クッタ法
公式 $(9.16)$
$$\begin{array}{ll}
f = f(x_n,y_n), \\
\hat y = y_n + \frac{h}{2} \times f, \quad
&\hat f = f\left(x_n+\frac{h}{2},\, \hat y\right), \\
\tilde y = y_n + \frac{h}{2} \times \hat f,
&\tilde f = f\left(x_n+\frac{h}{2},\, \tilde y\right), \\
\bar y = y_n + h \times \tilde f,
&\bar f = f\left(x_n+h,\, \bar y\right) \\
\end{array}
$$
として
$\dps{y_{n+1}=y_n + \frac{h}{6} \times \left(f+2\hat f+2\tilde f+\bar f\right)}$
$(\,n=0,1,\cdots\,)$
上述のアイデアの $\dps{4 f(\cdots)}$ のところを $2\hat f+2\tilde f$ で、
$f(x_{n+1},y(x_{n+1}))$ のところを $\bar f$ で近似している感じの公式です。
なお、記号の読み方は、$\hat{f}$ は「$f$ ハット」、$\tilde{f}$ は「$f$ チルダ」、$\bar{f}$ は「$f$ バー」です。
※ 式は、この順番で計算すれば良いようにできています。
Th.5 ルンゲ・クッタ法の誤差は刻み幅 $h$ の 4 次オーダー $O(h^4)$ である。
証明はプリントを見てください。ものすごく複雑です:
クッタの 3/8 公式
ルンゲ・クッタ型公式にはいくつもの variation があり、
「シンプソンの 3/8 公式」に似た形の
「クッタの 3/8 公式」というものもあります。
クッタの 3/8 公式
$$\begin{array}{ll}
f = f(x_n,y_n), \\
\hat y = y_n + \frac{h}{3} \times f,
&\hat f = f\left(x_n+\frac{h}{3},\, \hat y\right), \\
\tilde y = y_n - \frac{h}{3}\times f + h \times \hat f,
&\tilde f = f\left(x_n+\frac{2h}{3},\, \tilde y\right), \\
\bar y = y_n + h \times (f - \hat f + \tilde f), \quad
&\bar f = f\left(x_n+h,\, \bar y\right) \\
\end{array}
$$
として
$\dps{y_{n+1}=y_n + \frac{h}{8} \times \left(f+3\hat f+3\tilde f+\bar f\right)}$
$(\,n=0,1,\cdots\,)$