Vous êtes sur la page 1sur 8

Chapitre 3

Interpolation polynômiale

3.1 Introduction
L’interpolation polynômiale, comme les autres méthodes d’approximations, permet, à partir d’un jeu
de N points expérimentaux (xi , yi ), de définir une fonction représentant ces points. Cette fonction
peut être utilisée pour prédire les valeurs de y entre ces points (i.e. pour d’autres valeurs de x) ou
pour effectuer un traitement mathématique plus complexe (intégration, dérivation, convolution,...). On
peut ainsi interpoler des points correspondant à une fonction connue, mais de forme trop complexe
pour être manipulée efficacement.
L’interpolation polynômiale a la particularité d’approximer le nuage de points (xi , yi ) par un polynôme

g(x) = a0 + a1 x + a2 x2 + ... + aN −1 xN −1 (3.1)

qui passe par TOUS les points (xi , yi ). Il existe un seul polynôme de degré N − 1 interpolant une série
de N points donnés. On peut en revanche trouver (par exemple à l’aide de la méthode des moindres
carrés) une infinité de polynômes de degré inférieur à N − 1 approximant le nuage en passant entre
les points.
Deux cas de figure peuvent se poser quand on travaille avec des polynômes d’interpolation :
a. On a besoin du polynôme d’interpolation pour estimer la valeur de y pour une valeur de x ∈
/
(xi )i=1,...,N .
b. On cherche les coefficients du polynôme d’interpolation (pour calculer sa dérivée par exemple).
Ce second cas revient à résoudre le système de N équations à N inconnues : suivant :
−1
g(x1 ) = a0 + a1 x1 + a2 x21 + ... + aN −1 xN
1 = y1
−1
g(x2 ) = a0 + a1 x2 + a2 x22 + ... + aN −1 xN
2 = y2
... ...
−1
g(xN ) = a0 + a1 xN + a2 x2N + ... + aN −1 xN
N = yN

Ce système est dit de ’Cramer’. En notation matricielle, on le note :


−1  
x21 ... xN
   
1 x1 1 a0 y1
−1  
 1 x2
 x22 ... xN2   a1  = 
  y2 
 ... ... ... ... ...   ...   ... 
2 N −1 aN −1 yN
1 xN xN ... xN

Le déterminant de la matrice de cette équation est appelée ’déterminant de van der Monde’. Il est
égal à : Y
∆= (xj − xi ).
1≤i<j≤N

26
Remarque : Si on se base sur N points et que l’on cherche un polynôme d’interpolation de degré M ,
le système s’écrira :
1 x1 x21 ... xM
    
1 a0 y1
 1 x2 x22 M
... x2   a1
    y2 
=
  ...  ,
 
 ... ... ... ... ...   ...
1 xN x2N ... xM
N aM yN
où la matrice comportera N lignes et M + 1 colonnes.
Si M + 1 > N alors le système n’a aucune solution.
Si M + 1 = N alors le système a une solution (système de Cramer).
Si M + 1 < N alors le système a une infinité de solutions (système surdéterminé). On pourra utiliser
la méthode des moindres carrés (c.f. chapı̂tre 2) pour trouver une solution appropriée.

Dans la prochaine section, on proposera une méthode (il y en a d’autres) pour rechercher des coefficients
du polynôme. Dans celle d’après, on traitera le cas de la recherche d’une valeur approximative.

3.2 Polynôme d’interpolation de Lagrange


3.2.1 Cas linéaire
On dispose de deux points expérimentaux (x1 , y1 ) et (x2 , y2 ). Soit P1 (x), l’unique polynôme d’ordre 1
(N = 2) interpolant ces points. Il peut se mettre sous la forme P1 (x) = ax + b. Comme il passe par
les deux points (x1 , y1 ) et (x2 , y2 ), les coefficients a et b doivent satisfaire :

ax1 + b = y1 , on en déduit : b = y1 − ax1


y2 − y1
ax2 + b = y2 a =
x2 − x1
Donc

P1 (x) = ax + b
= ax + (y1 − ax1 )
= a(x − x1 ) + y1
y2 − y1
= (x − x1 ) + y1
x2 − x1

x − x2 x − x1
P1 (x) = y1 + y2
x1 − x2 x2 − x1
C’est l’expression du polynôme d’interpolation sous la forme de Lagrange.

3.2.2 Cas parabolique


On dispose de trois points expérimentaux (x1 , y1 ), (x2 , y2 ) et (x3 , y3 ). On recherche le polynôme
d’ordre 2 (N = 3), P2 (x), interpolant ces points.

P2 (x) = ax2 + bx + c

Les coefficients doivent satisfaire :

ax21 + bx1 + c = y1 (3.2)


