You are on page 1of 36

Chapitre 4

Interpolation polynomiale et splines


4.1 Interpolation polynomiale
4.1.1 Interpolation de Lagrange
Interpolation linaire
Cas gnral
Algorithme de calcul des coefficients
4.1.2 Interpolation de Newton
4.1.3 Estimation de l'incertitude
Choix des xi au mieux
4.2 Interpolation par des Splines
4.2.1 Splines linaires
4.2.2 Splines quadratiques
4.2.3 Splines cubiques

4.1 Interpolation polynomiale


Supposons donns (n+1) points dfinis par les couples (xi,yi), (i = 0,1,...,n). On dmontre qu'il
existe un et un seul polynme de degr gal n :
P(x) = a0+a1x+a2x2+...+anxn

(4.1)
vrifiant P(xi) = yi
Preuve: Supposons qu'il existe deux polynmes P(x) et Q(x) vrifiant cette proprit. Alors le
polynme de degr au plus gal n

R(x) = P(x)Q(x)

(4.2)

s'annule en (n+1) points distincts xi. Or le polynme R(x) tant de degr au plus gal n ne
peut avoir plus de n racines distinctes. On en dduit donc que R(x) est nul et donc que P(x) =
Q(x).

4.1.1 Interpolation de Lagrange


Interpolation linaire
Supposons donns deux points (x0,y0) et (x1,y1). L'interpolation polynomiale de ces deux
points est un polynme de degr 1 qui correspond la droite passant par les deux points. Ce
polynme est donn par
P(x) = y0+g(x)(y1y0)

(4.3)
avec

xx0
g(x) =

si

x = x0

si

x = x1

xx1

(4.4)
Que vaut le polynme dans le cas gnral o nous avons (n+1) points (n > 1)
Cas gnral
Supposons donns (n+1) points dfinis par les couples (xi,yi), (i = 0,1,...,n).
On commence par dfinir (n+1) polynmes de degr n, li(x) (i = 0,1,...,n) vrifiant

li(xj) = ij =

si i = j

si i j

Il est facile de voir que ces polynmes sont donns par

li(x) =

xxj

j = 0,j i

xixj

(4.5)
Les (n+1) polynmes li(x) forment une base du sous-espace vectoriel des polynmes de degr
n. En effet si
0l0(x)+1l1(x)+...+nln(x) = 0

(4.6)
alors
0l0(xk)+1l1(xk)+...+klk(xk)+...+nln(xk) = 0 klk(xk) = 0

(4.7)
ce qui entraine

k = 0

(k = 0,1,2,...n)

(4.8)
Exemple 34 Dans le cas n = 2, on obtient

xx1
l0(x) =

xx2

(4.9)

x0x1

x0x2

xx0

xx2

l1(x) =

(4.10)

x1x0

x1x2

xx0

xx1

l2(x) =

x2x0

(4.11)
x2x1

Ces polynmes apparaissent sur la figure 4.1 pour


x0 = 0,x1 = 1,x2 = 2

3
x2

l0 =

x+1

l1 = x2+2x

1
x2

l2 =
2

x
2

Figure 4.1: Polynmes de Lagrange pour 3 points


On vrifie alors que le poynme
n

P(x) =

yili(x)

i=0

(4.12)
est le polynme d'interpolation puisqu'il est de degr n et qu'il vrifie P(xi) = yi (i = 0,1,...,n).
Ce polynme est appel polynme d'interpolation de Lagrange.

Algorithme de calcul des coefficients


On dmontre que le polynme prcdant peut s'crire simplement :

Pn(x) =

i=0

yi

xxj

j = 0,j i

yii(n)

i=0

xixj

(xxj)

j = 0,j i

(4.13)
Les coefficients i(n) peuvent se calculer de manire rcursive en utilisant la formule suivante :
i(n+1) = i(n)/(xixj)

(i = 0,1,...,n)

(4.14)
On peut montrer l'galit suivante :
n

i(n) = 0

i=0

(4.15)
L'algorithme de recherche des i(n) peut se rsumer de la manire suivante :

dbut 0(0) = 1

Pour k = 1 n

Pour i = 0 k1

i(k) = i(k1)/(xixk)

fin

k1

k(k) =

i(k)

i=0

fin

