![]() |
f(x) = e^{x/2}\cos(2\pi x) |
f'(x) = \frac{f(x+h) - f(x-h)}{2h} + O(h^2)
f'(x) = \frac{-f(x+2h) +8 f(x+h)-8f(x-h)+f(x-2h)}{12h} + O(h^4)
Já a Extrapolação de Richardson faz duas estimativas da derivada, uma (D_1) com passo h e outra (D_2) com o passo reduzido h/2, com essas duas estimativas, a nova estimativa mais acurada é dada por:
D = \frac{4D_2 - D_1}{3}
Vejamos um exemplo. Vamos considerar a função f(x) = e^{x/2}\cos(2\pi x)
e calcular sua derivada em x_0 = 1/4. Os resultados, para um passo h = 0,1, são:
D1, D2, D, Derivada teórica:
-6.6688068, -7.0054312, -7.1176393, -7.1197817
Esse passo, mesmo sendo relativamente grande, gerou um resultado satisfatório com um erro relativo de cerca de 0,03\%. O código Scilab é:
//////////////
function f = fb(x)
f = exp(x/2).*cos(2*%pi*x);
endfunction
//////////////
function f = fbd(x)
f = x.*exp(x/2).*cos(2*%pi*x)/2 - exp(x/2)*sin(2*%pi*x)*2*%pi;
endfunction
x = 1/4;
h = 0.1;
d1 = (fb(x+h)-fb(x-h))/(2*h);
h2 = h/2;
d2 = (fb(x+h2)-fb(x-h2))/(2*h2);
d = (4*d2-d1)/3
disp([d1, d2, d, fbd(1/4)]);
Nenhum comentário:
Postar um comentário