Matlab may be used as follows to find the derivative using Richardson extrapolation. Note that matrices start at (1,1), so we must make an adjustment. We assume a function y = f(x) is defined.
x = 1; h = 0.5; eps_step = 0.00001; R(1, 1) = (f(x + h) - f(x - h))/(2*h); for i=1:100 h = h/2; R(i + 1, 1) = (f(x + h) - f(x - h))/(2*h); for j=1:i R(i + 1, j + 1) = (4^j*R(i + 1, j) - R(i, j))/(4^j - 1); end if ( abs( R(i + 1, i + 1) - R(i, i) ) < eps_step ) break; elseif ( i == 100 ) error( 'Richardson extrapolation failed to converge' ); end end
Copyright ©2005 by Douglas Wilhelm Harder. All rights reserved.