ax22 + bx2 + c = y2 (3.3)
ax23 + bx3 + c = y3 (3.4)

27
On démontre alors facilement que
(x − x2 )(x − x3 ) (x − x1 )(x − x3 ) (x − x1 )(x − x2 )
P2 (x) = y1 + y2 + y3
(x1 − x2 )(x1 − x3 ) (x2 − x1 )(x2 − x3 ) (x3 − x1 )(x3 − x2 )

3.2.3 Cas de N points


Dans le cas où l’on cherche à interpoler N points expérimentaux, il s’agit de trouver les coefficients du
polynôme d’interpolation d’ordre N − 1, PN −1 (x). Ce polynôme est unique, mais il existe différentes
manières de le noter. La notation suivante est celle de Lagrange :
N
X (x − x1 )...(x − xi−1 )(x − xi+1 )...(x − xN )
PN −1 (x) = yi . (3.5)
(xi − x1 )...(xi − xi−1 )(xi − xi+1 )...(xi − xN )
i=1

PN −1 (x) est appelé polynôme de Lagrange. On appelle polynôme de Lagrange associé au point (xi , yi ),
le polynôme suivant :
N
Y x − xj
Li (x) = . (3.6)
xi − xj
j=1;j6=i

Le polynôme de Lagrange interpolant les N points s’exprime alors par une combinaison linéaire des
N Li (x) :
N
X
PN −1 (x) = yi Li (x) (3.7)
i=1
Pour exprimer le polynôme d’interpolation sous la forme de Lagrange, il faut définir les polynômes
associés à chacun des points, Li (x). Par exemple pour la série de points suivante :
x 0 1 2
y 2.6 2.7 2.9

(x − x2 )(x − x3 ) (x − 1)(x − 2) 1 3
L1 (x) = = = x2 − x + 1
(x1 − x2 )(x1 − x3 ) (0 − 1)(0 − 2) 2 2
(x − x1 )(x − x3 ) (x − 0)(x − 2)
L2 (x) = = = −x2 + 2x
(x2 − x1 )(x2 − x3 ) (1 − 0)(1 − 2)
(x − x1 )(x − x2 ) (x − 0)(x − 1) 1 1
L3 (x) = = = x2 − x
(x3 − x1 )(x3 − x2 ) (2 − 0)(2 − 1) 2 2

On obtient alors le polynôme d’interpolation :


3
X
P (x) = yi Li (x)
i=1
= y1 L1 (x) + y2 L2 (x) + y3 L3 (x)
1 3 1 1
= 2.6( x2 − x + 1) + 2.7(−x2 + 2x) + 2.9( x2 − x)
2 2 2 2
= x2 (1.3 − 2.7 + 1.45) + x(−3.9 + 5.4 − 1.45) + 2.6
= 0.05x2 + 0.05x + 2.6

Remarque : les polynômes Li (x) ne dépendent que de la coordonnée x des points, pas de la valeur de
y.

28
3.2.4 Notation matricielle
Si on exprime les Li (x) sous la forme d’une combinaison linéaire de monômes :
Li (x) = M0,i + M1,i x + M2,i x2 + ... + MN −1,i xN −1 , (3.8)
on peut exprimer le polynôme de Lagrange sous forme matricielle :
N
X →
− ← →→−
PN −1 (x) = yi Li (x) = X T M Y (3.9)
i=1


où M est la matrice d’interpolation de Lagrange :
 
M0,1 M0,2 ... M0,N
←→  M1,1 M1,2 ... M1,N 
M = 
 ... ... ... ... 
MN −1,1 MN −1,2 ... MN −1,N
   
1 y1

−  x →
−
 y2 
et X =   ...  Y =  ... 
 

xN −1 yN
La notation matricielle a le mérite :
– d’être facile à gérer informatiquement
– de permettre de manier de gros systèmes (N élevé) facilement
– de permettre d’obtenir facilement les coefficients du polynômes d’interpolation exprimé sous forme
d’une combinaison linéaire de monômes PN −1 (x) = a0 + a1 x + a2 x2 + ... + aN −1 xN −1 .
 
a0

−  a1  ← →→

A =  ...  = M Y
 (3.10)
aN −1
– on peut facilement dériver et intégrer le polynôme à partir de cette notation

3.2.5 Matrices régulières de Lagrange


On a déjà vu que les Li (x) ne dépendent que des coordonnées xi des points expérimentaux. Donc la


matrice M aussi. Lorsque les points expérimentaux sont tels que x1 = 0 et xi+1 = xi + 1, alors la
valeur des coefficients de la matrice de Lagrange peut être trouvée dans des tables [2]. On donne
ci-dessous l’expression de ces 
matrices régulières de Lagrange pour les premières valeurs de N : 
1 0 0 0 0 0 0
 −49/20 6 −15/2 20/3 −15/4 6/5 −1/6 
 
   203/90 −87/10 117/8 −127/9 33/4 −27/10 137/360 
