Estoy tratando de calcular la segunda derivada de sin(x) 0.4 h=10−k, k=1,2,...,20 el uso de:
f(x+h)−2f(x)+f(x−h)h2
And then plot the error as a function of h in Matlab.
Attempt:
I know the exact value has to be f"(0.4)=-\pecado(0.4)= -0.389418342308651
According to my textbook equation (1) has error give by h^2f^{(4)}/12. So I am guessing f^{(4)} refers to the fifth term in the Taylor expansion which we can find using Matlab syntax taylor(f,0.4)
:
sin(2/5) - (sin(2/5)*(x - 2/5)^2)/2 + (sin(2/5)*(x - 2/5)^4)/24 +
cos(2/5)*(x - 2/5) - **(cos(2/5)*(x - 2/5)^3)/6** + (cos(2/5)*(x -
2/5)^5)/120
So substituting this in, here is my code for f"(0.4) e de error:
format long
x=0.4;
for k = 1:1:20
h=10.^(-k);
ddf=(sin(x+h)-2*sin(x)+sin(x-h))./(h.^2)
e=((h.^2)*((cos(2/5)*(x - 2/5).^3)/6))./12
plot(h,e)
end
Pero tengo todos los ceros para el error. Y la estimación no mira a la derecha después de las 7 de la computación:
ddf = -0.389093935175844
ddf = -0.389415097166723
ddf = -0.389418309876266
ddf = -0.389418342017223
ddf = -0.389418497448446
ddf = -0.389466237038505
ddf = -0.388578058618805
ddf = -0.555111512312578
ddf = 0.00
ddf = 0.00
ddf = -5.551115123125782e+05
ddf = 0.00
ddf = 0.00
ddf = 0.00
ddf = -5.551115123125782e+13
ddf = 0.00
ddf = 0.00
ddf = 0.00
ddf = 0.00
ddf = 0.00
Así que, ¿qué hay de malo en mi código? Y ¿por qué los errores igual a cero? Pensé que el error vs pasos el tamaño de la parcela debe ser algo como Esto.
Cualquier ayuda es muy apreciada.