El problema
Tengo una serie de mediciones para las que tengo que calcular numéricamente la primera y la segunda derivada de forma "en vivo", es decir, utilizando sólo los datos anteriores.
Esto es fácil para la primera derivada:
$f'(x) \approx \frac{f(x) - f(x-h)}{h}$
Para la segunda derivada utilizo esta fórmula:
$f''(x) \approx \frac{f(x) - 2f(x-h) + f(x-2h) }{h^2}$
El problema que tengo es que los resultados son una buena estimación sólo para valores "anteriores" de $x$ .
Es decir $f'(x)$ proporciona una buena estimación de $x-\frac12 h$ y $f''(x)$ proporciona una buena estimación de $x-h$ . Esto se debe a que las fórmulas que utilizo son efectivamente las fórmulas centrales en estos puntos, por ejemplo.
$f'(x + \frac12 h) = \frac{f(x+\frac h2)-f(x-\frac h2)}{2 \frac h2}$
La cuestión
¿Existe alguna forma de crear una estimación mejor para la segunda derivación sin dejar de utilizar únicamente los puntos "anteriores"?
Comparación de enfoques
He visualizado los tres enfoques hasta ahora, utilizando $f(x) = \operatorname{sin}(2x)$ como ejemplo y $h = 0.16$ :
- diamante naranja: basado en $f''(x) \approx \frac{f(x) - 2f(x-h) + f(x-2h) }{h^2}$
- cruz rosa: Los puntos del diamante naranja traducidos por $(-h,0)$
- círculo verde: Utilizando 4 puntos para la aproximación se obtiene $f''(x)\approx \frac{2 f(x) - 5f(x-h) + 4 f(x-2h)- f(x-3h)}{h^2}$ como sugiere gammatester
Nota: Si se hace una extrapolación lineal de $f''(x-2h)$ y $f''(x-h)$ (utilizando un enfoque diferencial central) como $f''(x) = 2 f''(x-h) - f''(x-2h)$ como sugiere Hagen von Eitzen terminará con la misma fórmula propuesta por gammatester.
Me parece que añadir más puntos a las fórmulas no disminuye necesariamente el error, sobre todo si la "distancia de exploración" $h$ es bastante grande.
La misma función con $h = 0.06$ :
La solución
Me llevó algún tiempo, pero después de probar las fórmulas de mayor precisión que mencionaba la página de wikipedia gammatester, encontré una fórmula que es bastante precisa y sólo utiliza datos recopilados previamente.
$f''(x) \approx \frac{ \frac{469}{90} f(x-0h) \frac{223}{10} f(x-1h) + \frac{879}{20} f(x-2h) \frac{949}{18} f(x-3h) + 41 f(x-4h) \frac{201}{10} f(x-5h) +\frac{1019}{180} f(x-6h) \frac{7}{10} f(x-7h)}{h^2} $