←→ 1 0 ←→  
M2 = M7 =  −49/48 29/6 −461/48 31/3 −307/48 13/6 −5/16 
−1 1 
 35/144 −31/24 137/48 −121/36 107/48 −19/24 17/144 

 
 −7/240 1/6 −19/48 1/2 −17/48 2/15 −1/48 
1/720 −1/120 1/48 −1/36 1/48 −1/120 4/720
 
1 0 0 0 0 0
   −137/60 5 −5 10/3 −5/4 1/5 
1 0 0  
←→ ←
→  15/5 −77/12 107/12 −13/2 61/24 −5/12 
M3 =  −3/2 2 −1/2  M6 =  
17/24 71/24 −59/12 49/12 −41/24 7/24 
1/2 −1 1/2  
 1/8 −7/12 13/12 −1 11/24 −1/12 
−1/120 1/24 −1/12 1/12 −1/24 1/120

29
 
  1 0 0 0 0
1 0 0 0  −25/12 4 −3 4/3 −1/4 

→  −11/6 3 −3/2 1/3  ←
→  
M4 =   M5 =  35/24 −13/3 19/4 −7/3 11/24 
 1 −5/2 2 −1/2   
 −5/12 3/2 −2 7/6 −1/4 
−1/6 1/2 −1/2 1/6
1/24 −1/6 1/4 −1/6 1/24
Si on reprend l’exemple de la section précédente :
x 0 1 2
y 2.6 2.7 2.9
on obtient :
        
a0 1 0 0 2.6 2.6 2.6

− ←
→ →

A =  a1  = M Y =  −3/2 2 −1/2   2.7  =  −3.9 + 5.4 − 1.45  =  0.05 
a2 1/2 −1 1/2 2.9 1.3 − 2.7 + 1.45 0.05

d’où P (x) = 0.05x2 + 0.05x + 2.6.

Dans le cas où les points expérimentaux sont régulièrement espacés mais différents de [0 1 2...N-1],
(par exemple [4 9 14 19]) :
– on estime le pas entre les points h = xi+1 − xi (dans l’exemple : h = 5)
– pour chaque point, on fait le changement de variable Xi = (xi − x1 )/h (dans l’exemple : Xi =
(xi − 4)/5). Les coordonnées Xi correspondent alors aux points utilisés pour définir les matrices
régulières de Lagrange (i.e. 
[0 1 ... N-1]).

1
 X 

−  2

– on définit le vecteur X h =   X
.

 ... 
X N −1
– on utilise les matrices régulières de Lagrange pour trouver le polynôme interpolant exprimé en
fonction de X :
− ←
→ → → −
PN −1 (X) = X Th M N Y
– on peut remplacer, dans cette expression, X par sa valeur X = (x − x1 )/h pour obtenir PN −1 en
fonction de la coordonnée initiale.
L’intérêt de la méthode de Lagrange pour trouver le polynôme d’interpolation est que
– si les points sont régulièrement espacés, les matrices de Lagrange sont données et le calcul est très
rapide
– les polynômes de Lagrange sont utilisés en traitement du signal et pour l’intégration numérique (c.f.
chapı̂tre 5).

3.3 Valeur du polynôme d’interpolation en un point donné


3.3.1 Si le polynôme d’interpolation est connu
Soient N points expérimentaux (xi , yi ), interpolés par

PN −1 (x) = a0 + a1 x + ... + aN −1 xn−1 . (3.11)

On souhaite trouver une valeur approchée de y pour x = X. Le calcul de PN −1 (X) utilisant la formule
ci-dessus nécessite N − 1 additions et (N − 1)N/2 multiplications.
Remarque : (N − 1) + (N − 2) + ... + 1 = (N − 1)N/2 se démontre par récurrence.

30
Le schéma de Horner est un algorithme permettant de faire ce calcul avec seulement N − 1 additions
et N − 1 multiplications. Il suffit de réécrire PN −1 (x) sous la forme :

PN −1 (x) = a0 + x {a1 + x [a2 + ... (aN −2 + xaN −1 )]} . (3.12)

L’algorithme de Horner donne à chaque itération k une estimation de PN −1 (X) notée pk . Il consiste
à :
– ranger les ak par ordre décroissant
– attribuer à p0 la valeur de aN −1
– calculer les autres pk par récurrence pk+1 = pk ∗ X + aN −k−2
La solution est alors égale à P (X) = pN −1 .
Par exemple, si on cherche la valeur du polynôme P (x) = 2x4 − 5x3 + x2 − 7x + 6 pour x = 2,
l’algorithme de Horner s’illustre de la manière suivante :

