En primer lugar, siempre hay que tener cuidado de elegir $h$ con una muy ligera dependencia de $x$ tal que $x \pm h$ es exactamente representable por la máquina. Por ejemplo, si $x = 1$ entonces debería redondear al menos el $h$ al múltiplo más cercano de $2^{-22}$ para una precisión de 32 bits o $2^{-51}$ para los dobles de 64 bits.
Entonces, como señala Manazoni, la fórmula simétrica es superior; consigue una precisión de unos dos órdenes de magnitud mejor trabajando con números de 64 bits. Hay que elegir un $h$ en algún lugar cerca de $x \epsilon^{1/3}$ , donde $\epsilon$ es la precisión fraccionaria de la máquina (por tanto, en dobles de 64 bits, $h$ de aproximadamente $10^{-5}x$ es bueno. El error fraccionario en la derivada debe ser de aproximadamente $\epsilon^{2/3}$ .
Sin embargo, mejor, a menos que sospeche un comportamiento realmente extraño cerca de $x$ es utilizar la siguiente fórmula simétrica de orden superior $$ f^{\prime}(x) = \frac{ f(x-2h) -4 f(x-h) + 4 f(x+h) - f(x+2h)}{6} + O\left(h^4 f{\prime\prime\prime\prime}(x) \right) $$ utilizando $h \approx x \epsilon^{1/5}$ , lo que da una precisión fraccionaria de aproximadamente $\epsilon^{4/5}$ .
Los métodos de orden superior empiezan a sondear con demasiada sensibilidad el comportamiento ligeramente irregular de las funciones y empiezan a depender demasiado de la precisión de las evaluaciones de las funciones. Desgraciadamente, a diferencia del caso de la integración, en el que existen métodos de tamaño de paso adaptativo, no existe un método robusto para elegir el orden y el tamaño de paso que proporcione de forma fiable la mejor estimación posible de la derivada. estimación de la derivada. Pero hay métodos que son aún mejores que el que he mostrado aquí, véase el capítulo 5.7 de Recetas numéricas.