03MN InterpolationApproximation
03MN InterpolationApproximation
3.1 Introduction
PROBLEME
Nous disposons d'un ensemble de couples de données ( x i , y i ) , regroupés par
exemple dans un tableau, et qui représentent les valeurs d'une grandeur de
sortie (output) y en fonction d'une grandeur d'entrée (input) x .
x x0 x1 ⋯ x n −1 xn
y y0 y1 ⋯ y n −1 yn
SOLUTION
La démarche standard de résolution de ce problème consiste à déterminer un
polynôme d'approximation pour la fonction en question: On trouve un
polynôme p n ( x ) de degré n (ou moins) dont les valeurs coïncident avec les
valeurs de y données:
pn ( x 0 ) = y 0 , pn ( x 1 ) = y 1 , ⋯ , pn ( x n ) = y n
p n ( x ) est appelé polynôme d'interpolation et les points x 0 , x 1 , ⋯ , x n sont
appelés nœuds d'interpolation.
Si f ( x ) est la fonction décrite par les couples de valeurs donnés, alors p n ( x )
est appelé approximation polynomiale de f ( x ) . On peut "légitimement"
utiliser p n ( x ) pour calculer les valeurs de f ( x ) pour x entre x 0 et x n
("interpolation") ou quelques fois en dehors de cet intervalle
("extrapolation").
Les raisons de l'utilisation de polynômes pour l'approximation de fonctions sont
importantes:
Interpolation de Lagrange:
n
f ( x ) ≈ p n ( x ) = Lk ( x )f k
k =0
1 si x = x k
où Lk ( x ) = et les fonctions Lk sont indépendantes de la
0 autrement
fonction interpolée f .
INTERPOLATION LINEAIRE
Interpolation linéaire signifie interpolation par un polynôme du premier degré
p1 ( x ) = ax + b . Géométriquement c'est l'interpolation par un segment de ligne
droite passant par les deux points de coordonnées ( x 0 , f 0 ) et ( x 1 , f 1 ) .
INTERPOLATION QUADRATIQUE
Interpolation quadratique signifie interpolation par un polynôme du second
degré p 2 ( x ) = ax 2 + bx + c . Géométriquement c'est l'interpolation par un
segment parabolique passant par les points de coordonnées ( x 0 , f 0 ) , ( x 1 , f 1 )
et ( x 2 , f 2 ) .
L'interprétation de la formule de Lagrange dans ce cas permet d'écrire
p 2 ( x ) = L0 ( x ) f 0 + L1 ( x ) f 1 + L2 ( x ) f 2 . Il s'avère que
l0 (x ) ( x − x 1 )( x − x 2 )
L0 ( x ) = =
l 0 ( x 0 ) ( x 0 − x 1 )( x 0 − x 2 )
l1 ( x ) ( x − x 0 )( x − x 2 )
L1 ( x ) = =
l 1 ( x 1 ) ( x 1 − x 0 )( x 1 − x 2 )
l2 (x ) ( x − x 0 )( x − x 1 )
L2 ( x ) = =
l 2 ( x 2 ) ( x 2 − x 0 )( x 2 − x 1 )
Ces fonctions satisfont aux exigences des polynômes de base de l'interpolation
de Lagrange: Le numérateur fait que Lk ( x i ) = 0 si i ≠ k , étant donné que tous
les termes de la forme (x − x i ) pour i ≠ k sont présents. Le dénominateur
devient égal au numérateur dans le cas i = k et ainsi Lk ( x k ) = 1 .
L0 ( x ) =
(x − 3.5 )( x − 5.0 )
= x 2 − 8.5x + 17.5 L0 ( 3.2 ) = 0.54
( 3.0 − 3.5 )( 3.0 − 5.0 )
( x − 3.0 )( x − 5.0 ) = − 1 x 2 − 8x
L1 ( x ) =
( 3.5 − 3.0 )( 3.5 − 5.0 ) 0.75
( )
+ 15 L1 ( 3.2 ) = 0.48
(x − 3.0 )( x − 3.5 )
L2 ( x ) =
(5.0 − 3.0 )(5.0 − 3.5 )
=
3
(
1 2
x − 6.5x + 10.5 ) L2 ( 3.2 ) = −0.02
On obtient directement
p 2 ( 3.2 ) = 0.54 (1.098612 ) + 0.48 (1.252763 ) − 0.02 (1.609438 ) = 1.162388
L'erreur contenue dans le résultat est
ε = x − xɶ = 1.163151 − 1.162388=0.000763 . Ainsi l'interpolation quadratique
pour ce problème permet d'améliorer la précision pour arriver à 3D (3 positions
décimales justes). Il faut quand même noté que le troisième nœud ajouté
( x=5.0 ) est assez éloigné de celui qui était précédemment le plus grand
( x=3.5 ) , ce qui n'est pas propre à provoquer une forte amélioration de la
précision.
ε n ( x ) = f ( x ) − p n ( x ) = ( x − x 0 )( x − x 1 ) ⋯ ( x − x n )
f (t )
(n +1)
(1)
( n + 1) !
Pour un convenable t situé entre x 0 et x n .
Le premier cas est évident: Si la fonction f est un polynôme, alors elle coïncide
avec p n parce que les n + 1 points d'interpolation détermine un polynôme
unique. Dans le cas général d'une fonction f quelconque, ε n ( x ) désigne
l'erreur contenue dans p n ( x ) en tant que valeur approchée de f ( x ) .
Cependant, l'existence de cette dérivée ne signifie pas toujours qu'on est arrivé,
car sa détermination peut représenter une difficulté considérable. Si donc la
dérivée f ( ) (t ) est difficile ou impossible à obtenir, on peut appliquer le
n +1
( x n , f n ) à la forme
p n ( x ) = p n −1 ( x ) + g n ( x ) (2)
Avec
g n ( x ) = p n ( x ) − p n −1 ( x ) .
g n ( x ) est une fonction qui doit être telle que p n ( x 0 ) = f 0 , p n ( x 1 ) = f 1 , ⋯ ,
p n ( x n ) = f n . Etant donné que p n ( x ) et p n −1 ( x ) coïncident aux n premiers
nœuds d'interpolation x 0 , x 1 , ⋯ , x n −1 , il est évident que g n ( x ) doit être nulle
à ces points. Ainsi, g n ( x ) sera généralement un polynôme de degré n et doit
être de la forme
g n ( x ) = a n ( x − x 0 )( x − x 1 ) ⋯ ( x − x n −1 ) (3)
En combinant tout ce qui précède et considérant le point x = x n , nous arrivons
à
g n ( x n ) = p n ( x n ) − p n −1 ( x n ) = a n ( x n − x 0 )( x n − x 1 ) ⋯ ( x n − x n −1 )
p n ( x n ) − p n −1 ( x n )
Ce qui donne a n = .
( x n − x 0 )( x n − x 1 ) ⋯ ( x n − x n −1 )
Sachant que p n ( x n ) = f n on obtient enfin
f n − p n −1 ( x n )
an =
( x n − x 0 )( x n − x 1 ) ⋯ ( x n − x n −1 )
p 2 ( x ) = p1 ( x ) + a 2 ( x − x 0 )( x − x 1 )
= p 0 ( x ) + ( x − x 0 ) f x 0 , x 1 + a 2 ( x − x 0 )( x − x 1 )
= p 0 ( x ) + ( x − x 0 ) f x 0 , x 1 + ( x − x 0 )( x − x 1 ) f x 0 , x 1 , x 2
Sachant que p 0 ( x ) = f 0 , l'application répétée de la formule pour k = 1,⋯ , n
donne finalement la formule d'interpolation de la différence divisée de
Newton:
f ( x ) ≈ p n ( x ) = f 0 + ( x − x 0 ) f x 0 , x 1 + ⋯
+ ( x − x 0 )( x − x 1 ) ⋯ ( x − x n −1 ) f x 0 , x 1 ,⋯ , x n
Dans la copie du tableau qui suit, les valeurs calculées ont été remplacées par
leurs notations respectives. On reconnaît sur fond gris les deux chemins
(formant un "V") qui permettent d'arriver au résultat
f x 1 , x 2 , x 3 = −0.028344 . Ces chemins permettent surtout de voir les nœuds
d'interpolation qui interviennent dans le calcul de chaque résultat. Pour le cas
de f x 1 , x 2 , x 3 on a:
f −f 1.435084 − 1.252763
A l'étape 1: f x 1 , x 2 = 2 1 = = 0.260459
x 2 − x1 4.2 − 3.5
f −f 1.609438 − 1.435084
et f x 2 , x 3 = 3 2 = = 0.217943
x3 − x2 5.0 − 4.2
f x 2 , x 3 − f x 1 , x 2
A l'étape 2: f x 1 , x 2 , x 3 =
x 3 − x1
0.217943 − 0.260459
= = −0.028344
5.0 − 3.5
k xk fk = f (x k ) f x k , x k +1 f x k , x k +1 , x k +2 f x k ,⋯ , x k +2 , x k +3
0 3.0 1.098612
f x 0 , x 1
1 3.5 1.252763 f x 0 , x 1 , x 2
f x 1 , x 2 f x 0 , x 1 , x 2 , x 3
2 4.2 1.435084 f x 1 , x 2 , x 3
f x 2 , x 3
3 5.0 1.609438
f (x1 ) − f (x 0 )
D'après le théorème de la valeur moyenne = f ′ (c ) pour une
x1 − x 0
certaine valeur c située entre x 0 et x 1 . D'où
f x 0 , x 1 = f ′ (c )
Nous découvrons ainsi que la différence divisée est beaucoup semblable à la
dérivée, en particulier si x 0 et x 1 sont bien proches. En fait, la relation
x1 + x 0
f ′ = f x 0 , x 1
2
représente une approximation assez précise de la dérivée.
x1 + x 0
f ′ = − sin (1.05 ) = −0.86742 ≈ f x 0 , x 1
2
x 2 + x1
f ′ = − sin (1.15 ) = −0.91276 ≈ f x 1 , x 2
2
x3 + x2
f ′ = − sin (1.25 ) = −0.94898 ≈ f x 2 , x 3
2
x4 + x3
f ′ = − sin (1.35 ) = −0.97572 ≈ f x 3 , x 4
2
Il faut noter que les valeurs x k dans ces calculs représentent des radians.
Avec les différences d'ordre supérieur on obtient
−0.912380 − (−0.867060)
f x 0 , x 1 , x 2 = = −0.226600
1.2 − 1.0
−0.948590 − (−0.912380)
f x 1 , x 2 , x 3 = = −0.181050
1.3 − 1.1
−0.181050 − (−0.226600)
f x 0 , x 1 , x 2 , x 3 = = −0.151833
1.3 − 1.0
Pour comparaison
1 1
f ′′ ( x 1 ) = − cos (1.1) = −0.22680 ≈ f x 0 , x 1 , x 2
2 2
1 1
f ′′ ( x 2 ) = − cos (1.2 ) = −0.181179 ≈ f x 1 , x 2 , x 3
2 2
1 x + x3 1
f ′′′ 2 = sin (1.25 ) = −0.158164 ≈ f x 0 , x 1 , x 2 , x 3
6 2 6
En général, étant donné n + 1 points distincts x 0 , x 1 ,⋯ , x n d'une fonction
f ( x ) avec n ≥ 2 la différence divisée d'ordre n est une approximation de
la dérivée nième de la fonction f ( x ) :
1 (n )
f (c )
f x 0 , x 1 ,⋯ , x n = (4)
n!
Pour un certain c intermédiaire aux points x 0 , x 1 ,⋯ , x n , c'est-à-dire
c ∈ I = min ( x 0 , x 1 ,⋯ , x n ) , max ( x 0 , x 1 ,⋯ , x n )
La relation (4) suppose que la fonction f ( x ) est autant de fois dérivable et
continue sur l'intervalle I .
f (x1 ) − f (x 0 ) f (x 0 ) − f (x1 )
f x 0 , x 1 = = = f x 1 , x 0 .
x1 − x 0 x 0 − x1
Ceci veut dire que l'ordre de x 0 et x 1 n'a pas d'importance. Lorsqu'on
développe la différence
f x 1 , x 2 − f x 0 , x 1
f x 0 , x 1 , x 2 = ,
x2 − x0
on obtient
f (x 0 ) f (x1 ) f (x 2 )
f x 0 , x 1 , x 2 = + + .
( x 0 − x 1 )( x 0 − x 2 ) ( x 1 − x 0 )( x 1 − x 2 ) ( x 2 − x 0 )( x 2 − x 1 )
Cette formule montre que l'ordre des nœuds x 0 , x 1 , x 2 n'a aucune influence sur
le résultat final. En général on montre que la différence divisée
f x 0 , x 1 ,⋯ , x 2 est indépendante de l'ordre des points, même si les valeurs
obtenues aux étapes intermédiaires dépendent de cet ordre.
1! 2! 3!
Et de façon compacte,
f (x ) =
∞ f (n )
(x 0 )
(x − x0)
n
n =0 n!
On rappelle que f ( ) ( x ) = f ( x ) .
0
Il est évident que la somme infinie devra être remplacée par des valeurs
approchées dans la résolution de problèmes pratiques. Pour l'exploitation dans
les problèmes numériques la série de Taylor est aussi écrite de la façon
suivante:
f ′ (x 0 ) f ′′ ( x 0 ) f (n )
(x 0 )
f (x ) = f (x 0 ) + (x − x0) + (x − x0) +⋯+ (x − x 0 ) + Rn
2 n
1! 2! n!
Le terme R n est appelé terme résiduel ou terme d'erreur, et vérifie
lim Rn = 0 .
n →∞
1! 2! n!
est un polynôme de degré n en x , et il est appelé approximation
polynomiale de Taylor de degré n de f ( x ) développée au point x 0 . Le
terme R n est l'erreur de contenue dans l'approximation de f ( x ) par Pn ( x ) .
On l'appelle aussi erreur de troncature.
EXEMPLE 6
Déterminer l'approximation polynomiale de Taylor d'ordre n = 3 pour la
fonction f ( x ) = ln ( x + 1) au point x = 0 .
SOLUTION
On détermine les fonctions dérivées et les valeurs de celles-ci au point de
développement:
f ( x ) = ln ( x + 1) f (0) = 0
1
f ′ (x ) = f ′ (0) = 1
x +1
−1
f ′′ ( x ) = f ′′ ( 0 ) = −1
( x + 1)
2
2
f ′′′ ( x ) = f ′′′ ( 0 ) = 2
(x + 1)
3
Ainsi,
f ′ (x 0 ) f ′′ ( x 0 ) f ′′′ ( x 0 )
ln ( x + 1) ≈ f ( x 0 ) + (x − x0) + (x − x0) + (x − x0)
2 3
1! 2! 3!
f ′′ ( 0 ) f ′′′ ( 0 )
= f (0 ) + f ′ (0) ⋅ x + ⋅x2 + ⋅x 3
2! 3!
2 3
x x
=x − +
2 3
−6 f (4)
(t ) x 4 = −6 x4 −x 4
En effet, f (4)
(x ) = , et R 3 = ⋅ = .
(x + 1) (t + 1) 4 ⋅3⋅2 4 (t + 1)
4 4 4
4!
−0.0001265625 0.0001265625
R3 = ≤ = 0.0001265625
(t + 1) ( 0 + 1)
4 4