Adams-Moulton Methods
The Adams-Moulton Methods are similarly based on the result
,
but now we use the Lagrange Interpolating Polynomial through the already obtained data points (
) , (
),..., (
) and the point (
) to estimate the value of the integral. Again, we assume a fixed stepsize
.
>
For example, when using a cubic interpolating polynomial through (
) , (
) , (
) and
(
) yields:
> P[3]:=interp([t[i]-2*h,t[i]-h,t[i],t[i]+h],[f(t[i-2],w[i-2]),f(t[i-1],w[i-1]),f(t[i],w[i]),f(t[i+1],w[i+1])],tt);
> int1:=int(P[3],tt=t[i]..t[i]+h);
> simplify(int1);
Which yields the Three-step Adams-Moulton Method:
.
In addition, the local truncation error can be determined from the error term of the Lagrange Interpolating Polynomial:
> lagerr:=(D@@4)(f(xi[i],y(xi[i])))*(tt-t[i]-h)*(tt-t[i])*(tt-t[i]+h)*(tt-t[i]+2*h)/4!;
Since
does not change sign over the integration interval
, we can use the Weighted Mean Value Theorem so that there exists a
in the interval
such that
> errint:=Int(lagerr,tt=t[i]..t[i]+h):
> errint=(D@@4)(f(nu[i],y(nu[i])))/4!*Int((tt-t[i]-h)*(tt-t[i])*(tt-t[i]+h)*(tt-t[i]+2*h),tt=t[i]..t[i]+h);
This yields the error,
> err:=(D@@4)(f(nu[i],y(nu[i])))/4!*int((tt-t[i]-h)*(tt-t[i])*(tt-t[i]+h)*(tt-t[i]+2*h),tt=t[i]..t[i]+h);
The truncation error is then given by
.
>
Adams-Moulton Methods are implicit methods and need an initial guess for
to start the iteration. The formulae can be used either to iterate until a certain convergence is obtained or to iterate a given number of times.
>
The Three-Step Adams-Moulton method (
) requires 4 function evaluations, the same as the Four-Step Adams-Bashforth. Both have truncation errors of order
but typically the implicit Adams-Moulton Method has a smaller coefficient in the truncation error. This leads to better performance for the implicit method.
>