2017年11月27日月曜日

オイラー法の誤差の内訳

オイラー法の誤差の内訳

この記事を書いた私自身、このあたりの話はよく分かっていないのだけれど・・・。

微分方程式を
とする。
(1)式の点における近似解、厳密解をとするとき、で発生した誤差
は、オイラー法の場合、
次のステップのの近似解に伝播していく。

の場合、
だから、
である。
そして、この伝播誤差の他に、k+1段の積分計算にともなう打切誤差が加わり、
となり、k+1段に
として伝わってゆくのでしょう。

この考えに基づき、誤差の蓄積の内訳を求めてみた。
λ=1h=0.1の場合は次の通り。


オイラー法の場合、伝播誤差をまったく含まないx=0.1を除き、誤差の大部分を伝播誤差が占めており、この伝播誤差のために、計算を進めるたびに厳密解との乖離が大きくなってゆくことが分かる。

安定であるλ=−1h=0.1の場合は、次のようになる。






この場合、伝播誤差(の絶対値)はx=1.2の付近まで増加するのは、伝播誤差の減衰よりも計算のたびに加わる打切誤差の(絶対値)の増加が大きいため。
この場合も、誤差の多くを占めていることが分かる。

なお、この計算においては、打切誤差は、相対誤差と伝播誤差の差から求めてある。
ネムネコは数値計算の素人だから、こうした計算法の是非についてはわからない。そして、数値計算屋さんと伝播誤差を違う意味で捉えているのかもしれない。
だから、この方面に詳しいヒトや数値計算屋さんに、こうした計算の是非などについて教えて欲しいにゃ。

偏微分を用いない(3)式の導出
とすると、
したがって、
よって、
ここで、積分の打切誤差
であり、(4)式と(5)式、そして、k+1段で実際に生じている近似解と厳密解の(誤)差を用いて、
と推測することができる。

λ=1h=0.1のとき、こうして見積もった打切誤差の積算値を求めると、x=2のときに、およそ、−0.314。対して、厳密解とオイラー法を用いて求めた近似解との相対誤差は−0.662で2倍以上になっている。このことからも、積分計算をするたびに発生する打切誤差が増幅されて伝播していることが分かる。



2017年11月26日日曜日

My Favorite Song : Bon Appétit♡S

My Favorite Song : Bon Appétit♡S



誤差の蓄積

誤差の蓄積


の解は
であり、Euler法は(2)式の積分を
と近似し、
を計算し、以下、逐次的に
と計算し、微分方程式(1)の近似解を求める方法である。
特に、
と、等間隔の時、オイラー法は
となる。
そして、(5)の(局所的な)打ち切り誤差程度である。コンピュータを用いる解法では、この打ち切り誤差の他に計算機特有の丸め誤差などが発生するが、丸め誤差は打ち切り誤差と似た性質を持っているので、打ち切り誤差に含めることが可能であろう。

が正確にであるとき、積分によって得られるの近似値の間には
という関係が成立する。ここで、は局所的な打ち切り誤差を表す。
さらに、が誤差を含めば、にはこの誤差伝播誤差と局所的な打ち切り誤差が入る。この2つの誤差によって生じる誤差は、計算をするたびに蓄積し、時に近似計算の結果を無意味なものにしてしまう。

微分方程式(1)、すなわち、y’=f(x,y)のオイラー法による積分(5)において、が正確であれば、
である。
ここで、
の誤差を含めば、
右辺第2項をテーラー展開し、は十分小さく高次の項を無視できるとすると、
(10)式を(9)式に代入すると、
したがって、伝播誤差は
である。
よって、では、
となり、では、
となる。
のとき、計算を進めるたびに誤差は増大してゆく。そして、hが小さければ、
であれば、誤差の影響は積分を繰り返すたびに小さくなり、やがて消失してしまう。

次の微分方程式があるとする。
この微分方程式の解は
である。
(13)式にEuler法を用いると、
となる。
誤差も(14)式に従うとすれば、
したがって、誤差因子1+λh
すなわち、
であれば、(伝播)誤差は常に一定の範囲に収まる、つまり、有界で、安定である。
λ>0のとき、(16)を満たすことはできないので、(積分の)計算を進めるたびに、伝播誤差が指数関数的に増大する。

参考までに、λ=±1h=0.1としたときの結果をグラフに示す。






λ=1のとき、誤差が指数関数的に増加していることが分かる。
対して、λ=−1のとき、誤差は0≦x≦1では増加するが、さらに計算が進むに従い、誤差が減少してゆくことが分かる。

また、λh=−2となるように、λ=−2h=1とすると、次のような振動解が得られる。



そして、λ=−3、h=1とすると、この計算はやがて発散してしまう。