ルンゲ=クッタ法 (Runge-Kutta method)

運動方程式はという2つの関数に対する連立微分方程式だが,これまでの説明から,その解法の原理は1つの関数の場合でも同じであることがわかるだろう。
そこで,ここでは,という関数に対して,
     
という微分方程式が与えられているとして話を進める。

(1)テイラー展開

オイラー法の計算式
     
は,テイラー展開
               (1)
の1次の項までとったことに対応する。ここでは,ニュートンの記号
     
を使っている。

オイラー法は本来無限小であるを有限量で置き換えたものだが, が有限ならば,テイラー展開が正確な式になる。したがって,さらに の高次の項まで採用すると計算精度は上がる。

ここでのテイラー展開には,であるので,
     ,              (2)
     
     ・・・・
のような展開を行わなければならない。

(2)改良オイラー法とハイン法

まず, の2次の項までテイラー展開と一致する計算法を考える。

(1),(2)式より,テイラー展開は,
                 (3)
となる。ここで, などは, における値を表す。

一方,
     
     
として,
                             (4)
とおき, の2次までテイラー展開と一致するよう,係数 を決めることにする。
     
だから,
     
である。

これを,(3)と比較すると,
     
であればよいことがわかる。この解は無数にあるが,簡単な場合として以下の2つがある。

(a)  (改良オイラー法)
     

(b)  (ハイン法)
     

それぞれの図形的な意味は明らかであろう。

(3)4次のルンゲ・クッタ法

より高次のテイラー展開と一致するような式を作ることも可能であり,このような方法は一般にルンゲ・クッタ法と呼ばれている。先の改良オイラー法やハイン法は2次のルンゲ・クッタ法とも呼ばれる。

実用的には,4次のルンゲ・クッタ法で,プログラミングに便利な次の形がよく用いられる。
     
     
     
     
として,
     
により,次のステップを計算する。
これが,確かに までテイラー展開と一致することを示すには,相当タフな計算が必要になる。

パソコンが出始めたころ,卒業研究をしていた女子学生にこれを確認してもらったことがある。見事にやり遂げてくれたが,今では気の毒な作業をさせたと思っている。現在では,数式処理ソフトの助けを借りると,ずっと楽に計算できる。

このルンゲ・クッタ法を一般的な一階の連立微分方程式ためのルーチンにしておくことができる。