Les coefficients ai du polynme Pn(x) peuvent alors tre dduits des coefficients i(n).
Exemple 35 La figure 4.2 montre le polynme d'interpolation de la fonction

x1
f(x) = logx2
x

(4.16)
aux points [1,2,4,8,10]

Figure 4.2: Interpolation polynomiale


Remarque 36 Lorsqu'on dtermine un polynme d'interpolation, on espre que le polynme
approche encore la fonction en dehors du domaine d'interpolation (extrapolation). Le trac
de la fonction prcdente et de son polynme d'interpolation sur l'intervalle [0.5,12] montre
que ce n'est pas le cas. Il y a divergence rapide du polynme par rapport la fonction

Figure 4.3: Interpolation / Extrapolation polynomiale

4.1.2 Interpolation de Newton


Le polynme d'interpolation de Newton obtenu pour (n+1) points x0,x1,...,xn prend la forme :

Pn(x) = c0+c1(xx0)+c2(xx0)(xx1)+...+cn(xx0)(xx1)...(xxn1)

(4.17)
Il ne faut pas oublier que le polynme de Newton sera gal au polynme de Lagrange (le
polynme d'interpolation tant unique). Il diffrent simplement dans la forme et par
l'algorithme de calcul des coefficients.

Les coefficients ci peuvent se calculer par la rsolution du systme d'quations linaires de


forme triangulaire infrieure. La rsolution est donc directe par simple substitution comme le
montrent les quations ci-dessous

Pn(x0) = c0 = y0

Pn(x1) = c0+c1(x1x0)) = y1

....

Pn(xn) = c0+c1(xnx0)+c2(xnx0)(xnx1)+...+cn(xnx0)...(xnxn1) = yn

Quoiqu'il en soit, une autre mthode permet d'obtenir un algorithme itratif sur le nombre de
points. C'est ici une diffrence majeure avec le polynme de Lagrange pour lequel, si on
ajoute un point, on est oblig de recalculer tous les coefficients du polynme.
Remarquons d'abord que le terme ci ne dpend que des xk avec (k = 0,....,i).

c0

y0

(4.18)

y1c0
c1

(4.19)
x1x0

y2y0c1(x2x0)
c2

(4.20)
(x2x0)(x2x1)

y2y0

y1y0

(4.21)
(x2x0)(x2x1)

(x1x0)(x2x1)

(y2y0)(x1x0)(y1y0)(x2x0)
=

(4.22)
(x2x0)(x2x1)(x1x0)

y1y0

y2y1

x1x0

x2x1

(x2x0)

(4.23)

La formule prcdente se gnralise sans difficult, le polynme d'interpolation de Newton


peut donc tre calcul comme suit :

x0

f(x0)

f[x0,x1]

x1

f(x1)

f[x0,x1,x2]

f[x1,x2]

x2

f(x2)

f[x0,x1,x2,x3]

f[x1,x2,x3]

f[x2,x3]

: :

x3

f(x3)

: :

f[xn3xn2,xn1,xn]

xn1

f(xn1)

f[xn2,xn1,xn]

f[xn1,xn]

xn

f(xn)

avec

f[x0,...,xn]

f(xi)

yi

(4.24)

ci

f[ x0,x1,...,xi]

(4.25)

f(xj)f(xi)
f[xi,xj]

(4.26)
xjxi

f[xj,xk]f[xi,xj]
f[xi,xj,xk]

(4.27)
xkxi

4.1.3 Estimation de l'incertitude


Soit une fonction dfinie sur [a,b] et (n+1) points (xi,yi = f(xi)). Que peut-on dire de la
diffrence f(x)P(x), o P(x) est le polynme d'interpolation de f ? Nous avons :

P(xi) = f(xi) = yi

(4.28)

Cette diffrence peut tre faible ou grande comme le montre la figure 4.4
Exemple 37

1
x [1,3]

f(x) =
x

(4.29)

1
x0 = 1,

f(1) = 1

x1 = 3,

f(3) =
3

(4.30)
alors
1
P(x) =

4
x+

(4.31)
Dans ce cas on peut dire que la diffrence est faible mais on remarque que le polynme P(x)
est aussi polynme d'interpolation de toute fonction vrifiant la condition 4.30, et la
diffrence peut alors tre leve.

Figure 4.4: Ecart entre la fonction et le polynme d'interpolation


