オイラー法、修正オイラー法、そして、2次のルンゲ・クッタ法 [微分積分]
オイラー法、修正オイラー法、そして、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)を点で2次までテーラー展開すると
であるから、両辺をxで微分すると
これらを(7)式に代入すると、
(6)式の中に現れるを点でテーラー展開すると
これを代入すると(2)式に代入すると
(8)と(9)より、
したがって、
そして、これから次の漸化式を得る。
微分方程式の初期値問題
を、h=0.1とし、修正オイラー法を用いて数値的に解いた結果は次の通り。
微分方程式の解とよく一致してーーグラフ上では厳密解と修正オイラー法による数値解の曲線が重なっているーー、計算精度が向上していることがわかる。
§3 まとめ、さらに、2次のルンゲ・クッタ法
何やら難しいことを書いたが、実は、簡単に(10)、(11)式を導くことができる。
y=y(x)の関数なので、もxの関数である。
そこで、
とおくと、微分方程式(1)は次のようになる。
この両辺を積分すれば、
オイラー法はこの右辺の積分を
と近似したものだった。
これに対して、修正オイラー法は台形公式を用いて積分を近似したものだ。すなわち、
は未知数なので(オイラー法で)、
と近似すれば、
になるってわけ。
また、積分を台形公式でなく中点公式で
で近似し、さらに
と近似すれば、
そして、これから、次の漸化式を得る。
これを2次のルンゲ・クッタ法という。
(局所的な)誤差の程度は、修正オイラー法と同じくO(h³)である。