2.2.3 Runge-Kutta法

漸化式

(6) $\displaystyle x_{j+1}=x_j+\frac{1}{6}\left(k_1+2k_2+2k_3+k_4\right),$

ただし、

(7) $\displaystyle \left\{ \begin{array}{l} k_1 = h  f(t_j,x_j)  k_2 = h  f(t_j+...
..._3 = h  f(t_j+h/2,x_j+k_2/2)  k_4 = h  f(t_j+h,x_j+k_3) \end{array} \right.$

$ \{x_j\}_{j=1}^N$ を計算する方法を Runge-Kutta 法という 4


($ k_1$, $ k_2$, $ k_3$, $ k_4$$ j$ に依存するので、 本来は例えば $ k_{1,j}$, $ k_{2,j}$, $ k_{3,j}$, $ k_{4,j}$ のように、 $ j$ を添えて書くべきであるが、 $ j$ を添えるのは省略されることが多い。 この辺はプログラミングのノリかもしれない。)


Runge-Kutta 法は、適度に簡単で、 そこそこの効率を持つ方法であるため、 常微分方程式の初期値問題の「定番の数値解法」としての地位を得ている。

プロでないユーザーとしては、

まずは Runge-Kutta 法でやってみて、それでダメなら考える
という態度で取り組めばいい、と思う。 どういう問題が Runge-Kutta 法で解くのにふさわしくないかは後述する (つもり…約束はしない)。



桂田 祐史