a4 =2 a3 =-5 a2 =1 a1 =-7 a0 =6

+ + + +
p0 =2 p1 =-1 p2 =-1 p3 =-9 p4 =-12
*2 *2 *2 *2

3.3.2 Si le polynôme d’interpolation n’est pas connu


Si on ne connait pas le polynôme d’interpolation, ou si on ne souhaite pas fixer à priori l’ordre du
polynôme (i.e. on envisage de ne pas se servir de tous les points dont on dispose), on va chercher à
faire une approximation locale en utilisant les différences finies divisées.
La différence finie divisée d’ordre 1 s’écrit :
yi − yj
f [xi , xj ] = . (3.13)
xi − xj

On remarque que f [xi , xj ] = f [xj , xi ].


La différence finie divisée d’ordre 2 s’écrit :
f [xi , xj ] − f [xj , xk ]
f [xi , xj , xk ] = . (3.14)
xi − xk
La différence finie divisée d’ordre N − 1 s’écrit :
N
X yi
f [x1 , x2 , ..., xN ] = QN (3.15)
i=1 j=1,j6=i (xj − xi )

Pour évaluer la valeur approchée de y en X :


– on choisit le xp le plus proche de X.
– on fait une approximation d’ordre 0 : y (0) (X) = yp .
– on fait ensuite une approximation d’ordre 1, en utilisant le deuxième point le plus proche de X
(xd ) :

y (1) (X) = yp + (X − xp )f [xp , xd ]


= y (0) (X) + (X − xp )f [xp , xd ]

– si toutes les différences finies d’ordre 1 que l’on peut calculer à partir des points expérimentaux
(f [x1 , x2 ], f [x2 , x3 ], ..., f [xN −1 , xN ]) sont égales à quelques pourcents près, alors l’approximation
d’ordre 1 peut être considérée comme valable.

31
– si on souhaite une meilleure précision, on calcule l’approximation d’ordre 2, en utilisant le troisième
point le plus proche de X (xt ) :

y (2) (X) = y (1) (X) + (X − xp )(X − xd )f [xp , xd , xt ]

– on peut estimer la validité du modèle d’ordre deux en vérifiant que toutes les différences finies
d’ordre 2 concernant les points expérimentaux sont égales à quelques pourcents près.

(0)
y (1) (X) y (X)
y (2) (X) x
xt xp X xd xq xc

Si on poursuit ce processus jusqu’à l’ordre N − 1, on obtient le polynôme d’interpolation sous la forme


de Newton :
XN i−1
Y
PN −1 (x) = f [x1 , ..., xi ] (x − xj ). (3.16)
1 j=1

On rappelle qu’il n’existe qu’un seul polynôme d’ordre N − 1 interpolant N points. Donc cette formu-
lation conduit exactement au même polynôme que celui obtenu sous la forme de Lagrange.

Si on réutilise l’exemple des sections précédentes : Si on reprend l’exemple de la section précédente :


x 0 1 2
y 2.6 2.7 2.9
on obtient :
f (x1 ) − f (x2 ) 2.6 − 2.7
f [x1 , x2 ] = = = 0.1
x1 − x2 0−1
f (x2 ) − f (x3 ) 2.7 − 2.9
f [x2 , x3 ] = = = 0.2
x2 − x3 1−2
f [x1 , x2 ] − f [x2 , x3 ] 0.1 − 0.2
f [x1 , x2 , x3 ] = = = 0.05
x1 − x3 0−2

d’où
N
X i−1
Y
P (x) = f [x1 , ..., xi ] (x − xj )
1 j=1

= f (x1 ) + f [x1 , x2 ](x − x1 ) + f [x1 , x2 , x3 ](x − x1 )(x − x2 )


= 2.6 + 0.1(x − 0) + 0.05(x − 0)(x − 1)
= 2.6 + 0.05x + 0.05x2

32
3.4 Conclusions
L’interpolation polynômiale est une méthode d’approximation d’un nuage de points. On l’utilise quand
on n’a pas d’idée à priori du modèle mathématique sous-jacent (sinon, on utilise de préférence une
méthode de fit du type moindres-carrés). On utilise des polynômes pour l’interpolation car ce sont des
fonctions faciles à traiter informatiquement, et elles sont simples à dériver/intégrer.
L’interpolation polynômiale d’un grand nombre de points (ie. avec un polynôme de haut degré), peut
présenter des oscillations. C’est le phénomène de Runge. Il se produit notamment quand on tente d’in-
terpoler une fonction de type fraction rationelle de x par un polynôme. Pour l’éviter, il est préférable
d’effectuer une interpolation par splines, i.e. des polynômes (généralement cubiques) différents entre
chaque paire de points.

33

Vous aimerez peut-être aussi