オイラー法

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

オイラー法(―ほう)(Euler's Method) とは、1階常微分方程式数値解法の一つ。

1階常微分方程式\frac{dy}{dx} = f(x,y)と初期値x0,y0(=Y0)が与えられた場合に、xn=xn-1+h対するynの近似値Ynは、以下のようにあらわされる。(ここでhは、0<hで小さい数である。)

Y_{n} = Y_{n-1}+hf(x_{n-1},Y_{n-1}),\, (n=1,2,3,...)

この方法は、数学的に理解しやすく、プログラム的にも簡単なので、数値解析の初歩的な学習問題としてよく取りあげられる。しかし、1階常微分方程式の数値解法としては誤差が蓄積されるため、精度が悪く、元の微分方程式によってはいかなるhをとっても元の方程式の解に収束しないこともある方法なので、学習目的以外であまり使われない。

方程式によってはhを小さく取れば、計算時間はかかるもののある程度は精度が出る、しかし、極端にhを小さく取ると丸め誤差が累積してきて逆に精度が落ちることもあり得る。

説明[編集]

微分の定義から

 \frac{dy}{dx} = f(x,y)= \lim_{h \rightarrow 0} \frac{y(x+h)-y(x)}{h}

hが小さいときは、

 f(x,y) \simeq \frac{y(x+h)-y(x)}{h}

すなわち

y(x+h) \simeq y(x)+hf(x,y)

x,yの初期値をx0,y0とし、 x1=x0+h,x2=x1+h,...y1=y(x1),y2=y(x2),...などとすると、

y_{n} \simeq y_{n-1}+hf(x_{n-1},y_{n-1}),\, (n=1,2,3,...)

ここで

Y_{n} = Y_{n-1}+hf(x_{n-1},Y_{n-1})

とおくと、Ynは、ynの近似値になる。

[編集]

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

 \frac{dy }{dx}(x)= 3y(x) + 2 \,

これを解くには、差分商

\frac{y(x+h) - y(x)}{h} \approx \frac{dy }{dx}(x),\, (h \to 0)

を用いて

 y(x+h) = y(x) + h(3y(x)+2) \,

と近似する。Yn=y(x0+h n),(n=0,1,2,...)とすると

 Y_n = Y_{n-1} + h(3Y_{n-1}+2), \, (n=1,2,3,...)

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

 Y_n=\left(Y_0+\frac{2}{3}\right)(1+3h)^n-\frac{2}{3}, \, (n=1,2,3,...)

となる。 この例の場合、元の微分方程式の厳密解は

 y(x)=\left(y(x_0)+\frac{2}{3}\right)e^{3(x-x_0)}-\frac{2}{3}

と書けるので、誤差はx=x0+h nの関係に気をつければ、

Y_n-y(x)=\left(y(x_0)+\frac{2}{3}\right)\left\{(1+3h)^{\frac{x-x_0}{h}}-e^{3(x-x_0)}\right\}

となる。この式はhについてのテイラー展開

(1+3h)^{\frac{x-x_0}{h}}=e^{3(x-x_0)}-\frac{9}{2}(x-x_0)e^{3(x-x_0)}h+O\left(h^2\right)

を用いて、

Y_n-y(x)=\left(y(x_0)+\frac{2}{3}\right)\left\{-\frac{9}{2}(x-x_0)e^{3(x-x_0)}\right\}h+O\left(h^2\right)

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