logo

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

マルチステップ法

定義 1

DR2D \subset \mathbb{R}^2で定義された連続関数に対して、初期値問題{y=f(x,y)(y(x0),,y(xp))=(Y0,,Yp)\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) ) = (Y_{0}, \cdots , Y_{p} ) \end{cases}が与えられているとする。区間(a,b)(a,b)ax0<x1<<xn<xNba \le x_{0} < x_{1} < \cdots < x_{n} < \cdots x_{N} \le bのようなノードポイントに分割したとしよう。特に、十分に小さいh>0h > 0に対してxj=x0+jhx_{j} = x_{0} + j hとすると、初期値と0pm0 \le p \le mに対して、ap0a_{p} \ne 0またはbp0b_{p} \ne 0ならば、以下を**(p+1)(p+1)ステップメソッド**と呼ぶ。 yn+1=j=0pajynj+hj=1pbjf(xnj,ynj) 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} )

説明

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

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

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


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