Vous êtes sur la page 1sur 10

Partie II : Interpolation Mth2201A - H09

11 Splines cubiques
11.1 Introduction
Problème :

• On cherche un interpolant passant par un grand nombre de points


d’interpolation (xi, f (xi )).
• Cependant, un polynôme d’interpolation de degré élevé engendre une
erreur importante.

Idée :

• “Rapiécer” plusieurs polynômes pi(x) de degré peu élevé. L’interpo-


lant est alors défini par p(x) = pi(x) si x ∈ [xi−1, xi ].
Géométriquement, ceci signifie que la courbe d’interpolation est formée
de plusieurs morceaux.
• Pour obtenir une courbe lisse, on exigera que l’interpolant p(x) soit
deux fois différentiable : en chaque noeud xi on doit avoir
· pi(xi) = pi+1(xi) = f (xi ) (pi et pi+1 ont même ordonnée en xi )

· p′i(xi) = p′i+1(xi) (pi et pi+1 ont même tangente en xi)

· p′′i (xi) = p′′i+1(xi) (pi et pi+1 ont même courbure en xi )

36
Partie II : Interpolation Mth2201A - H09

Exemple 1 : “Rapiécer” des polynômes de degré 1 −→ interpolation


linéaire par morceaux (LPM).
x 1 2 4 5
f (x) 8 6 12 9

12

10

0 1 2 3 4 5
x

Figure 6 – Interpolation LPM de f : l’interpolant n’est pas différentiable.

37
Partie II : Interpolation Mth2201A - H09

11.2 Splines cubiques


Pour satisfaire les conditions sur pi, p′i et p′′i énoncées à la section précé-
dente, on doit utiliser sur chaque intervalle [xi−1, xi] un polynôme pi(x)
de degré 3.

Définition. Soit (xi, f (xi)), i = 0, . . . , n, des points d’interpola-


tion. La spline cubique naturelle passant par ces points est la fonc-
tion polynomiale par morceaux p définie par
p(x) = pi(x) si x ∈ [xi−1, xi], i = 1, . . . , n
où
• les pi sont définis par

′′ (x− xi )3 ′′ (x − xi−1 )
3
pi(x) = −fi−1 + fi
6hi 6hi
′′
 
f (xi−1 ) hifi−1
− − (x − xi)
hi 6
f (xi) hifi′′
 
+ − (x − xi−1)
hi 6
• les fi′′ satisfont les n + 1 équations
hi ′′ hi+1
fi−1 + 2fi′′ + ′′
fi+1 = 6f [xi−1, xi, xi+1]
hi + hi+1 hi + hi+1
pour i = 1, . . . , n − 1 et f0′′ = 0, fn′′ = 0
• hi = xi − xi−1.

L’interpolant ainsi défini est deux fois différentiable en chaque point.

38
Partie II : Interpolation Mth2201A - H09

Exemple 2 : Calculer la spline cubique naturelle passant par les points


suivants et l’utiliser pour interpoler la valeur de f (3).
x 1 2 4 5
f (x) 8 6 12 9

12

10

0 1 2 3 4 5
x

Figure 7 – Interpolation de f par une spline cubique.

39
Partie II : Interpolation Mth2201A - H09

Exemple 3 : La vitesse v d’une voiture a été mesurée à chaque 5 se-


condes pendant 45 s. Les valeurs suivantes ont été obtenues :

t 0 5 10 15 20 25 30 35 40 45
v 55 60 58 54 55 60 54 57 52 49

70

60

50

40

30

0 10 20 30 40
x

polynome de degre 9
spline cubique

Figure 8 – Interpolation de v par un polynôme et par une spline cubique.

40
Partie II : Interpolation Mth2201A - H09

11.3 Splines paramétrées


Rappel

Définition. Une courbe paramétrée dans le plan est définie par des
équations 
x = γ1(t)
, a≤t≤b
y = γ2(t)
où les γi sont des fonctions [a, b] → R.

Pour construire une spline paramétrée passant par des points donnés
(xi, yi ), i = 0, 1, . . . , n, on procède comme suit.
1. On choisit un vecteur T = (t0, . . . , tn ) de valeurs du paramètre
avec ti < ti+1 pour tout i.
2. On construit les splines S1 et S2 passant par les points (ti, xi) et
(ti, yi ) respectivement.
3. On définit un vecteur T T = (τ0, . . . , τN ) contenant un grand
nombre de valeurs du paramètre t.
4. On évalue S1 et S2 aux valeurs de T T pour obtenir un vecteur
d’abscisses X et un vecteur d’ordonnées Y respectivement.
5. On trace la courbe définie par les points (Xi, Yi) =
(S1(τi), S2(τi)).

41
Partie II : Interpolation Mth2201A - H09

Remarques:
• À l’étape 1, on choisit habituellement les ti en tenant compte de la
distance entre les points (xi, yi ) donnés :
t0 = 0
ti = ti−1 + dist((xi, yi ), (xi−1, yi−1 ))
p
= ti−1 + (xi − xi−1)2 + (yi − yi−1 )2
• À l’étape 3 on choisit un vecteur T T contenant, par exemple, 10 fois
plus de valeurs que le vecteur T .

Exemple : Construire une spline paramétrée passant par les points


xi 2 1 1 -1 -1 2.5 3 2
yi 0 1 -1 1.5 2 1.5 1 -1

Figure 9 – Points de contrôle.

42
Partie II : Interpolation Mth2201A - H09

p
1. Les valeurs du paramètre ti = ti−1 + (xi − xi−1)2 + (yi − yi−1 )2 sont
T = (0.00, 1.41, 3.41, 6.62, 7.12, 10.65, 11.36, 13.59).

2. Les splines S1 (abscisses) et S2 (ordonnées) sont :

3. Pour obtenir le vecteur T T , l’intervalle [0.00, 13.59] est subdivisé en


8 × 10 = 80 sous-intervalles (81 points).

43
Partie II : Interpolation Mth2201A - H09

4. Les splines S1 et S2 sont évaluées aux points de T T .


5. La spline paramétrée obtenue est

44
Partie II : Interpolation Mth2201A - H09

Exemple : La spline paramétrée en rouge est celle obtenue ci-dessus.


La spline en bleu est obtenue en prenant T = (0, 1, 2, 3, 4, 5, 6, 7).

45

Vous aimerez peut-être aussi