オイラー法

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

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

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

定義と公式の導出[編集]

常微分方程式とその初期値問題を次のように定める。

時間の刻み幅を h とする。TF 時間後の数値解を求めるために、まずは時間を離散化し、tn = t0 + nh とすると、オイラー法は次の公式で定義される。

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

ここで y′(t) を微分方程式により f(t, y) に変換すると上記式が

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

常微分方程式系の場合、y に置き換えて方法はそのまま適用できる。

オイラー法が陽公式である。すなわち、現在値を計算するために必要なのが過去の値のみである。

収束性と安定性[編集]

ピンク色の円板はオイラー法の絶対安定性領域である。

数値解析における収束性は、おおよそ刻み幅 h を十分に小さくすると、方法の局所誤差(の絶対値)も小さくなることを意味する。時間 tn での局所誤差を とする。数学的に、収束性は

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

y(tn + h) のテイラー展開からオイラー法の公式を引いて両辺の絶対値を取ると

となる。解の滑らかさの仮設よりリプシッツ連続を用いて、不等式

を得る。ここでの のリプシッツ定数である。三角不等式より上記の両式を合わせて、

という漸化式になる。C は定数であり、h2 の係数の絶対値と考えても大差はない。 を使ってこの漸化式を解くと上界

がある(帰納法による証明も可能である)。ここで、Cmax も定数である。固定された時間 での局所誤差の上界はゆえに

(ここで不等式 を使った)。上記式から h0 の極限で局所誤差も 0 に収束する。すなわち、オイラー法は収束である。 そのうえ、ex のテイラー展開を用いて、 であることも明らかになる。したがって、オイラー法は1次方法となる。

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

残念ながらオイラー法は、絶対安定性領域 (region of absolute stability) が という左複素数平面の円板であって、A-安定な方法ではない。そのせいで、実装するときに方程式の硬さを予め計算しなければならない。硬い方程式の場合では、他の方法を試そう。

[編集]

簡単な例として、次の1階常微分方程式を考えよう:

この方程式に対するのオイラー法は

という漸化式になる。この漸化式は厳密解を求めることができて、初期値を用いて、

となる。この例では、微分方程式の厳密解を直接に求めることができる。解いて厳密解は

となる。x = nh のときの誤差は

となる。ex のテイラー展開と二項定理を用いて等式

は明らかになる。故に、この例でオイラー法の局所誤差は O(h2) であり、1次方法となる。すなわち、

したがって、この表示から h0 の極限で局所誤差が 0 に収束することが分かる。

後退オイラー法[編集]

前に述べたように、オイラー法は数値的不安定である。硬い微分方程式の解を計算するときに刻み幅を非常に小さくしないと近似解は厳密解に収束しない。そのような方程式の近似解を求めるために、数値的安定な方法が必要となる。安定性を持つ方法の中では、後退オイラー法 (backward Euler method) が一番シンプルな方法である。y(t + h) の代わりに、y(t)t + h に対するテイラー展開を考える

前と同じ置き換えをすると、次の公式となる。

の項を切り捨てて、それが後退オイラー法の公式となる。

右側に の項が存在するため、後退オイラー法は陰公式となる。すなわち、現在値を求めるために過去の数値だけではなく、現在や未来の数値を知らなければならない(後退オイラー法では未来値に依存しない)。結果として、一時刻ごとに方程式系を解かなければならない。ゆえに、特に非線型方程の場合、計算コストが大分上がる。

とはいえ、この方法はA-安定 (A-stable) である。よって近似解は刻み幅に関係なく収束する。後退オイラー法も普通は使われない。

拡張[編集]

オイラー法は1次方法である。1次方法の精度がとても悪いので実践では使えない。そのため、もっと次数の高い方法が必要となる。オイラー法と後退オイラー法の公式をもとにして平均値を取ると次の公式となる。

これは微分方程式での台形公式である。有限差分法を用いて偏微分方程式に適用するときはクランク・ニコルソン法とも呼ばれる。この方法が2次方法でA-安定であることを証明できる[1]

台形公式は見ての通り陰公式である。それを陽公式にも変換できる。yn+1をもう一度オイラー法で近似すると次の公式となる。

これはホイン法英語版(または改良オイラー法, improved Euler method) とよばれる陽公式である。台形公式と同じ2次方法であるけど、A-安定な方法ではない。修正オイラー法は、もっともシンプルな2段ルンゲ=クッタ法である。

しかし、2次方法はオイラー法より精度が遥かに高いが、実践で使うにはまだ精度が足りない。現在よく使われているのが高次のルンゲ=クッタ法である(MATLABのコマンドode23は3段3次ルンゲ=クッタ法で、ode45は6段5次のルンゲ=クッタ法である[2])。

脚注[編集]

  1. ^ Iserles 2008, Section 1.3
  2. ^ Cleve Moler. “Ordinary Differential Equation Solvers ODE23 and ODE45”. 2016年12月16日閲覧。

参考文献[編集]

  • Iserles, Arieh (2008), A First Course in the Numerical Analysis of Differential Equations (Second Edition), Cambridge University Press, ISBN 978-0-521-73490-5 .