Algorithme de Neville
En analyse numérique, l'algorithme de Neville[1] est un algorithme d'interpolation polynomiale dû à Eric Harold Neville (en).
L'algorithme de Neville est une méthode récursive du calcul de la valeur du polynôme d'interpolation en un point donné, avec lequel il est aisé d'ajouter des points d'interpolation au fur et à mesure. Il est moins adapté pour fournir une expression du polynôme d'interpolation. Il est parfois confondu avec l'algorithme d'Aitken[2].
Description de l'algorithme
[modifier | modifier le code]Soit un jeu de n+1 points donnés (xi, yi) où les xi sont distincts deux à deux, et le polynôme d'interpolation p(x) de degré au plus n vérifiant :
L'algorithme de Neville évalue ce polynôme pour le point d'abscisse x.
Soit pi,j(x) le polynôme de degré j qui passe par les points (xk, yk) pour k = i, i + 1, …, i+j.
Les pi,j(x) satisfont à la relation de récurrence
Cette relation de récurrence permet de calculer p0,n(x), qui est la valeur cherchée. Il nécessite O(n2) opérations en virgule flottante.
Par exemple, pour n = 4, on peut utiliser la relation de récurrence pour remplir le tableau triangulaire ci-dessous, de gauche à droite.
On obtient ainsi p0,4(x), la valeur à l'abscisse x du polynôme d'interpolation passant par les 5 points donnés.
Démonstration
[modifier | modifier le code]Soit pi,j(x) le polynôme de degré j qui passe par les points (xk, yk) pour k = i, i + 1, …, i+j, et soit fi,j le coefficient du terme de degré j de ce polynôme, c'est-à-dire :
pi,j(x) passe par les points numérotés i, i + 1, …, i+j
pi+1,j(x) passe par les points numérotés i + 1, …, i+j,i+j+ 1
pi,j+1(x) passe par les points numérotés i, i + 1, …, i+j,i+j+ 1
Les polynômes pi,j+1(x) et pi,j(x) ont les points i, i + 1, …, i+j en commun. Il suit que la soustraction pi,j+1(x) - pi,j(x) de ces deux polynômes s'annulera pour les j+1 abscisses de ces points. Autrement dit les abscisses , ... , sont racines du polynôme pi,j+1(x) - pi,j(x). Comme pi,j+1(x) - pi,j(x) est un polynôme de degré j+1, il possède au plus j+1 racines. Donc finalement nous connaissons toutes ses racines, ce sont les abscisses: , ... , . Nous pouvons dès lors écrire ce polynôme sous forme factorisée :
En employant la même méthode, on trouve aussi :
En divisant ces deux relations membre à membre, on obtient :
dont on peut isoler pi,j+1 pour retrouver la relation de récurrence de Neville :
Par ailleurs, en employant la même méthode que précédemment, on peut obtenir :
et en utilisant l'égalité évidente :
on obtient :
qui fournit un algorithme récursif de calcul de ces coefficients :
Ces coefficients sont appelés différences divisées, notées :
et sont utilisés pour calculer le polynôme d'interpolation de Newton.
Exemple
[modifier | modifier le code]L'algorithme de Neville est plus économique numériquement que l'interpolation newtonienne lorsque le nombre de points à évaluer est faible (typiquement, inférieur aux nombre de points d'interpolation). Au delà, il vaut mieux calculer une fois pour toutes les différences divisées, et utiliser la méthode de Newton.
L'algorithme de Neville est utilisé notamment dans la méthode de Romberg, une méthode d'intégration numérique.
Voir aussi
[modifier | modifier le code]- Interpolation polynomiale
- Interpolation lagrangienne
- Interpolation newtonienne
- Extrapolation de Richardson
Notes
[modifier | modifier le code]- Iterative Interpolation, Eric Harold Neville, Indian Math. Soc., Jn., v. 20, 1933, p. 87-120.
- On interpolation by iteration of proportional parts, without the use of differences, A. C. Aitken, Edinburgh Math. Soc., Proc., ser. 2, v. 3, 1932, p. 56-76.
Bibliographie
[modifier | modifier le code]- (en) William Press, Saul Teukolsky, William Vetterling et Brian Flannery, Numerical Recipes, Cambridge University Press, , 2e éd., 994 p. (ISBN 978-0-521-43108-8, DOI 10.2277/0521431085, lire en ligne), « §3.1 Polynomial Interpolation and Extrapolation »