Développements Limités et Tangentes
Développements Limités et Tangentes
L’approximation a pour but de modéliser une situation à l’aide d’une fonction simple. Avec une
fonction simple, les calculs sont plus rapides. L’interpolation modélise des données partielles par une
fonction. On obtient ainsi une fonction qui permet de prédire des valeurs manquantes.
1. Approximation locale
f (x) ≃ f (x 0 ) + (x − x 0 ) f ′ (x 0 )
En écrivant x = x 0 + h (avec h proche de 0 lorsque x est proche de x 0 ), une autre écriture possible est :
f (x 0 + h) ≃ f (x 0 ) + h f ′ (x 0 )
Exemple.
Considérons f (x) = p1x autour de x 0 = 1. On a f ′ (x) = − 2x1p x . Ainsi f (x 0 ) = 1 et f ′ (x 0 ) = − 21 . Le DL
de f d’ordre 1 autour de x 0 = 1 est :
1 1
p ≃ 1 − (x − 1)
x 2
ou encore :
1 1
p ≃ 1 − h.
1+h 2
1 1
Combien vaut 1.1 ? Avec h = 0.1, on obtient 1.1 ≃ 0.95. Ce qui est proche de la valeur exacte
p p
p1 = 0.953463 . . .
1.1
Sur le dessin de gauche ci-dessous est tracée la courbe de f , ainsi que son DL d’ordre 1 (c’est donc la
tangente à la courbe en x 0 = 1). Sur la figure de droite on mesure l’erreur commise par le DL d’ordre 1,
c’est-à-dire le graphe de f (x) − (1 − 12 (x − 1)).
APPROXIMATION ET INTERPOLATION 2
Normalisation. Le calcul de p1x est particulièrement important car il est utilisé dans la normalisation d’un
vecteur. Par exemple : comment trouver le point P situé à une distance t du point S dans la direction du
vecteur #»
v ? C’est le point :
#»
v
P = S + t #»
∥v∥
.
P
#»
v
.
S
#»
Si #»
v = (vx , v y ) alors v
∥ #»
v∥ = q 1 (vx , v y ). Les calculs de p1 sont désormais directement implémentés dans
v x2 +v 2y x
les processeurs graphiques. Noter que notre approximation par un DL d’ordre 1 n’est valide que pour des
vecteurs qui sont déjà proches d’une norme 1. Une autre technique consiste à appliquer la méthode de
Newton, également basée sur la dérivée ; avec un choix judicieux de la valeur initiale, une seule itération
peut suffire (« astuce de Carmack »).
f ′′ (x 0 ) f (n) (x 0 )
f (x) ≃ f (x 0 ) + f ′ (x 0 )(x − x 0 ) + (x − x 0 )2 + · · · + (x − x 0 )n
2! n!
Exemple.
1 3
p1 3 − 25
Considérons f (x) = x
= x − 2 autour de x 0 = 1. On a f ′ (x) = − 21 x − 2 et f ′′ (x) = 4x et f ′′′ (x) =
7 f (k) (x 0 )
− 15
8 x
−2
ce qui permet de calculer les coefficients k! . Les DL à l’ordre 1, 2 et 3 donnent donc :
1 1
p ≃1− h
1+h 2
1 1 3
p ≃ 1 − h + h2
1+h 2 8
1 1 3 2 5 3
p ≃1− h+ h − h
1+h 2 8 16
Avec h = 0.1 on obtient p1 ≃ 0.953437 via le DL à l’ordre 3, ce qui donne 4 chiffres exacts après la
1.1
virgule.
Exemple.
On souhaite approcher f (x) = sin(x) par un polynôme sur l’intervalle [0, π2 ].
DL en 0. En posant x 0 = 0, on a f (0) = 0, f ′ (0) = 1, f ′′ (0) = 0 et f ′′′ (0) = −1. Le DL à l’ordre 3 en 0 est
donc :
1
sin(x) ≃ x − x 3
6
DL en π4 . En posant x 0 = π4 , on calcule f ( π4 ) = p12 , f ′ ( π4 ) = p12 ,. . . Le DL à l’ordre 3 en π4 est donc :
1 1 π 1 π 2 1 π 3
sin(x) ≃ p + p x − − p x− − p x−
2 2 4 2 2 4 6 2 4
π π
Comparaison. Sur [0, 2 ] le DL en 4 est plus précis que le DL en 0 car l’approximation est centrée sur le
milieu de l’intervalle.
Temps de calculs. Si on n’a pas besoin d’une grande précision mais d’une grande vitesse de calcul,
remplacer le calcul de sin(x) par un DL à l’ordre 3 est une bonne idée.
APPROXIMATION ET INTERPOLATION 4
Voici les premiers termes des développements limités de fonctions usuelles autour de x 0 = 0 :
x2 x3 x4
exp(x) ≃ 1 + x + + + + ···
2! 3! 4!
p x x2 x3
1+ x ≃1+ − + + ···
2 8 16
x3 x5 x7
sin(x) ≃ x − + − + ···
3! 5! 7!
x2 x4 x6
cos(x) ≃ 1 − + − + ···
2! 4! 6!
x 3 2x 5
tan(x) ≃ x + + + ···
3 15
x2 x3 x4
ln(1 + x) ≃ x − + − + ···
2 3 4
∂f ∂f
f (x 0 + h, y0 + k) ≃ f (x 0 , y0 ) + h ∂ x (x 0 , y0 ) + k ∂ x (x 0 , y0 )
Géométriquement le graphe de f (qui est ici une surface) est approché par le plan tangent à ce graphe en
(x 0 , y0 ).
Exemple.
La luminosité perçue dépend de l’intensité I0 de la source et de la distance R0 à cette source selon la
formule
I0
L= 2
R0
Comment évolue cette luminosité lorsque l’intensité ou la distance change ? Le DL à l’ordre 1 de f (x, y) =
x
y2
en (x 0 , y0 ) est :
x0 1 x0
f (x 0 + h, y0 + k) ≃ 2 + h 2 − 2k 3
y0 y0 y0
Ce qui pour notre problème donne :
I0 1 I0
L(I0 + ∆I, R0 + ∆R) ≃ 2 + ∆I 2 − 2∆R 3
R0 R0 R0
Application numérique avec (I0 , R0 ) = (100, 10), qui donne une luminosité initiale L(I0 , R0 ) = 1, et
∆I = 10 et ∆R = 1 :
L(110, 11) ≃ 1 + 0.1 − 0.2 = 0.9.
APPROXIMATION ET INTERPOLATION 5
2. Courbes de Bézier
v#»A
. A
.
B
v#»B
Comme on contrôle le vecteur tangent aux extrémités, on peut en recoller deux ensembles de façon à obtenir
une courbe globale lisse.
.
C
.A
.
B
#»
vB′
v#»B
# » # »
Cette courbe part de P0 suivant le vecteur tangent P0 P1 puis arrive à P3 suivant le vecteur tangent P2 P3
# » # »
(ainsi P0 joue le rôle de A, P3 celui de B et v#»A = P0 P1 et v#»
B = P3 P2 ). Attention la courbe ne passe pas par les
points P1 et P2 !
.
P1
.
P2
.
P0
.
P3
APPROXIMATION ET INTERPOLATION 6
Il faut comprendre l’addition de points comme une addition de vecteurs de R2 : aP + bQ a pour coordonnées
(a x P + b x Q , a y P + b yQ ). Ainsi pour t = 0 on a γ(0) = P0 et pour t = 1 on a γ(1) = P3 .
Voici différents exemples de courbes de Bézier. Tout d’abord si on change la position du point d’arrivée P3
seulement.
.
.
P1
.
. .
P2
.
. .
.. .
. ........
P0
.. . .
.. . .
.. . .
.. ..
.
P0
.
P3
La courbe de Bézier peut parfois avoir des formes surprenantes, par exemple elle peut se recouper elle-même.
.
P2
.
P1
.
P0
.
P3
Bounding box. Noter que la courbe de Bézier est toujours contenue dans le quadrilatère convexe de sommets
P0 , P1 , P2 , P3 . Cela permet d’obtenir un rectangle appelé bounding box (ou boîte englobante) de cette courbe.
Attention, ce rectangle n’est pas nécessairement le rectangle minimal pour la courbe de Bézier.
APPROXIMATION ET INTERPOLATION 7
.
P1
. P2
.
P0
.
P3
Voici la preuve :
d
γ′ (t) = (1 − t)3 P0 + 3(1 − t)2 t P1 + 3(1 − t)t 2 P2 + t 3 P3
dt
= −3(1 − t)2 P0 − 6(1 − t)t P1 + 3(1 − t)2 P1 + 6(1 − t)t P2 − 3t 2 P2 + 3t 2 P3
= 3(1 − t)2 (P1 − P0 ) + 6(1 − t)t(P2 − P1 ) + 3t 2 (P3 − P2 )
# » # » # »
= 3(1 − t)2 P0 P1 + 6(1 − t)t P1 P2 + 3t 2 P2 P3
Ainsi le vecteur tangent initial (au point γ(0) = P0 ) est :
# »
γ′ (0) = 3 P0 P1 .
Celui à la fin (au point γ(1) = P3 ) est :
# »
γ′ (1) = −3 P3 P2 .
# » # »
Ainsi la courbe est bien tangente au départ et à l’arrivée aux vecteurs P0 P1 et P3 P2 .
v#»P = γ′ (t)
n# »P
.
P = γ(t)
.
.
P0
P3
...
...
.....
....
..
...
................
.
.
Connaître les vecteurs tangents et normaux unitaires permet de dessiner le long d’une courbe, tracer une
courbe parallèle (comme des rails, mais attention le second rail n’est pas un translaté du premier) ou bien
de dessiner ou d’écrire du texte le long d’une courbe.
.
P1
t .
P0
. P = γ(t)
Nous parlerons de paramétrisation linéaire (abrégé en lerp pour linear interpolation). Cela signifie que
γ(0) = P0 et γ(1) = P1 et γ(t) est à une distance t de P0 et à une distance 1 − t de P1 (si on suppose que la
distance P0 P1 vaut 1).
Avec trois points. Soient P0 , P1 , P2 ∈ R2 trois points du plan. Pour tracer la courbe de Bézier, on calcule d’une
part la paramétrisation linéaire Q 0 (t) du segment [P0 , P1 ] et d’autre part la paramétrisation linéaire Q 1 (t) du
segment [P1 , P2 ]. Pour chaque t, on obtient un segment [Q 0 (t), Q 1 (t)]. On calcule alors la paramétrisation
linéaire R(t) de ce segment. Ce point R(t) est le point de la courbe de Bézier au paramètre t.
.
P1
t
.
Q 1 (t)
.
Q 0 (t)
t . R(t)
t
.
P0
.
P2
Avec quatre points. On part de quatre points P0 , P1 , P2 , P3 , on calcule trois paramétrisations linéaires
correspondant aux trois segments, on obtient ainsi trois points Q 0 (t), Q 1 (t), Q 2 (t), puis on calcule deux
paramétrisations linéaires R0 (t), R1 (t) correspondant aux deux segments [Q 0 (t), Q 1 (t)], [Q 1 (t), Q 2 (t)],
finalement le point final S(t) de la courbe de Bézier est celui de la paramétrisation linéaire de [R0 (t), R1 (t)].
Noter que cet algorithme est récursif : on calcule le point d’une courbe de Bézier de n points en calculant
des points de plusieurs courbes de Bézier de n − 1 points. Il faut bien noter que le paramètre t ∈ [0, 1] est le
même pour toutes les courbes de Bézier intermédiaires.
P1
. .
Q 1 (t)
.
R1 (t)
.
P2
. .Q 2 (t)
R0 (t)
. S(t)
Q 0 (t)
.
.
P0
.
P3
APPROXIMATION ET INTERPOLATION 10
n
X
γ(t) = bi,n (t)Pi
i=0
3. Approximation globale
Proposition 1.
Si on note le polynôme de Lagrange élémentaire
APPROXIMATION ET INTERPOLATION 11
n
Y X − aj
L i (X ) =
j=0
ai − a j
j̸=i
n
X
P(X ) = bi L i (X )
i=0
Pour la preuve le point clé est de remarquer que pour le polynôme élémentaire L i (X ), on a :
L i (ai ) = 1 et L i (a j ) = 0 pour tout j ̸= i.
Démonstration. Montrons d’abord que le polynôme P(X ) (qui est bien de degré n) convient. En effet
Xn
P(ai ) = b j L j (ai ) = bi L i (ai ) = bi
j=0
Exemple.
Considérons n = 2 et les 3 points (a0 , b0 ), (a1 , b1 ) et (a2 , b2 ). Trouvons l’équation de l’unique parabole
passant par ces trois points. Tout d’abord :
(X − a1 )(X − a2 ) (X − a0 )(X − a2 ) (X − a0 )(X − a1 )
L0 (X ) = L1 (X ) = L2 (X ) =
(a0 − a1 )(a0 − a2 ) (a1 − a0 )(a1 − a2 ) (a2 − a0 )(a2 − a1 )
et donc
P(X ) = b0 L0 (X ) + b1 L1 (X ) + b2 L2 (X ).
Par exemple pour les points (0, 2), (1, 1) et (3, 4), on a :
(X − 1)(X − 3) 1 2
L0 (X ) = = (X − 4X + 3)
(0 − 1)(0 − 3) 3
(X − 0)(X − 3) 1
L1 (X ) = = − (X 2 − 3X )
(1 − 0)(1 − 3) 2
(X − 0)(X − 1) 1 2
L2 (X ) = = (X − X )
(3 − 0)(3 − 1) 6
et donc
2 2 1 4 1
P(X ) = (X − 4X + 3) − (X 2 − 3X ) + (X 2 − X ) = (5X 2 − 11X + 12)
3 2 6 6
APPROXIMATION ET INTERPOLATION 12
Exemple.
Voici un exemple avec 4 points (n = 3).
On remarque que même si ces quatre points sont presque alignés la courbe obtenue est très éloignée
d’une courbe affine. On peut se demander si imposer de passer exactement par les points n’est pas une
contrainte trop forte.
Tn (cos θ ) = cos(nθ )
Définition par récurrence. Le polynôme Tn (X ) est aussi défini par la relation de récurrence :
Évidemment approcher la fonction nulle a peu d’intérêt en soi mais prouve que les polynômes de Tchebychev
permettent d’approcher efficacement une fonction sur un intervalle tout entier et pas seulement en quelques
points. Les polynômes de Tchebychev permettent en fait d’approcher n’importe quelle fonction sur un
intervalle [a, b] par un polynôme de degré n (de façon analogue aux séries de Fourier). Nous énonçons le
résultat de manière informelle.
Soit f : [−1, 1] → R une fonction continue et dérivable. Il existe des coefficients ci ∈ R tels que P(X ) =
Pn−1
i=0 ci Ti (X ) est un polynôme de degré n − 1 qui approche correctement f sur l’intervalle [−1, 1] :
n−1
X
f (x) ≃ ci Ti (x) pour tout x ∈ [−1, 1]
i=0
n−1 n−1
1X 2X
c0 = f (ωk ) et ci = f (ωk )Ti (ωk ) pour i = 1, . . . , n − 1
n k=0 n k=0
Exemple.
1
Voici les approximations de la fonction f (x) = 1+2x+5x 2
par des séries de Tchebychev pour les ordres
n = 3, 5, 7, 9.
APPROXIMATION ET INTERPOLATION 15
Exemple.
On souhaite approcher g(x) = sin(x) sur l’intervalle [0, π2 ]. On commence par transformer la fonction g
définie sur [0, π2 ] en une fonction f définie sur [−1, 1] par :
x +1π π
f (x) = g = sin (x + 1)
2 2 4
Calculons le développement en série de Tchebychev de f pour n = 3.
• Tout d’abord, on rappelle :
T0 (X ) = 1 T1 (X ) = X T2 (X ) = 2X 2 − 1 T3 (X ) = 4X 3 − 3X
• Les racines de T3 (X ) sont :
p p
1 3 3 5 3
ω0 = cos π = ω1 = cos π =0 ω2 = cos π =−
6 2 6 6 2
• Les coefficients c i sont :
1
c0 = ( f (ω0 ) + f (ω1 ) + f (ω2 )) ≃ 0.602202
3
2
c1 = ( f (ω0 )T1 (ω0 ) + f (ω1 )T1 (ω1 ) + f (ω2 )T1 (ω2 )) ≃ 0.513518
3
2
c2 = ( f (ω0 )T2 (ω0 ) + f (ω1 )T2 (ω1 ) + f (ω2 )T2 (ω2 )) ≃ −0.104905
3
• Ainsi le développement en série de Tchebychev de f pour n = 3 est :
f (x) ≃ P(x) = c0 T0 (x) + c1 T1 (x) + c2 T2 (x) = (c0 − c2 ) + c1 x + 2c2 x 2
π
• Revenons à notre problème initial d’approcher g(x) = sin(x) sur l’intervalle [0, 2 ]. On effectue la
transformation inverse sur P(X )
4X
Q(X ) = P −1
π
• Voici le graphe obtenu pour Q(x) comparé avec celui de g(x) (figure de gauche). L’erreur commise
par cette approximation sur [0, π2 ] est partout inférieure à 0.02 (figure de droite).
Exemple.
Soit f (x) = exp(x) à approcher autour de x 0 = 0. Le développement limité à l’ordre 4 autour de 0 est :
x2 x3 x4
P(x) = 1 + x + + + .
2 6 24
L’approximant de Padé de bidegré (n, m) = (2, 2) est :
R(x) 12 + 6x + x 2
= .
Q(x) 12 − 6x + x 2
R(x)
Les comportements de P(X ) et de Q(x) autour de x 0 = 0 sont quasi-identiques mais les approximants de
Padé peuvent avoir un comportement plus adapté loin de x 0 .