ルンゲ=クッタ法とは
物体が物理的法則にしたがってどのように動くのかをシミュレーションできたら面白いし、また物理現象を理解するためにも役立ちそうです。調べると、(4次の)ルンゲ=クッタ法というものがあり、計算が簡単に実行できるわりに精度が良いようです。これは、初期条件と時刻

での

の変化率が与えられている、次の微分方程式

、
において、時間の刻み幅を

として、ある時刻の

から、次の時刻の

を、次々と計算していく方法です。具体的には
と計算します。ここで

、

、

、

は、以下のように定義されます。
計算式の意味
上の計算式を見ると、

は、

から、変化率

で時間

だけ進んだ状態として計算されます。
定義から、

は、

での変化率です。

は、変化率を

とした場合に、時刻

後の地点における変化率です。また、

は、変化率を

とした場合に、時刻

後の地点における変化率です。そして

は、変化率を

とした場合に、時刻

後の地点における変化率です。
これら4点における変化率

、

、

、

の重みつき平均をとることにより、正しい変化率を

と近似計算していることになります。
証明
ルンゲ=クッタ法を導出することは難しいらしいのですが、一度導出されたものを、正しかどうか確認することはできますので、ここでは確認作業を行います。ただ、確認するだけでもかなり多くの計算をすることになります。
A.厳密に計算される
簡単のため、

、

としてテイラー展開すると、
となり、微小な時間間隔

のベキ級数で表せました。
ここで、

、

、

を順番に計算すると、
となり、これをさらに微分して、
となります。
B.ルンゲ=クッタ法から計算される
表記を簡潔にするために、

を

と書くことにすると、
です。次に、

をテイラー展開すると、
となります。また、

についてもテイラー展開を

の項まで行うと、
となります。最後のイコールでは、上で計算した

を代入しました。

についても

と同様に、
となります。これらにより

を計算すると、Aで計算したものと

の係数まで一致することが確認できます。
多変数の場合
上記は一変数の場合、すなわち時間

と変数

のみの場合ですが、多変数の場合に拡張しておくと、より応用が効くことは言うまでもありません。例えば、多次元空間での運動がシミュレーションできるし、また、運動方程式のように二階以上の微分方程式も扱えるようになります。実は、見た目は一変数の場合と全く変わらず、

、
という微分方程式において、時間の刻み幅を

として、ある時刻の

から、次の時刻の

は、
と計算されます。ここで、太字で表記した、

、

、

は皆ベクトルで、例えば、

です。
証明も、一変数の場合と全く同様にできます。というのは、例えば、

を例にとると、
となり、ベクトルと行列の計算ではありますが、式の形は一変数の場合の

と全く同じです。なので、一変数のときと全く同様の計算が成り立ち、厳密に計算したものと、ルンゲ=クッタ法から計算される

が、

の係数まで一致することが分かります。
最終更新:2015年02月01日 10:04