Visión general
Buena pregunta. Hay un documento titulado "Mejora de la precisión del método de diferenciación de matriz para puntos de colocación arbitrarios" por R. Baltensperger. No es gran cosa en mi opinión, pero tiene un punto (que ya era conocido antes de la aparición en 2000): destaca la importancia de una representación precisa del hecho de que la derivada de la función constante f(x)=1 debería ser cero (esto se cumple exactamente en el sentido matemático, pero no necesariamente en la representación numérica).
Es simple ver que esto requiere que las sumas de filas de las n-ésimas matrices derivadas D(n) sean cero. Es común hacer cumplir esta restricción ajustando la entrada diagonal, es decir, estableciendo D(n)jj:=−∑i=1i≠jNDij.(1)
Está claro que esta característica no se cumple exactamente cuando se trabaja en una computadora debido a errores de redondeo en los cálculos de coma flotante. Lo que es más sorprendente es que estos errores son aún más graves cuando se utilizan las fórmulas analíticas para la matriz derivada (que están disponibles para muchos puntos de colocación clásicos, por ejemplo, Gauss-Lobatto).
Ahora, el documento (y las referencias en él) establece que el error de la derivada está en el orden de la desviación de las sumas de la fila desde cero. Por lo tanto, el objetivo es hacer que estos sean numéricamente lo más pequeños posible.
Pruebas numéricas
Lo bueno es que el procedimiento de Fornberg parece ser bastante bueno a este respecto. En la siguiente imagen, he comparado el comportamiento de la matriz de primera derivada exacta, es decir, analítica, y la derivada por el algoritmo de Fornberg, para un número variable de puntos de colocación de Chebyshev-Lobatto.
Nuevamente, creyendo en la declaración en el documento citado, esto implica que el algoritmo de Fornberg producirá resultados más precisos para la derivada.
f(x)=11+x2.(2)
En=maxi∈{0,…,n}∣∣∣f′(xi)−∑j=1nDijf(xj)∣∣∣.(3)
D~jj=Djj−(∑i=1nDji),for all j.(4)
Conclusión
En conclusión, el método de Fornberg parece ser bastante preciso, en el caso de incluso en aproximadamente 3 órdenes de magnitud más precisos que los resultados de las fórmulas analíticas. Esto debería ser lo suficientemente preciso para la mayoría de las aplicaciones. Además, esto es notable porque Fornberg no parece incluir explícitamente este hecho en su método (al menos no se menciona en los dos documentos de Fornberg).N=512
Se puede obtener otro orden de magnitud para este ejemplo a través de una inclusión directa de la ecuación (4). Como este es un enfoque bastante simple y se aplica solo una vez para cada derivado, no veo ninguna razón para no usarlo.
El método del artículo de Baltensperger, que utiliza un enfoque más sofisticado para evaluar la suma en la ecuación (1) para reducir los errores de redondeo, produce aproximadamente el mismo orden de magnitud para el error. Entonces, al menos para este ejemplo, es más o menos equivalente al método "Fornberg ajustado" anterior.