マルチステップメソッド
定義1
$D \subset \mathbb{R}^2$で定義された連続関数$f$に対して、初期値問題$\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と呼ぶ。計算の際に便利なのは陽的メソッドで、一般に知られている陰的メソッドはパフォーマンスは良いが追加的な計算が必要である。
Atkinson. (1989). An Introduction to Numerical Analysis(2nd Edition): p357. ↩︎