On peut donc dire que, plus la fonction est rgulire, meilleure sera l'approximation. Le
thorme suivant donne la valeur de cette erreur.
Thorme 38 si

f Cn+1[a,b]

a x0x1 ... xnb

(4.32)
alors
1

f(x)P(x) =

i=0

(n+1)!

(4.33)
o

(xxi)f(n+1)()

min

(x0,x) < <

max

(x,xn) b

(4.34)
Preuve: non dveloppe ici
Exemple 39 L'application de ce thorme dans le cas de l'interpolation linaire avec

x0 = a

x1 = b

(4.35)
et donc

xb

xa

P(x) = f(a).

+f(b).
ab

ba

(4.36)
donne

(xa)(xb)
f()

f(x)P(x) =
2

(4.37)
Il faut donc trouver un majorant de | f()|
Choix des xi au mieux
D'aprs le thorme prcdent,

f(n+1)()

| f(x)P(x)|

max
x [a,b]

(n+1)!

max

x [a,b]

(xxi)

i=0

(4.38)
L'erreur rsulte donc de deux termes :

le terme de drive deuxime dpendant de la fonction interpoler, on ne peut donc


rien y changer, il sera simplement d'autant plus faible que la fonction est rgulire.

Par contre le deuxime terme dpend du choix des xi

max

x [a,b]

(xxi)

i=0

(4.39)
Le problme est le suivant : comment choisir les xi pour rendre cette quantit
minimale? On dmontre que cette quantit est minimale pour les points xi annulant les
polynmes de Chebychev c'est--dire

ba
xi =

cos
2

ni

b+a

(4.40)
Exemple 40 La figure ci-dessous montre le cas de la fonction de Runge avec des points
rgulirement espacs et des points suivant une rpartition de Chebychev. Le polynme de
degr 6 en traits interrompus est obtenu aux points d'interpolation

x0 = 5,x1 = 3,x2 = 1,x3 = 0,x4 = 1,x5 = 3,x6 = 5

Le polynme en traits pointills est obtenu avec la rpartition des points donns par la
formule 4.40 pour a = 5, b = 5 et n = 6. La rpartition des points est donne sur la figure
4.6
x0 = 5,x1 = 4.3301,x2 = 2.5,x3 = 0,x4 = 2.5,x5 = 4.3301,x6 = 5

Figure 4.5: Fonction de Runge, rpartition uniforme et de Chebychev des xi

Figure 4.6: Rpartition de Chebychev des xi

4.2 Interpolation par des Splines


Lorsqu'on ralise une interpolation, on espre gnralement que l'interpolation marche encore
en dehors des points pris en compte pour calculer le polynme. Or comme cela a t remarqu
prcdemment, l'interpolation polynomiale diverge rapidement en dehors des points
d'interpolation. Ceci est aussi vrai sur les bords du domaine comme c'est le cas pour la
fonction de Runge o des oscillations apparaissent lorsque le nombre de points est suprieur
10. Une meilleure rpartition des points (rpartition de Chebychev) permet de rduire l'erreur
mais des oscillations subsistent. De plus, l'utilisation de polynmes de degr lev est viter
puisqu'on introduit rapidement des instabilits numriques.
On leur prfre alors une interpolation polynomiale par morceaux appele spline. La spline
peut changer de forme aux points (xi,yj) appels noeuds.
Dfinition 41 tant donns (n+1) points (xi,yi) , la spline S(x) est dfinit par

S0(x),

x [ x0,x1]

S1(x),

x [ x1,x2]

Sn1(x),

x [ xn1,xn]

S(x) =

(4.41)
Lorsque les polynmes Si(x) sont de degr 1, on parle de spline linaire; quand ils sont de
degr 2, on parle de spline quadratique. S'ils sont de degr 3, on parle de spline cubique.

4.2.1 Splines linaires


tant donns (n+1) points (xi,yi) , on cherche une spline linaire S(x) de la forme

S0(x) = a0x+b0,

x [ x0,x1]

S1(x) = a1x+b1,

x [ x1,x2]

Sn1(x) = an1x+bn1,

x [ xn1,xn]

S(x) =

(4.42)
vrifiant la condition d'interpolation
S(xi) = yi

(4.43)

