2 常微分方程式の数値積分:四次のRunge-Kutta法

微分方程式

$\displaystyle \di{y}{x}= f(x,y)$ (30)

を数値的に積分することを考える。従ってここでは $ x$に於ける、 $ y(x)$$ f(x,y)$ とが与えられたときに、 $ x+h$ に於ける $ y(x+h)$ をどのように与えるかが問題となる。 例えばもし $ y(x+h)$

$\displaystyle y(x+h)= y(x)+ f\left(x+\frac{h}{2},y(x)+f(x,y(x))\,\frac{h}{2}\right)$ (31)

で与えるとすれば、この $ y(x+h)$ の評価はステップ $ h$ の二次 $ h^2$ まで正しいことを示すことができる。 この拡張として、常微分方程式を数値的に積分する方法として最もよく使われるのは四次の Runge-Kutta 法 と呼ばれるものであり、 $ y(x+h)$

$\displaystyle y(x+h)=y(x)+\frac{1}{6}\,\left(k_1 + 2k_2 + 2k_3 +k_4\right)$ (32)

で与えるものである。 これは、ステップ幅 $ h$ の四次 $ h^4$ まで正しいとされる。 ここで

$\displaystyle k_1=f\left(x,y(x)\right)\,h ,\quad k_2 = f\left(x+\frac{h}{2},y(x)+\frac{k_1}{2}\right)\,h$    

$\displaystyle k_3 = f\left(x+\frac{h}{2},y(x)+\frac{k_2}{2}\right)\, h, \quad k_4 = f\left(x+h,y(x)+k_3\right)\,h$    

である。これを連立微分方程式に拡張するのは容易である。 与えられた連立微分方程式を

$\displaystyle \di{\vy}{x} = {\bf f}\left(x, {\bf y}\right)$ (33)

と書けば、 $ \vy\left(x+h\right)$

$\displaystyle \vy(x+h) = {\bf y}(x) +\frac{1}{6}\left(\vk_1+2\vk_2+2\vk_3+\vk_4\right)$ (34)

で与える。ここでは

$\displaystyle \vy= \begin{pmatrix}y_1 \\  y_2 \\  y_3 \\  \vdots \\  y_n \end{p...
...y_n\right) \\  \vdots \\  f_n\left(x,y_1,y_2,y_3,\dots,y_n\right) \end{pmatrix}$    

$\displaystyle \vk_1={\bf f}\big(x,\vy(x)\big)\,h,\quad \vk_2={\bf f}\left(x+\fr...
...,\vy+\frac{\vk_2}{2}\right)\,h,\quad \vk_3={\bf f}\left(x+h,\vy+\vk_3\right)\,h$    

である。

fat-cat 平成16年11月30日