質問: オイラー法と4次のルンゲクッタ法について オイラー法と4次のルンゲクッタ法はそれぞれ何次のオーダーなんですか?
回答: 簡単な数字で考えてみればいい。 一階微分方程式 y'=f(x,y) と y(0) が与えられたときに y(1) の値を求めるにはどうするか。 f(x,y)が複雑すぎてとても解析解が求まりそうにない、 というときに使うのが数値解析による概算である。 刻み幅を h として、y(x+h)=g(h,y(x)) とするよい近似式があったとすれば、 この式を1/h回繰り返し適用する、すなわち y(h)=g(h,y(0)) y(2h)=g(h,y(h)) ... y(1)=g(h,y((n-1)h)) とすることによってy(1)の近似解が求められるのである。 このステップ数は、 初期値と目的値の間の距離 (先ほどの例では0と1の間の1が距離であり、 y(3)からy(5)を求める場合は距離は2である)に比例し、 また、h の逆数にも比例する。 大体の場合、目的値は決まっているのだから、 「ステップ数は~hの逆数にも比例する。」ので、 ステップ数はΟ(h^(-1))となるのだ。 また、RK4 では g(h,(y(x))=y(x)+Ο(h^5) となる。 これを先ほどの繰り返しの式に当てはめていくと y(h)=g(h,y(0))+Ο(h^5) y(2h)=g(h,y(h))+Ο(h^5) ... y(1)=g(h,y((n-1)h))+Ο(h^5) となるので、これらを辺々加えていくと y(1)=g(h,y(0))+Ο(h^5)/h という評価になる。Ο(h^5)/h=Ο(h^4) なので 全体の推定誤差は Ο(h^4) になるということである。 最後に、Ο(h^4) は h=0.1 にすれば誤差が 0.0001 になるという意味ではない。 オーダー記法はあくまで「この値に大まかに比例する」という意味である。 Ο(h^4)を実験によって評価したいということであれば、 刻み幅を 1/2 にしたら誤差は (1/2)^4=1/16 倍になった ことが言えればよいのだ。 h=0.1 のときに 誤差が 0.01 になるという結果を得たのであれば、 h=0.05 のときに誤差が 0.0007 程度になることが分かればいいのである。 微分方程式 y'=xy, y(0)=1 のときの y(1) をRK4で求めてみよう。 厳密解は y=e^(x^2/2) であるから y(1)=√(e)≒1.64872127070012 である。 h=1 の場合、 y(1)=1.64583333333333, 誤差 0.0028879 h=0.5 の場合、 y(1)=1.64852770169576, 誤差 0.0001936 h=0.25 の場合、 y(1)=1.64870973607629, 誤差 0.0000115 ということで、実験結果からも Ο(h^4) であることが見て取れるだろう。