数値解析 第8回 (3) ホイン法

ホイン法のアイデア

 次はホイン法を紹介します。

 オイラー法では $(9.9)$ の積分を、 区間 $[x_n, x_{n+1}]$ の左端の $x$ 座標を用いて
$f(x,y(x))$ ≒ $f(x_n,y(x_n))$
と考えて、 長方形の面積で近似していました:
$\dps{\int_{x_n}^{x_{n+1}}f(x, y(x))dx}$ ≒ $\dps{h \times f(x_n,y_n)}$
$n=0$ の場合   
ホイン法ではまず、 $(9.9)$ の積分にある意味で「台形公式」を用いて
$\require{color} \dps{\int_{x_n}^{x_{n+1}}f(x, y(x))dx}$ ≒ $\dps{\frac{h}{2}\Big\{f(x_n,\textcolor{blue}{y(x_n)}) + f(x_{n+1},\textcolor{green}{y(x_{n+1})}\Big\}}$
と考えます。ここでも、$\textcolor{blue}{y(x_n)}$, $\textcolor{green}{y(x_{n+1})}$ の真の値は未知ですから、
  • $\textcolor{blue}{y(x_n)}$ には $n$ 番目の近似値 $y_n$ を代入し、
  • $\textcolor{green}{y(x_{n+1})}$ には、$n$ 番目の近似値 $y_n$ をオイラー法の近似式に入れて得られる
    $\dps{\hat y = y_n + h \times f(x_n,y_n)}$
    を代入します。( この $y_n$ はホイン法の近似値です。)
$n=0$ の場合   
( $\hat y$ は $y(x_1)$ の近似値なので、ふつう $f(x_1,\hat y)$ と $f(x_1,y(x_1))$ は違っています。)

ホイン法の公式

公式 $(9.12)$  $\dps{\hat y = y_n + h \times f(x_n,y_n)}$ として
$\dps{y_{n+1}=y_n + \frac{h}{2} \times \left\{f(x_n,y_n)+f(x_{n+1},\hat y)\right\}}$   $(\,n=0,1,\cdots\,)$
※ ホイン法は、オイラー法を改良した「修正オイラー法」のひとつで、この他にもホイン法と呼ばれる公式がいくつもあります。

実行例

 教科書 p.193 図 9.3 では刻み幅 1/1024 で誤差は 0.00052% ほどになり、オイラー法より格段に精度が上がっています。