オイラー法
[Wikipedia|▼Menu]

オイラー法(オイラーほう、: Euler method) とは、常微分方程式数値解法の一つである。この方法は、数学的に理解しやすく、プログラム的にも簡単なので、数値解析の初歩的な学習問題としてよく取りあげられる。

しかし、1階段数常微分方程式の数値解法としては誤差が蓄積されるため、精度が悪く、元の微分方程式によってはいかなる h をとっても元の方程式の解に収束しないこともある方法なので、学習目的以外であまり使われない。
目次

1 定義と公式の導出

2 収束性と安定性

3 例

4 後退オイラー法

5 拡張

6 脚注

7 参考文献

定義と公式の導出

常微分方程式とその初期値問題を次のように定める。 y ′ = f ( t , y ) , y ( t 0 ) = y 0 . {\displaystyle y'=f(t,y),\quad y(t_{0})=y_{0}.}

時間の刻み幅を h とする。TF 時間後の数値解を求めるために、まずは時間を離散化し、tn = t0 + nh とすると、オイラー法は次の公式で定義される。 y n + 1 = y n + h f ( t n , y n ) , t n ≤ T F . {\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}),\quad t_{n}\leq T_{F}.}

ここで、yn は tn での数値解である。この公式を導出するために、解の存在性と滑らかさピカール・リンデレフの定理より保証されると想定する(特に、f(t, y) はリプシッツ連続である)。上記の初期値問題の厳密解(ときには解析解)を y にし、y(t + h) のテイラー展開を考える: y ( t + h ) = y ( t ) + y ′ ( t ) h + 1 2 y ″ ( t ) h 2 + O ( h 3 ) . {\displaystyle y(t+h)=y(t)+y'(t)h+{\frac {1}{2}}y''(t)h^{2}+O(h^{3}).}

ここで y′(t) を微分方程式により f(t, y) に変換すると上記式が y ( t + h ) = y ( t ) + f ( t , y ) h + O ( h 2 ) {\displaystyle y(t+h)=y(t)+f(t,y)h+O(h^{2})}

となる。O(h2) の項を切り捨てて、t を tn に、y(tn)(厳密解)を yn(数値解)に置き換えるとオイラー法の公式である。他に微分の定義から公式を導出する方法も存在する。

オイラー法は陽公式である。すなわち、過去の値のみが未来の値の計算に必要である。
収束性と安定性 複素平面でzがピンク色の円板内部領域はオイラー法の絶対安定性領域である。

数値解析における収束性は、おおよそ刻み幅 h を十分に小さくすると、方法の局所誤差(の絶対値)も小さくなることを意味する。時間 tn での局所誤差を e n , h = y ( t n ) − y n {\displaystyle e_{n,h}=y(t_{n})-y_{n}} とする。数学的に、収束性は lim h → 0 ‖ e n , h ‖ = 0 {\displaystyle \lim _{h\to 0}\|e_{n,h}\|=0}

を意味する。原則として、収束しない、また収束性を証明できない方法は絶対に使っていけない。そのため、オイラー法の収束性を示す必要がある。

y(tn + h) のテイラー展開からオイラー法の公式を引いて両辺の絶対値を取ると ‖ e n + 1 , h ‖ = ‖ e n + h + h ( f ( t n , y ( t n ) ) − f ( t n , y n ) ) + O ( h 2 ) ‖ {\displaystyle \|e_{n+1,h}\|=\left\|e_{n+h}+h{\Bigl (}f{\bigl (}t_{n},y(t_{n}){\bigr )}-f(t_{n},y_{n}){\Bigr )}+O(h^{2})\right\|}

となる。解の滑らかさの仮設よりリプシッツ連続を用いて、不等式 ‖ f ( t n , y ( t n ) ) − f ( t n , y n ) ‖ ≤ λ ‖ e n , h ‖ {\displaystyle \|f(t_{n},y(t_{n}))-f(t_{n},y_{n})\|\leq \lambda \|e_{n,h}\|}

を得る。ここでの λ {\displaystyle \lambda } は f {\displaystyle f} のリプシッツ定数である。三角不等式より上記の両式を合わせて、 ‖ e n + 1 , h ‖ ≤ ( 1 + h λ ) ‖ e n , h ‖ + C h 2 {\displaystyle \|e_{n+1,h}\|\leq (1+h\lambda )\|e_{n,h}\|+Ch^{2}}

という漸化式になる。C は定数であり、h2 の係数の絶対値と考えても大差はない。 e 0 , h = y 0 − y ( t 0 ) = 0 {\displaystyle e_{0,h}=y_{0}-y(t_{0})=0} を使ってこの漸化式を解くと上界 ‖ e n , h ‖ ≤ C m a x h λ ( ( 1 + h λ ) n − 1 ) {\displaystyle \|e_{n,h}\|\leq {\frac {C_{\mathrm {max} }h}{\lambda }}\left((1+h\lambda )^{n}-1\right)}

がある(帰納法による証明も可能である)。ここで、Cmax も定数である。固定された時間 t n = t 0 + n h {\displaystyle t_{n}=t_{0}+nh} での局所誤差の上界はゆえに ‖ e n , h ‖ ≤ C m a x h λ ( e ( t n − t 0 ) λ − 1 ) {\displaystyle \|e_{n,h}\|\leq {\frac {C_{\mathrm {max} }h}{\lambda }}(e^{(t_{n}-t_{0})\lambda }-1)}

(ここで不等式 1 + x ≤ e x {\displaystyle 1+x\leq e^{x}} を使った)。上記式から h が 0 の極限で局所誤差も 0 に収束する。すなわち、オイラー法は収束である。 そのうえ、ex のテイラー展開を用いて、 ‖ e n , h ‖ = O ( h 2 ) {\displaystyle \|e_{n,h}\|=O(h^{2})} であることも明らかになる。したがって、オイラー法は1次方法となる。

収束性を示したことで、方法が使えるようになる。しかし、収束性が保証できるのは、h が十分小さい場合、近似解が厳密解に収束することのみである。一体 h をどれだけ小さくすれば正しい近似解を得られるのかは一切伝えていない。例えば h を 10?12 以下にしないと近似解が厳密解に近付かない場合、最低限でも 1012 時間での解を計算しなければならないので効率が大きく下がる。そのため、もし h に関係なく近似解が思わぬ行動を取れないことを示せるなら、h を自由に設定できてそのような心配はいらなくなる。上述の条件が満たされる方法は、おおよそ数値的に安定(正しくいうとA-安定)である。厳密な定義や他の安定性(L-安定、零点安定他)については、硬い微分方程式(英語版)を参照。

線形微分方程式 y ′ = k y {\displaystyle y'=ky} をオイラー法により求める場合 z = h k {\displaystyle z=hk} を複素平面にとったとき図の円より外側の領域で数値解が不安定となる。 { z ∈ C ∣ 。 z + 1 。 ≤ 1 } , {\displaystyle \{z\in \mathbf {C} \mid |z+1|\leq 1\},}

図の領域は線形安定領域と呼ばれる。[1]例えば k = − 2.3 {\displaystyle k=-2.3} の場合では、時間の刻み幅 h = 1 {\displaystyle h=1} では z = h k = − 2.3 {\displaystyle z=hk=-2.3} となる。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:27 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef