オイラー法、修正オイラー法、そして、2次のルンゲ・クッタ法
§1 オイラー法とその誤差
微分方程式の初期値問題
があり、
オイラー法は、微分方程式を積分した
の右辺の積分を
と近似し、これから得られる
を
とし、i=0を起点として、この漸化式から得られる
また、これは次のように考えることができる。
関数y(x)を点
が得られる。
右辺の最後の項は2次なので
とおくと(記号Oはランダウのビッグオーと呼ばれるものだが、誤差のオーダーと考えてもよい)、
となる。
ここで、
という演算規則を使っている。
O(h²)は2次だから、これをhで割れば1次減って2−1=1次なのでO(h)になると考えてよい。
これと同様に次の関係が成立する。
より一般に、
(4)を微分方程式(1)の右辺に代入すると、
さらに、
となり、
この式からこの近似式の誤差の程度、誤差のオーダーがh²であることがわかる。
なお、この計算では、ビッグオーの計算規則
を使っている。
微分方程式の初期値問題
を、h=0.1とし、オイラー法を用いて数値的に解いた結果は次の通り。
§2 修正オイラー法
§1で書いたように、オイラー法は、微分方程式
の左辺の微分を
で近似し、これから
あるいは
を得たもので簡単ではあるが、反面、精度が悪い。
そこで、より計算精度のよい方法について考察する。
微分方程式(1)の両辺を積分すると
となるが、
を満たすα、Βが存在すると仮定する。
y(x)を点
これらを(7)式に代入すると、
(6)式の中に現れる
これを代入すると(2)式に代入すると
(8)と(9)より、
したがって、
そして、これから次の漸化式を得る。
微分方程式の初期値問題
を、h=0.1とし、修正オイラー法を用いて数値的に解いた結果は次の通り。
微分方程式の解
§3 まとめ、さらに、2次のルンゲ・クッタ法
何やら難しいことを書いたが、実は、簡単に(10)、(11)式を導くことができる。
y=y(x)の関数なので、
そこで、
とおくと、微分方程式(1)は次のようになる。
この両辺を積分すれば、
オイラー法はこの右辺の積分を
と近似したものだった。
これに対して、修正オイラー法は台形公式を用いて積分を近似したものだ。すなわち、
と近似すれば、
になるってわけ。
また、積分を台形公式でなく中点公式で
で近似し、さらに
と近似すれば、
そして、これから、次の漸化式を得る。
これを2次のルンゲ・クッタ法という。
(局所的な)誤差の程度は、修正オイラー法と同じくO(h³)である。