next up previous contents
Next: 5.10.2 スキームの数値的安定性 Up: 5.10 常微分方程式の初期値問題 補足 Previous: 5.10 常微分方程式の初期値問題 補足

5.10.1 数値解法の次数(order)

常微分方程式の初期値問題(I.V.P.)

(5.9) $\displaystyle \frac{d x}{d t}$ $\textstyle =$ $\displaystyle f(t,x) \quad \hbox{($t\in I\DefEq (a,b)$)}$
(5.10) $\displaystyle x(a)$ $\textstyle =$ $\displaystyle x_0$

に対する $k$ 段法($k$-step formula)

\begin{eqnarray*}
x_{n+k} &=& a_0 x_n + a_1 x_{n+1} + \cdots + a_{k-1} x_{n+k-1...
...,x_{n+k};h) \\
& & \qquad\hbox{($a_0,\cdots,a_{k-1}$\ は定数)}
\end{eqnarray*}

の次数(order) が(少なくとも) $m$ であるとは、$C^m$-級の一意解を持つ任 意の I.V.P. に適用した場合に、局所打ち切り誤差

\begin{displaymath}
\tau(t,h) \DefEq
\frac{1}{h} \left[x(t+kh) - L(t,\cdots, t+kh, x(t), \cdots, x(t+kh))
\right]
\end{displaymath}

$t$ に関して一様に $O(h^m)\;$ (as $h\downarrow 0$) であることと定義 した。ここで $h$ は刻み幅 (stepsize) である。多くの場合、累積打ち切り 誤差 $\Vert x(b) - x_N\Vert$$O(h^m)$ になると期待される。

Euler 法は $1$ 次、古典的 Runge-Kutta 法は $4$ 次の公式である。そこ で例えば $x'(t)=x$    ($t\in (0,1)$), $\;x(0)=1$ という初期値問題 に適用した場合の累積誤差を表示したものが次の図である(横軸は区間の分割 数 $N$, 縦軸は累積打ち切り誤差で、いずれも対数目盛)。

\includegraphics[width=7cm]{figure/euler-error.ps}     \includegraphics[width=7cm]{figure/runge-error.ps}
(左が Euler 法によるもの、右が Runge-Kutta 法によるもの)

実はこの問題の場合、 Euler 法では $x_{n+1} = (1+h) x_n$, Runge-Kutta 法では $x_{n+1}= (1 + h + h^2/2 + h^3/{3!} + h^4/{4!})\, x_n$ となる。 $x(t+h) = e^h x(t) = (1 + h + h^2/2 + h^3/{3!} + h^4/{4!} + \cdots +
h^n/{n!} + \cdots)\, x(t)$ であるから、Euler 法は $1$ 次の項まで、 Runge-Kutta 法は $4$ 次の項まであっていると言える。


next up previous contents
Next: 5.10.2 スキームの数値的安定性 Up: 5.10 常微分方程式の初期値問題 補足 Previous: 5.10 常微分方程式の初期値問題 補足
Masashi Katsurada
平成17年6月2日