Topic 12.3: Richardson Extrapolation (Maple)

Contents Previous Chapter Start of Chapter Previous Topic Introduction Notes Theory HOWTO Examples Engineering Error Questions Matlab Maple Next Topic Next Chapter

Maple may be used as follows to find the derivative using Richardson extrapolation:

f := x -> exp(-x) * sin(x) - 0.5 * exp(-x) * cos(x);
x := 1;
h := 0.5;
eps_step := 0.00001;
R[0, 0] := (f(x + h) - f(x - h))/(2*h);
for i from 1 to 100 do
   h := h/2;

   R[i, 0] := (f(x + h) - f(x - h))/(2*h);

   for j from 1 to i do
      R[i, j] := (4^j*R[i, j - 1] - R[i - 1, j - 1])/(4^j - 1);
   end do;

   if abs( R[i,i] - R[i - 1, i - 1] ) < eps_step then
      break;
   elif i = 100 then
      error "Richardson extrapolation failed to converge";
   end if;
end do;

Copyright ©2005 by Douglas Wilhelm Harder. All rights reserved.