La premire question laquelle if faut rpondre est : la spline S(x) est-elle unique?
La dtermination de S(x) ncessite le calcul de 2n coefficients ai et bi, (i = 0,1,...,n1). Pour
cela on dispose de 2n quations :

(n+1) quations d'interpolation (i = 0,1,...,n)

Si(xi) = yi

(4.44)
yi = aixi+bi

(4.45)

(n1) quations de continuit de la spline (i = 0,1,...,n2)

Si(xi+1) = Si+1(xi+1)

(i = 0,1,...,n2)

(4.46)
aixi+1+bi = yi+1

(4.47)
On en dduit donc de manire unique

yi+1yi
ai =

, (i = 0,1,...,n1)

(4.48)

xi+1xi

bi = yiaixi, (i = 0,1,...,n1)

(4.49)

4.2.2 Splines quadratiques


Nous avons vu prcdemment que la spline linaire ne permettait d'assurer que la continuit
de la fonction S(x). Si on veut que S(x) soit continuement drivable, il faut donc choisir des
polynmes Si(x) de degr au moins gal 2.
Dfinition 42 Supposons donns (n+1) points dfinis par les couples (xi,yi), (i = 0,1,...,n).
L'interpolation par des splines quadratiques quivaut l'approximation sur chaque intervalle
[xi,xi+1] par un polynme du second degr. On impose aux diffrents points la continuit des
valeurs des polynmes et de leurs drives.

S0(x) = a0x2+b0x+c0,

x [ x0,x1]

S1(x) = a1x2+b1x+c1,

x [ x1,x2]

Sn1(x) = an1x2+bn1x+cn1,

x [ xn1,xn]

S(x) =

(4.50)
Exemple 43
La fonction

x2

x0

x2

0x1

12x

x1

f(x) =

reprsente une spline quadratique. En effet :

