アダムス法
定義 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} ) $$
アダムス・バッシュフォースメソッド
係数 $\displaystyle \gamma_{j} := {{1} \over {j!} } \int_{0}^{1} s (s +1) \cdots (s+ j - 1) dx$ に対して、 $$ y_{n+1} = y_{n} + h \sum_{j=0}^{p} \gamma_{j} \Delta^{j} y_{n}' $$ を($p$次の) アダムス・バッシュフォースメソッドと呼ぶ。
- $p=0$ : $$y_{n+1} = y_{n} + h y_{n} ' $$
- $p=1$ : $$y_{n+1} = y_{n} + {{h} \over {2}} ( 3 y_{n}' - y_{n-1}' )$$
- $p=2$ : $$y_{n+1} = y_{n} + {{h} \over {12}} ( 23 y_{n}' - 16 y_{n-1}' + 5 y_{n-2}' )$$
- $p=3$ : $$y_{n+1} = y_{n} + {{h} \over {24}} ( 55 y_{n}' - 59 y_{n-1}' + 37 y_{n-2}' - 9 y_{n-3}' )$$
アダムス・モールトンメソッド
係数 $\displaystyle \delta_{j} := {{1} \over {j!} } \int_{0}^{1} (s - 1 ) s (s +1) \cdots (s+ j - 2) dx$ に対して、 $$ y_{n+1} = y_{n} + h \sum_{j=0}^{p} \delta_{j} \nabla^{j} y_{n+1}' $$ を($p$次の) アダムス・モールトンメソッドと呼ぶ。
- $p=0$ : $$y_{n+1} = y_{n} + h y_{n} ' $$
- $p=1$ : $$y_{n+1} = y_{n} + {{h} \over {2}} ( y_{n+1}' + y_{n}' )$$
- $p=2$ : $$y_{n+1} = y_{n} + {{h} \over {12}} ( 5 y_{n+1}' + 8 y_{n}' - y_{n-1}' )$$
- $p=3$ : $$y_{n+1} = y_{n} + {{h} \over {24}} ( 9 y_{n+1}' + 19 y_{n}' -5 y_{n-1}' + y_{n-2}' )$$
説明
アダムスメソッドはマルチステップメソッドとして、ステップサイズ$h$とメソッドの次数を変えながら使われるプレディクター・コレクターアルゴリズムでよく使われる。例えば、$1$次のアダムス・バッシュフォースメソッドをプレディクターとし、$2$次のアダムス・モールトンメソッドをコレクターとするアルゴリズムは、オイラーメソッドをプレディクターとし、台形メソッドをコレクターとするアルゴリズムそのものだ。
一般的に、アダムス・モールトンメソッドはアダムス・バッシュフォースメソッドに比べてエラーが少ないだけでなく、安定性も良い。その理由は、メソッドの形を見れば簡単に理解できる。まず、アダムス・バッシュフォースメソッドはエクスプリシットメソッドであり、アダムス・モールトンメソッドはインプリシットメソッドだからだ。ODEを解くプレディクター・コレクターアルゴリズムはこれらのアダムスメソッドを適切に混ぜて使う。
Atkinson. (1989). An Introduction to Numerical Analysis(2nd Edition): p385~388. ↩︎