A multi-step method computes w i + 1 w_{i+1} w i + 1 from several previous approximations, not just w i w_i w i . More accurate earlier approximations are then folded into the current step.
An m m m -step method for the IVP y ′ ( t ) = f ( t , y ) y'(t) = f(t, y) y ′ ( t ) = f ( t , y ) has a difference equation
w i + 1 = a m − 1 w i + a m − 2 w i − 1 + ⋯ + a 0 w i + 1 − m + h [ b m f ( t i + 1 , w i + 1 ) + b m − 1 f ( t i , w i ) + ⋯ + b 0 f ( t i + 1 − m , w i + 1 − m ) ] \begin{aligned}
w_{i+1} = {}& a_{m-1} w_i + a_{m-2} w_{i-1} + \cdots + a_0 w_{i+1-m} \\
& + h\big[ b_m f(t_{i+1}, w_{i+1}) + b_{m-1} f(t_i, w_i) + \cdots + b_0 f(t_{i+1-m}, w_{i+1-m}) \big]
\end{aligned} w i + 1 = a m − 1 w i + a m − 2 w i − 1 + ⋯ + a 0 w i + 1 − m + h [ b m f ( t i + 1 , w i + 1 ) + b m − 1 f ( t i , w i ) + ⋯ + b 0 f ( t i + 1 − m , w i + 1 − m ) ]
for i = m − 1 , m , … , N − 1 i = m-1, m, \ldots, N-1 i = m − 1 , m , … , N − 1 , with constants a 0 , … , a m − 1 a_0, \ldots, a_{m-1} a 0 , … , a m − 1 and b 0 , … , b m b_0, \ldots, b_m b 0 , … , b m , and h = b − a N h = \dfrac{b-a}{N} h = N b − a .
Starting values w 0 = α w_0 = \alpha w 0 = α and w 1 , … , w m − 1 w_1, \ldots, w_{m-1} w 1 , … , w m − 1 come from a one-step method such as Runge-Kutta .
Explicit and Implicit Methods
Explicit
b m = 0 b_m = 0 b m = 0 . w i + 1 w_{i+1} w i + 1 is given directly by previously determined values.
Implicit
b m ≠ 0 b_m \neq 0 b m = 0 . w i + 1 w_{i+1} w i + 1 appears on both sides and must be solved for.
Adams Methods
Integrating y ′ = f ( t , y ) y' = f(t, y) y ′ = f ( t , y ) over [ t i , t i + 1 ] [t_i, t_{i+1}] [ t i , t i + 1 ]
y ( t i + 1 ) = y ( t i ) + ∫ t i t i + 1 f ( t , y ( t ) ) d t y(t_{i+1}) = y(t_i) + \int_{t_i}^{t_{i+1}} f(t, y(t))\, \text{d}t y ( t i + 1 ) = y ( t i ) + ∫ t i t i + 1 f ( t , y ( t )) d t
f ( t , y ( t ) ) f(t, y(t)) f ( t , y ( t )) is unknown, so it is replaced by a polynomial interpolating the m m m most recent points, which is then integrated.
Below, f k = f ( t k , w k ) f_k = f(t_k, w_k) f k = f ( t k , w k ) and μ i \mu_i μ i lies in the interval spanned by the points used.
Adams-Bashforth Explicit Methods
2-step, with τ i + 1 ( h ) = 5 12 y ′ ′ ′ ( μ i ) h 2 \tau_{i+1}(h) = \dfrac{5}{12} y'''(\mu_i) h^2 τ i + 1 ( h ) = 12 5 y ′′′ ( μ i ) h 2
w i + 1 = w i + h 2 [ 3 f i − f i − 1 ] w_{i+1} = w_i + \frac{h}{2}\left[ 3 f_i - f_{i-1} \right] w i + 1 = w i + 2 h [ 3 f i − f i − 1 ]
3-step, with τ i + 1 ( h ) = 3 8 y ( 4 ) ( μ i ) h 3 \tau_{i+1}(h) = \dfrac{3}{8} y^{(4)}(\mu_i) h^3 τ i + 1 ( h ) = 8 3 y ( 4 ) ( μ i ) h 3
w i + 1 = w i + h 12 [ 23 f i − 16 f i − 1 + 5 f i − 2 ] w_{i+1} = w_i + \frac{h}{12}\left[ 23 f_i - 16 f_{i-1} + 5 f_{i-2} \right] w i + 1 = w i + 12 h [ 23 f i − 16 f i − 1 + 5 f i − 2 ]
4-step, with τ i + 1 ( h ) = 251 720 y ( 5 ) ( μ i ) h 4 \tau_{i+1}(h) = \dfrac{251}{720} y^{(5)}(\mu_i) h^4 τ i + 1 ( h ) = 720 251 y ( 5 ) ( μ i ) h 4
w i + 1 = w i + h 24 [ 55 f i − 59 f i − 1 + 37 f i − 2 − 9 f i − 3 ] w_{i+1} = w_i + \frac{h}{24}\left[ 55 f_i - 59 f_{i-1} + 37 f_{i-2} - 9 f_{i-3} \right] w i + 1 = w i + 24 h [ 55 f i − 59 f i − 1 + 37 f i − 2 − 9 f i − 3 ]
5-step, with τ i + 1 ( h ) = 95 288 y ( 6 ) ( μ i ) h 5 \tau_{i+1}(h) = \dfrac{95}{288} y^{(6)}(\mu_i) h^5 τ i + 1 ( h ) = 288 95 y ( 6 ) ( μ i ) h 5
w i + 1 = w i + h 720 [ 1901 f i − 2774 f i − 1 + 2616 f i − 2 − 1274 f i − 3 + 251 f i − 4 ] w_{i+1} = w_i + \frac{h}{720}\left[ 1901 f_i - 2774 f_{i-1} + 2616 f_{i-2} - 1274 f_{i-3} + 251 f_{i-4} \right] w i + 1 = w i + 720 h [ 1901 f i − 2774 f i − 1 + 2616 f i − 2 − 1274 f i − 3 + 251 f i − 4 ]
Adams-Moulton Implicit Methods
2-step, with τ i + 1 ( h ) = − 1 24 y ( 4 ) ( μ i ) h 3 \tau_{i+1}(h) = -\dfrac{1}{24} y^{(4)}(\mu_i) h^3 τ i + 1 ( h ) = − 24 1 y ( 4 ) ( μ i ) h 3
w i + 1 = w i + h 12 [ 5 f ( t i + 1 , w i + 1 ) + 8 f i − f i − 1 ] w_{i+1} = w_i + \frac{h}{12}\left[ 5 f(t_{i+1}, w_{i+1}) + 8 f_i - f_{i-1} \right] w i + 1 = w i + 12 h [ 5 f ( t i + 1 , w i + 1 ) + 8 f i − f i − 1 ]
3-step, with τ i + 1 ( h ) = − 19 720 y ( 5 ) ( μ i ) h 4 \tau_{i+1}(h) = -\dfrac{19}{720} y^{(5)}(\mu_i) h^4 τ i + 1 ( h ) = − 720 19 y ( 5 ) ( μ i ) h 4
w i + 1 = w i + h 24 [ 9 f ( t i + 1 , w i + 1 ) + 19 f i − 5 f i − 1 + f i − 2 ] w_{i+1} = w_i + \frac{h}{24}\left[ 9 f(t_{i+1}, w_{i+1}) + 19 f_i - 5 f_{i-1} + f_{i-2} \right] w i + 1 = w i + 24 h [ 9 f ( t i + 1 , w i + 1 ) + 19 f i − 5 f i − 1 + f i − 2 ]
4-step, with τ i + 1 ( h ) = − 3 160 y ( 6 ) ( μ i ) h 5 \tau_{i+1}(h) = -\dfrac{3}{160} y^{(6)}(\mu_i) h^5 τ i + 1 ( h ) = − 160 3 y ( 6 ) ( μ i ) h 5
w i + 1 = w i + h 720 [ 251 f ( t i + 1 , w i + 1 ) + 646 f i − 264 f i − 1 + 106 f i − 2 − 19 f i − 3 ] w_{i+1} = w_i + \frac{h}{720}\left[ 251 f(t_{i+1}, w_{i+1}) + 646 f_i - 264 f_{i-1} + 106 f_{i-2} - 19 f_{i-3} \right] w i + 1 = w i + 720 h [ 251 f ( t i + 1 , w i + 1 ) + 646 f i − 264 f i − 1 + 106 f i − 2 − 19 f i − 3 ]
The m m m -step Adams-Bashforth method and the ( m − 1 ) (m-1) ( m − 1 ) -step Adams-Moulton method both use m m m evaluations of f f f per step and have error of order O ( h m ) O(h^m) O ( h m ) . The implicit method is the more accurate of the pair.
Predictor-Corrector Method
Implicit methods usually cannot be solved for w i + 1 w_{i+1} w i + 1 in closed form. An explicit method and an implicit method are combined.
Predict
Compute w i + 1 ( p ) w_{i+1}^{(p)} w i + 1 ( p ) with an explicit method.
Correct
Substitute w i + 1 ( p ) w_{i+1}^{(p)} w i + 1 ( p ) into the right side of an implicit method to get w i + 1 w_{i+1} w i + 1 .
A standard choice uses Runge-Kutta for the starting values, Adams-Bashforth 4-step as predictor, and Adams-Moulton 3-step as corrector. This is more accurate than either Adams method used alone.
Worked Example
IVP y ′ ( t ) = y − t 2 + 1 y'(t) = y - t^2 + 1 y ′ ( t ) = y − t 2 + 1 , 0 ≤ t ≤ 2 0 \leq t \leq 2 0 ≤ t ≤ 2 , y ( 0 ) = 0.5 y(0) = 0.5 y ( 0 ) = 0.5 , with h = 0.2 h = 0.2 h = 0.2 , by Adams-Bashforth 2-step. Exact solution y ( t ) = ( t + 1 ) 2 − 0.5 e t y(t) = (t+1)^2 - 0.5 e^t y ( t ) = ( t + 1 ) 2 − 0.5 e t , used only to check the result.
The 2-step method needs w 0 w_0 w 0 and w 1 w_1 w 1 before it can start. w 0 = α = 0.5 w_0 = \alpha = 0.5 w 0 = α = 0.5 is given; w 1 w_1 w 1 is computed with one step of order 4 Runge-Kutta .
Starting value w 1 w_1 w 1 by Runge-Kutta, t 0 = 0 t_0 = 0 t 0 = 0 , w 0 = 0.5 w_0 = 0.5 w 0 = 0.5
k 1 = 0.2 f ( 0 , 0.5 ) = 0.3 k 2 = 0.2 f ( 0.1 , 0.5 + 0.15 ) = 0.328 k 3 = 0.2 f ( 0.1 , 0.5 + 0.164 ) = 0.3308 k 4 = 0.2 f ( 0.2 , 0.5 + 0.3308 ) = 0.35816 w 1 = 0.5 + 1 6 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) = 0.829293 \begin{aligned}
k_1 &= 0.2\, f(0,\ 0.5) = 0.3 \\
k_2 &= 0.2\, f(0.1,\ 0.5 + 0.15) = 0.328 \\
k_3 &= 0.2\, f(0.1,\ 0.5 + 0.164) = 0.3308 \\
k_4 &= 0.2\, f(0.2,\ 0.5 + 0.3308) = 0.35816 \\
w_1 &= 0.5 + \tfrac{1}{6}\left( k_1 + 2k_2 + 2k_3 + k_4 \right) = 0.829293
\end{aligned} k 1 k 2 k 3 k 4 w 1 = 0.2 f ( 0 , 0.5 ) = 0.3 = 0.2 f ( 0.1 , 0.5 + 0.15 ) = 0.328 = 0.2 f ( 0.1 , 0.5 + 0.164 ) = 0.3308 = 0.2 f ( 0.2 , 0.5 + 0.3308 ) = 0.35816 = 0.5 + 6 1 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) = 0.829293
Step to t 2 = 0.4 t_2 = 0.4 t 2 = 0.4 by Adams-Bashforth
f 0 = w 0 − 0.0 2 + 1 = 1.5 f 1 = w 1 − 0.2 2 + 1 = 1.789293 w 2 = w 1 + 0.2 2 [ 3 f 1 − f 0 ] = 0.829293 + 0.1 ( 3.867879 ) = 1.216081 \begin{aligned}
f_0 &= w_0 - 0.0^2 + 1 = 1.5 \\
f_1 &= w_1 - 0.2^2 + 1 = 1.789293 \\
w_2 &= w_1 + \frac{0.2}{2}\left[ 3 f_1 - f_0 \right] = 0.829293 + 0.1\,(3.867879) = 1.216081
\end{aligned} f 0 f 1 w 2 = w 0 − 0. 0 2 + 1 = 1.5 = w 1 − 0. 2 2 + 1 = 1.789293 = w 1 + 2 0.2 [ 3 f 1 − f 0 ] = 0.829293 + 0.1 ( 3.867879 ) = 1.216081
Exact y ( 0.4 ) ≈ 1.214088 y(0.4) \approx 1.214088 y ( 0.4 ) ≈ 1.214088 .