elle est dfinie sur ] ,+[


elle est continue sur ] ,+[

sa drive est continue sur ] ,+[


{*} f(0) = f(0+) = 0
{*} f(1) = f(1+) = 2

La spline S(x) est-elle unique? La dtermination de S(x) ncessite le calcul des 3n coefficients
ai et bi, (i = 0,1,...,n1). Pour cela on dispose seulement de (3n1) quations :

(n+1) quations d'interpolation (i = 0,1,...,n)

Si(xi) = yi

(4.51)
yi = aixi2+bix+ci

(4.52)

(n1) quations de continuit de la spline

Si(xi+1) = Si+1(xi+1)

(i = 0,1,...,n2)

(4.53)

(n1) quations de continuit de sa drive

Si(xi+1) = Si+1(xi+1)

(i = 0,1,...,n2)

(4.54)
Pour pouvoir rsoudre le problme, il est donc ncessaire de fixer une condition
supplmentaire. Pour cela dfinissons la variable auxiliaire zi = S(xi),(i = 0,1,...,n) et
rcrivons Si(x) sous la forme

Si(x) = ai(xxi)2+bi(xxi)+ci

(4.55)
Des conditions d'interpolation, il apparat clairement que, sous cette forme, les ci sont
dtermins de manire unique

ci = Si(xi) = yi

(i = 0,1,...,n2)

(4.56)
De plus, par dfinition
Si(xi) = bi = zi

(4.57)
ce qui dtermine les bi. En crivant maintenant les conditions de continuit de la
drive, on obtient

2ai(xi+1xi)+bi = 2ai+1(xi+1xi+1)+bi+1

(i = 0,1,...,n2)

(4.58)
En utilisant 4.57,on obtient les ai
zi+1zi
ai =
2( xi+1xi)

(4.59)
Si(x) se met donc sous la forme
zi+1zi
(xxi)2+zi(xxi)+yi

Si(x) =
2( xi+1xi)

(4.60)
Il ne reste donc plus qu' calculer les zi. Pour cela on crit les quations de continuit
de la spline au point xi+1

zi+1zi
(xi+1xi)2+zi(xi+1xi)+yi

Si(xi+1) =
2( xi+1xi)

zi+1zi
(xi+1xi)+zi(xi+1xi)+yi

=
2

= yi+1

(4.61)

On en dduit donc que

yi+1yi
zi

zi+1 = 2

(i = 0,1,...,n1)

xi+1xi

(4.62)
Et on voit apparatre naturellement la condition supplmentaire qui sera ici une
condition d'initialisation de la rcurrence sur les zi. On doit donc choisir
z0 = S0(x0)

(4.63)
Remarque 44 On peut donner n'importe quelle valeur z0, mais gnralement on choisit z0 =
0. Notons qu'au lieu de fixer z0, on aurait pu fixer zn et faire une rcurrence descendante.
Les figures 4.7 et 4.8 montrent les rsultats obtenus pour la fonction de Runge respectivement
aux points [5,3,1,1,3,5] et [5,3,0,1,1,3,5]. On remarque que le fait d'ajouter le point 0
amliore les rsultats au voisinage de 0 mais dgrade les rsultats sur l'intervalle [2,5]. On
observe en effet des oscillations de forte amplitude.

Figure 4.7: Spline quadratique aux points [5,3,1,1,3,5]

Figure 4.8: Spline quadratique aux points [5,3,1,0,1,3,5]

4.2.3 Splines cubiques


L'interpolation par des splines cubiques (polynmes de degr 3) entrane la continuit de la
spline, de sa drive et de la drive seconde. Dfinissons yi = S(xi), et crivons Si(x) sous la
forme

Si(x) = ai(xxi)3+bi(xxi)2+ci(xxi)+di

(4.64)
Ayant 4n coefficients dterminer, nous ne disposons cette fois-ci que de (4n1) quations;
les (3n1) conditions identiques celles de la spline quadratique et les (n1) conditions

supplmentaires de continuit de la drive seconde. Il faut donc fixer deux conditions


supplmentaires. On impose gnralement les valeurs des drives secondes aux points x0 et
xn.
y0 = S0(x0)

(4.65)
et
yn = Sn1(xn)

(4.66)
Les conditions d'interpolation aux points xi donnent
di = yi

(4.67)
Les conditions de continuit de la drive et de la drive seconde entranent
1
(yi+1yi)

ai =
6hi

(4.68)
1
yi

bi =
2

(4.69)
1

1
hi(yi+1+2yi)

(yi+1yi)

ci =
hi

(4.70)
avec
hi = xi+1xi

(4.71)
Il suffit donc maintenant de calculer les yi, (i = 0,1,...,n2).
L'criture de la continuit de la spline en utilisant les galits prcdentes donne le systme
d'quations (n2) inconnues permettant d'obtenir les yi,(i = 1,1,...,n2)
[

2(h0+h1)

h1

h1

2(h1+h2)

h2

h2

2(h2+h3)

h3

h3

hn3

hn3

2(hn3+hn2)

hn2

hn2

2(hn2+hn1)

]
[
y(1)

y(2)

y(3)

y(n2)

y(n1)

]=[
[6/(h0)](y1y0)+[6/(h1)](y2y1)h0y0

[6/(h1)](y2y1)+[6/(h2)](y3y2)

[6/(h2)](y3y2)+[6/(h3)](y4y3)

[6/(hn3)](yn2yn3)+[6/(hn2)](yn1yn2)

[6/(hn2)](yn1yn2)+[6/(hn1)](ynyn1)hn1yn

]
La figure 4.9 montre un exemple de spline cubique obtenue pour la fonction de Runge aux
points d'interpolation
x0 = 5,x1 = 3,x2 = 1,x3= 0,x4 = 1,x5 = 3,x6 = 5

Figure 4.9: Spline cubique aux points [5,3,1,0,1,3,5]


On remarquera que dans ce cas les oscillations dont trs rduites par rapport l'interpolation
polynomiale.
Remarque 45 Quand on choisit
y0 = yn = 0

(4.72)
la spline cubique est dite naturelle.

Thorme 46 [Optimalit de la Spline cubique naturelle] Soit f une fonction C2 sur


l'intervalle [ a,b] , et soit (n+1) points
a = x0,x1,...,xn = b

(4.73)
et
f(a) = y0,y1,...,yn = f(b)

(4.74)
alors la spline cubique naturelle S(x) qui ralise l'interpolation de f aux points (xi,yi) vrifie

[ S(x)] 2 dx

[ f(x)] 2 dx

(4.75)
En d'autres termes, la courbure moyenne de S est infrieure celle de f.

Commentaires sur ce polycopi smam@iup.univ-evry.fr

Said Mammar
Lundi 22 Novembre 1999

You might also like