Aperçu
Bonne question. Il y a un article intitulé "Améliorer la précision de la méthode de différenciation matricielle pour les points de collocation arbitraires" par R. Baltensperger. Ce n'est pas grave à mon avis, mais il a un point (qui était déjà connu avant l'apparition en 2000): il souligne l'importance d'une représentation précise du fait que la dérivée de la fonction constante F( x ) = 1 devrait être nul (cela vaut exactement au sens mathématique, mais pas nécessairement dans la représentation numérique).
Il est simple de voir que cela nécessite que les sommes des rangées des n-èmes matrices dérivées ré( n ) soient nulles. Il est courant d'appliquer cette contrainte en ajustant l'entrée diagonale, c'est-à-dire en fixant ré( n )j j: = - ∑i = 1i ≠ jNréje j.(1)
Il est clair que cette fonctionnalité ne fonctionne pas exactement lorsque vous travaillez sur un ordinateur en raison d'erreurs d'arrondi dans les calculs à virgule flottante. Ce qui est plus surprenant, c'est que ces erreurs sont encore plus graves lors de l'utilisation des formules analytiques pour la matrice dérivée (qui sont disponibles pour de nombreux points de collocation classiques, par exemple Gauss-Lobatto).
Maintenant, l'article (et les références qu'il contient) indique que l'erreur de la dérivée est de l'ordre de la déviation des sommes de ligne de zéro. Le but est donc de les rendre numériquement les plus petits possibles.
Tests numériques
Le bon point est que la procédure Fornberg semble assez bonne à cet égard. Dans l'image ci-dessous, j'ai comparé le comportement de la matrice de dérivée première exacte, c'est-à-dire analytique, et celle dérivée par l'algorithme Fornberg, pour un nombre variable de points de collocation Chebyshev-Lobatto.
Encore une fois, en croyant la déclaration dans l'article cité, cela implique que l'algorithme de Fornberg produira des résultats plus précis pour la dérivée.
Pour le prouver, je vais utiliser la même fonction que dans le papier,
F( x ) = 11 + x2.(2)
En= maxi ∈ { 0 , … , n }∣∣∣F′( xje) - ∑j = 1nréje jF( xj) ∣∣∣.(3)
ré~j j= Dj j- ( ∑i = 1nréj i) ,pour tous j .(4)
Conclusion
En conclusion, la méthode de Fornberg semble être assez précise, dans le cas même d'environ 3 ordres de grandeur plus précis que les résultats des formules analytiques. Cela devrait être suffisamment précis pour la plupart des applications. De plus, cela est remarquable car Fornberg ne semble pas inclure explicitement ce fait dans sa méthode (du moins il n'y a aucune mention dans les deux articles Fornberg).N= 512
Un autre ordre de grandeur peut être obtenu pour cet exemple grâce à une inclusion directe de l'équation (4). Comme il s'agit d'une approche assez simple et appliquée une seule fois pour chaque dérivé, je ne vois aucune raison de ne pas l'utiliser.
La méthode de l'article de Baltensperger - qui utilise une approche plus sophistiquée pour évaluer la somme dans l'équation (1) afin de réduire les erreurs d'arrondi - donne environ le même ordre de grandeur pour l'erreur. Donc, au moins pour cet exemple, c'est à peu près équivalent à la méthode "Fornberg ajusté" ci-dessus.