logo

マルチステップ法 📂数値解析

マルチステップ法

定義 1

$D \subset \mathbb{R}^2$で定義された連続関数に対して、初期値問題$\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) ) = (Y_{0}, \cdots , Y_{p} ) \end{cases}$が与えられているとする。区間$(a,b)$を$a \le x_{0} < x_{1} < \cdots < x_{n} < \cdots x_{N} \le b$のようなノードポイントに分割したとしよう。特に、十分に小さい$h > 0$に対して$x_{j} = x_{0} + j h$とすると、初期値と$0 \le p \le m$に対して、$a_{p} \ne 0$または$b_{p} \ne 0$ならば、以下を**$(p+1)$ステップメソッド**と呼ぶ。 $$ y_{n+1} = \sum_{j=0}^{p} a_{j} y_{n-j} + h \sum_{j = -1}^{p} b_{j} f (x_{n-j} , y_{n-j} ) $$

説明

もちろん、十分に大きな$q \ge 1$と$D \subset \mathbb{R}^2$で定義された$f \in C^{q}(D)$を考えても構わない。この一般的な形で、特に$p=0$であり、$a_{0} = 1 , b_{0} = 1 , b_{-1} = 0$であるならば、オイラーメソッドになる。

マルチステップメソッドは、ワンステップメソッドに比べてより多くのデータ情報を使用するため、通常は精度が高くなる。初期値問題$\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) ) = (Y_{0}, \cdots , Y_{p} ) \end{cases}$に対して、切り捨て誤差truncated errorを $$ T_{n} (Y) := Y_{n+1} - \sum_{j=0}^{p} a_{j} Y_{n-j} + h \sum_{j = -1}^{p} b_{j} Y’_{n-j} $$ としよう。これについて、$\displaystyle \tau_{n} (Y) := {{1} \over {h}} T_{n} (Y) $と書き、$\displaystyle \lim_{h \to 0} \max_{x_{p} \le x_{n} \le b} | \tau_{n} (Y) | = 0$を満たす場合、メソッドが一貫性consistency conditionを持つと言われる。式で書くと複雑に見えるが、簡単に言えば、$h$が小さくなる速さより切り捨て誤差が小さくなる速さの方が速いことを指す。ここで $$ \tau (h) : = \max_{x_{p} \le x_{n} \le b} | \tau_{n} (Y) | = O (h^m) $$ を満たす$m$の中で最も大きい数をメソッドの収束次数order of Convergenceと呼ぶ。

特に$b_{-1} = 0$の場合、$y_{n+1}$は左辺にのみ現れるので、明示的メソッドexplicit methodと呼ばれる。$b_{-1} \ne 0$であれば、$y_{n+1}$が両辺に現れるので、暗黙的メソッドimplicit methodと呼ばれる。計算の際には明示的メソッドが便利だが、一般的に知られている暗黙的メソッドは性能が良いが追加的な計算が必要だ。


  1. Atkinson. (1989). 数値解析入門(第2版): p357. ↩︎