equal_l2’s blog

※記載されている内容の正確性は保証しませんが、間違いを指摘していただければ直します。

常微分方程式の数値解法(1) 差分

常微分方程式を数値的に解くためには、積分を離散的に扱う必要がある。

まず、その準備として関数の差分という概念を導入する。

差分は汎関数(のようなもの?)で、3種類ある。

前進差分 \Delta_h[x](t) =  x(t + h) - x(t)

後退差分 \nabla_h[x](t) =  x(t) - x(t-h)

中央差分 \delta_h[x](t) =  x(t+\frac12 h)-x(t-\frac12 h)

十分に小さいhについて、上の差分をhで割れば微分\frac{dx}{dt}の近似になる。
つまりは、
\displaystyle\begin{eqnarray}
\frac{dx}{dt} 
&=& \frac{x(t + h) - x(t)}{h} \\
&=& \frac{x(t) - x(t-h)}{h} \\
&=& \frac{x(t+\tfrac12h)-x(t-\tfrac12h)}{h}
\end{eqnarray}

前進差分、後退差分から得られる微分近似はhの1次の精度であるが、中央差分から得られるそれは2次の精度である。

ただし、振動する関数に対しては中央差分による微分近似が具合が悪くなることもあるようだ。