Chapitre 2 Interpolation
Chapitre 2 Interpolation
Chapitre 2 Interpolation
Hasnaoui
Interpolation polynomiale
I- Introduction
Le problème posé est le suivant:
A partir d'une fonction f(x) connue en (n + 1) points de la forme [(xi, f(xi) avec i = 0, 1, …,
n], peut-on construire une approximation de f(x) pour tout x ?
Les points [(xi, f(xi)) avec i = 0, 1, …, n] sont appelés points de collocation ou points
d'interpolation. Ils peuvent provenir essentiellement de données expérimentales ou
numériques.
Théorème
Un polynôme de degré n de forme générale
pn(x) = a0 + a1x + … + anxn (an 0)
possède exactement n racines qui peuvent être réelles ou complexes conjuguées.
Corollaire
Par (n + 1) points de collocations [(xi, f(xi)) avec i = 0, 1, …, n], on ne peut faire passer
qu'un et un seul polynôme de degré n.
Démonstration
Admettons l'existence de deux polynômes de degrés n chacun, notés pn(x) et gn(x), passant
par les (n + 1) points de collocation.
Considérons alors le polynôme q(x) = pn(x) - gn(x) qui est au plus de degré n.
On notera que le polynôme q(x) vérifie q(xi) = pn(xi) - gn(xi) = f(xi) – f(xi) = 0 ; i = 0,
1, … , n.
=
1 x n x 2n x nn a n f ( x n )
Li ( x i ) 1 i
Li ( x j ) 0 j i
Dans ce cas, le polynôme défini par
n
L ( x ) f ( x i )Li ( x )
i 0
est un polynôme de degré n car chacun des polynômes Li ( x ) est de degré n. De plus, le
polynôme L ( x ) passe par les (n + 1) points de collocation.
Preuve :
n
L ( x j ) f ( x j )L j ( x j ) f(x
)L ( x ) f ( x )
i 0 ,i j
i i j j j C’est le polynôme recherché d’après
0
le théorème de l’unicité.
Il reste donc à déterminer les polynômes Li ( x ) .
1- Polynôme de degré 1
Si l’on dispose uniquement de deux points de collocation, ( x 0 , f ( x 0 )) et (x 1 , f (x 1 )) , on doit
construire deux polynômes L0 ( x ) et L1 ( x ) . On montre qu’ils sont définis par :
(x x1 ) (x x 0 )
L0 (x) et L1 ( x )
(x 0 x1 ) (x1 x 0 )
2- Polynôme de degré 2
La recherche du polynôme de degré 2 passant par les 3 points ( x 0 , f ( x 0 )) , (x 1 , f (x 1 ))
et (x 2 , f (x 2 )) , nécessite la construction de 3 fonctions Li ( x ) de degré 2 chacune.
En se basant sur le cas précédent, on peut déduire facilement que :
( x x 1 )(x x 2 ) ( x x 0 )( x x 2 )
L0 (x) , L1 ( x )
( x 0 x 1 )(x 0 x 2 ) ( x 1 x 0 )( x 1 x 2 )
( x x 0 )( x x 1 )
et L2 (x)
( x 2 x 0 )( x 2 x 1 )
3- Polynôme de degré n
On dispose dans ce cas de (n 1) points de collocations et le même raisonnement peut être
généralisé pour conduire au résultat suivant :
( x x 1 )(x x 2 )(x x 3 )...(x x n )
L0 (x) qui est un polynôme de degré n.
( x 0 x 1 )(x 0 x 2 )(x 0 x 2 )...(x 0 x n )
Pour L1 ( x ) on aura :
( x x 0 )(x x 2 )(x x 3 )...(x x n )
L1 ( x )
( x 1 x 0 )(x 1 x 2 )(x 1 x 2 )...(x 1 x n )
( x x 0 )...(x x i 1 )(x x i 1 )...(x x n )
L i (x)
( x i x 0 )...(x i x i 1 )(x i x i 1 )...(x i x n )
Théorème
Etant donné (n 1) points d’interpolation [(x i , f (x i )), i 0, 1, ... , n] , l’unique polynôme
d’interpolation de degré n passant par tous ces points peut s’écrire :
n
L ( x ) p n ( x ) f ( x i )Li ( x )
i 0
p n (x) a 0 a 1 x ... a n x n (a n 0)
Cependant, d’autres écritures existent et elles sont plus appropriées pour traiter des
problèmes d’interpolation. Examinons l’écriture suivante :
p n (x) a 0
a 1 (x x 0 )
a 2 (x x 0 )(x x 1 )
a n 1 (x x 0 )(x x1 )...(x x n 2 )
a n (x x 0 )(x x1 )...(x x n 1 )
Le coefficient de an comporte n monômes de la forme ( x x i ) et, par conséquent, le
polynôme pn(x) est de degré n.
Pour x = x0 :
p n (x 0 ) a 0 f (x 0 )
On doit s’assurer ensuite que p n (x 1 ) f (x 1 ) , c’est-à-dire :
p n (x1 ) a 0 a 1 (x1 x 0 ) f (x 0 ) a 1 (x1 x 0 ) f (x1 )
f (x1 ) f (x 0 )
a1
x1 x 0
Définition 1
On définit les premières différences divisées de la fonction f(x) par :
f ( x i 1 ) f ( x i )
f [ x i , x i 1 ]
x i 1 x i
Ainsi, suivant cette définition, le coefficient a1 peut s’écrire a 1 f [x 0 , x 1 ] .
Remarque
On peut montrer facilement que le polynôme
p1 (x) f (x 0 ) f [x 0 , x1 ](x x 0 )
1
Donc a 2 [f ( x 2 ) f ( x 0 ) f [ x 0 , x 1 ](x 2 x 0 )]
( x 2 x 0 )(x 2 x 1 )
1 f (x 2 ) f (x1 ) f (x1 ) f (x 0 ) (x1 x 0 ) (x x 0 )
a2 [ f [x 0 , x1 ] 2 ]
(x 2 x 0 ) (x 2 x1 ) (x1 x 0 ) (x 2 x1 ) (x 2 x1 )
1
a2 [f [ x 1 , x 2 ] f [ x 0 , x 1 ]]
(x 2 x 0 )
Définition 2
Les deuxièmes différences divisées de la fonction f(x) sont définies à partir des premières
différences divisées par la relation :
f [ x i 1 , x i 2 ] f [ x i , x i 1 ]
f [ x i , x i 1 , x i 2 ]
(x i2 x i )
De même, les nièmes différences divisées de la fonction f(x) sont définies à partir des (n-1)
ièmes différences divisées de la façon suivante :
f [ x 1 , x 2 ,..., x n ] f [ x 0 , x 1 ,..., x n 1 ]
f [ x 0 , x 1 ,..., x n ]
(x n x 0 )
- Suivant cette notation, on aura a 2 f [x 0 , x1 , x 2 ] qui est une deuxième différence divisée de f(x).
- Le polynôme p 2 (x) f (x 0 ) f [x 0 , x1 ](x x 0 ) f [x 0 , x1 , x 2 ](x x 0 )(x x1 )
p1 (x) f [x 0 , x1 , x 2 ](x x 0 )(x x1 )
passe par les 3 premiers points de collocation. On peut l’obtenir simplement par l’ajout d’un
terme de degré 2 au polynôme p1(x) déjà calculé.
Théorème
L’unique polynôme de degré n passant par les (n 1) points de collocation
[(x i , f (x i )), i 0, 1, ... , n] peut s’écrire selon la formule d’interpolation de Newton :
p n (x) p n 1 (x) a n (x x 0 )(x x1 )...(x x n 1 )
a i f [x 0 , x1 , x 2 ,..., x i ] pour 0 i n
Démonstration
On raisonne par récurrence en admettant le résultat vrai pour les polynômes de degré
(n 1) et montrons qu’il est vrai pour le polynôme de degré n.
Et
Lemme
L’unique polynôme pn(x) passant par les points [(x i , f (x i )), i 0, 1, ... , n 1] s’écrit :
( x x )p n 1 ( x ) ( x x 0 )q n 1 ( x )
p n (x) n
(x n x 0 )
Preuve du Lemme
( x x )p n 1 ( x ) ( x x 0 )q n 1 ( x )
Il suffit de s’assurer que le polynôme p n ( x ) n passe par
(x n x 0 )
les points [(x i , f (x i )), i 0, 1, ... , n] et garder en mémoire l’unicité du polynôme
d’interpolation.
On a :
p n (x 0 ) p n 1 (x 0 ) f (x 0 )
p n (x n ) q n 1 (x n ) f (x n )
C’est-à-dire :
(x n x 0 )
p n ( x ) p n 1 ( x ) [q n 1 ( x ) p n 1 ( x )] (4)
(x n x 0 )
Pour les polynômes p n1 ( x ) et q n1 ( x ) , les coefficients de la puissance xn-1 sont
respectivement an-1 et bn-1 en vertu de l’hypothèse d’induction (Eqs. (2) et (3)). Selon
l’équation (4), le coefficient de la puissance xn de pn(x) est :
b n 1 a n 1
a n (égalité en vertu de (l))
xn x0
La formule (4) permet aussi de trouver les racines du polynôme p n (x) p n 1 (x) qui sont x0,
x1, …, xn-1. Ce polynôme s’écrit donc :
p n (x) p n 1 (x) a n (x x 0 )(x x1 )...(x x n 1 )
ce qui achève la démonstration du Lemme.
Remarque
La manière la plus simple pour déterminer le polynôme de Newton consiste à construire une
table dite table de différences divisées.
Construction de la table :
xi f (x i ) f [ x i , x i 1 ] f [ x i , x i 1 , x i 2 ] f [ x i , x i 1 , x i 2 , x i 3 ]
x0 f (x 0 )
f [x 0 , x 1 ]
x1 f (x 1 ) f [x 0 , x 1 , x 2 ]
f [x 1 , x 2 ] f [x 0 , x 1 , x 2 , x 3 ]
x2 f (x 2 ) f [x 1 , x 2 , x 3 ]
f [x 2 , x 3 ]
x3 f (x 3 )
Pour la lecture, on a :
f [x1 , x 2 ] f [x 0 , x1 ]
f [x 0 , x1 , x 2 ]
(x 2 x 0 )
f [x 2 , x 3 ] f [x1 , x 2 ]
f [x1 , x 2 , x 3 ]
(x 3 x1 )
f [x1 , x 2 , x 3 ] f [x 0 , x1 , x 2 ]
f [x 0 , x1 , x 2 , x 3 ]
(x 3 x 0 )
Exercice
Construire la table des différences divisées pour les points suivants (0, 1), (1, 2), (2, 9) et
(3, 28).
xi f ( xi ) f [ x i , x i 1 ] f [ x i ,..., x i 2 ] f [ x i ,..., x i 3 ]
0 1
1
1 2 3
7 1
2 9 6
19
3 28
0 1
1
1 2 3
7 1
2 9 6 3/ 5
19 2
3 28 2
13
5 54
Le polynôme de degré 4 recherché est :
p 4 ( x ) p 3 ( x ) 3 / 5( x 3)(x 2)(x 1)(x 0)
correction d 'ordre 4
Exercice
Calculer le polynôme p3(x) passant par les points de collocation (0, 1), (1, 0), (2, 7) et (3, -26)
en utilisant :
- La matrice de vandermonde.
- L’interpolation de Largrange.
- Le polynôme de Newton.
- Conclure.
V- Splines cubiques
Les techniques d'interpolation basées sur les polynômes de Lagrange ou de Newton
conduisent au même polynôme écrit différemment et obtenu par des démarches différentes.
Dans la démarche de Lagrange, il y a absence de relation simple entre le polynôme de
Lagrange de degré n relatif à la partition (xi, i = 0, 1, .., n) et celui de degré (n+1) relatif à la
subdivision (xi, i = 0, 1, …, n, n+1). Numériquement parlant, ceci est un inconvénient auquel
l'interpolation de Newton remédie.
L'utilisation de polynômes de faibles degrés nécessite plusieurs polynômes pour relier tous
les points de collocation. C'est le cas d'interpolation linéaire par morceau qui consiste à relier
chaque paire de points par un segment de droite; elle porte l'appellation de splines linéaires ou
interpolation linéaire. Seulement, cette technique d'interpolation ne répond pas aux souhaits des
designers, des expérimentateurs et des numériciens qui cherchent des profils lisses. La
méthode des splines cubiques n'utilise pas des polynômes de degrés élevés et constitue une
alternative qui répond largement au besoin d'interpolation. Cette technique d’interpolation est
très recommandée et présente de réels avantages par rapport aux méthodes précédemment
décrites.
La méthode d'interpolation par splines cubiques consiste à utiliser, dans chaque intervalle
[xi-1, xi], un polynôme de degré 3 de la forme:
La dérivée première de p i ( x ) :
p i' (x) 3ai (x x i1 ) 2 2b i (x x i1 ) c i (2)
La dérivée seconde de p i ( x ) :
p i' ' (x) 6ai (x x i1 ) 2b i (3)
Le problème d'interpolation par splines cubiques revient ainsi à déterminer, dans chaque sous
intervalle, des coefficients ai, bi, ci et di et à relier les différents polynômes de façon que la
courbe soit deux fois différentiables.
p i ( x i ) p i1 ( x i )
' '
pour i 1, ... , (n 1)
'' (2n 2) équations
p i ( x i ) p i1 ( x i ) f i ( x i ) f i
'' '' ''
pour i 1, ... , (n 1)
''
p i (x)
M i (x) 3ai ( x x i 1 ) b i (4)
2
Pour x = xi-1:
(1) p i (x i1 ) d i p i pour i = 1, 2, …, n (5)
(4) M i (x i1 ) M i b i pour i = 1, 2, …, n (6)
Pour x = xi:
(4) Mi1 (x i ) M i (x i ) 3ai (x i x i1 ) Mi Mi1
M M M i 1 M i
ai i 1 i pour i = 1, 2, …, n (7)
3( x i x i 1 ) 3h i
avec h i x i x i1
M i 1 M i
p i 1 h 3i M i h i2 c i h i p i
3h i
M i 1 M i
p i (x) ( x x i 1 ) 3 M i ( x x i 1 ) 2
3h i
(i = 1, 2, …, n) (9)
p p (M i 1 2M i )
[ i 1 i h i ]( x x i 1 ) p i
hi 3
M i 1 M i
p' i ( x ) ( x x i 1 ) 2 2M i ( x x i 1 )
hi
(i = 1, 2, …, n) (10)
p p (M i 1 2M i )
[ i 1 i h i ]
hi 3
M i 1 M i
p' ' i ( x ) 2 ( x x i1 ) 2M i (i = 1, 2, …, n) (11)
hi
M i 1 M i 2 p pi M 2M i
h i 2M i h i [ i 1 h i i 1 ]
hi hi 3
[i = 1, 2, …, (n – 1)] (13)
p p i 1 M 2M i 1
i2 h i 1 i 2
h i 1 3
Remarque
Les deux nœuds extrêmes sont exclus.
Dans l'équation (13), les inconnus sont les Mi. On arrangera l'écriture de cette équation sous
la forme:
p Pi 1 p i 1 p i
M i h i 2M i 1 (h i h i 1 ) h i 1M i 2 3[ i 2 ] i 1 (14)
h i 1 hi
[i = 1, 2, …, (n – 1)]
Pour chaque indice i, l'équation (14) contient trois inconnus. L'expression de i1 peut être
déduite en comparant les équations (13) et (14).
L'équation (14), est une écriture condensée d'un système de (n 1) équations, elle peut être
réécrite sous la forme matricielle suivante:
M1
2(h 1 h 2 ) M
h 1 h2 0 0 0 0
0 2 2
0 h2 2(h 2 h 3 ) h 3 0 0 0
0 3
0 0 0 0
0 =
0 0
0 0 0
0 0 0 0 0
M
0 2(h n 1 h n ) h n
n n
0 0 0 0 h n 1
M n 1
- Splines naturelles
Ce choix consiste à imposer M1 = Mn+1 = 0. On se ramène dans ce cas à la résolution d'un
système tridiagonal.
2(h 1 h 2 ) h2 0 0 0 0 M 2 2
h2 2(h 2 h 3 ) h 3 0 0 0 M
3 3
0 0 0
=
0 0 0
0 0 0
0 0 0 0 h n 1 2(h n 1 h n ) M n n
- Autre choix
M1 M 2
Choix imposant une courbure constante dans le premier et le dernier intervalles.
M n 1 M n
D'autres choix sont aussi possibles; ils permettent également de ramener le problème à un système
tridiagonal dont les avantages ne sont plus à démontrer.
But
A partir de données expérimentales, numériques ou tabulaires restreintes (nombre réduit de données),
on désire élaborer un code numérique qui permet de générer un plus grand nombre de points (pour
avoir des courbes régulières) en utilisant la méthode d'interpolation par splines cubiques.
Formulation
On dispose du tableau suivant montrant des valeurs expérimentales obtenues en mesurant la vitesse
(en km/h) d'un véhicule toutes les 5 secondes:
t (s) 0 5 10 15 20 25 30 35 40 45
v(km/h) 70 75 73 69 70 75 69 72 67 64
1- Montrer que, sur la base des données du tableau précédent, l'interpolation basée sur l'utilisation du
polynôme Lagrange (ou de Newton) conduirait à des erreurs importantes aux temps t = 2.5s et 42.5s.
Justifier votre réponse en déduisant les valeurs de la vitesse à partir du polynôme de Lagrange de
degré 9 (polynôme construit à partir de 10 points de collocation).
Rappel
La forme générale du polynôme de Lagrange de degré n est
in
p n (x) f (x i )Li (x)
i 0
où f(xi) est une fonction connue par ses valeurs aux nœuds de collocation et nulle part ailleurs et les
polynômes Li(x) sont donnés par:
( x x 0 )(x x1 )...(x x i 1 )(x x i 1 )...(x x n )
Li ( x ) (i = 0, 1, …, n)
( x i x 0 )(x i x1 )...(x i x i 1 )(x i x i 1 )...(x i x n )
2-Développer un code numérique adéquat utilisant la méthode des splines cubiques et générer, à partir
du tableau précédent, 100 points ((xj, f(xj), avec j variant de 0 à 50).
3- Tracer la courbe de la vitesse en fonction du temps.
4- Déduire les valeurs de la vitesse aux temps t = 2.5s et 42.5s.
5- Conclure.