ULCO 2019 - 2020
M1 Reherche IMAO
TP 3 – Interpolation spline
Dans bon nombre d’applications, il est imp´ eratif d’obtenir des courbes tr` es lisses et r´ eguli` eres passant par un grand nombre de points. C’est le cas en conception assist´ ee par ordinateur (CAO), o` u l’on cherche ` a repr´ esenter des objets aux formes lisses. L’utilisation de polynˆ omes de degr´ e ´ elev´ e est d´ elicate et m` ene parfois ` a des oscillations de grande amplitude : c’est le ph´ enom` ene de Runge. Les polynˆ omes de degr´ e ´ elev´ e sont alors peu ad´ equats.
Figure 1. En rouge, la courbe ` a interpoler, en bleu un polynˆ ome interpo- lateur de degr´ e 5 et en vert un de degr´ e 9. L’approximation est de plus en plus mauvaise.
Le probl` eme, lorsque l’on utilise des polynˆ omes de faible degr´ e, provient du fait qu’il faut en utiliser plusieurs pour relier tous les points.
1. Fonctions splines
D´ efinition 1. Une spline est une fonction polynomiale d´ efinie par morceaux.
On peut mesurer la r´ egularit´ e d’une fonction par le biais de ses d´ eriv´ ees. En effet, plus une fonction est d´ erivable, plus la courbe qui lui est associ´ ee est lisse et r´ eguli` ere.
D´ efinition 2. Soient I = [a, b] un intervalle de R et a = x
1< x
2< ... < x
n= b des
´
el´ ements de I et P
1(x
1, y
1), ..., P
2(x
2, y
2) des points du plan. On note P l’ensemble des points P
i. La courbe S : I → R est une spline d’interpolation de P de degr´ e k si
• S est de classe C
k−1sur I;
• la restriction de S ` a chaque intervalle [x
i, x
i+1] est un polynˆ ome de degr´ e k pour i = 1, ..., n − 1.
• S(x
i) = y
ipour i = 1, ..., n.
Les points P
isont appel´ es points de contrˆ ole de S.
2
Pour d´ efinir une spline S de degr´ e k il nous faut donc n points et n − 1 polynˆ omes q
ide degr´ e k. La spline est alors d´ efinie de la mani` ere suivante:
S(x) = q
i(x) =
k+1
X
j=1
a
i,j(x − x
i)
j−1pour x ∈ [x
i, x
i+1] avec i ∈ {1, ..., n − 1}
Une spline d’interpolation S de degr´ e k passant par n points est alors la donn´ ee d’une matrice M
S= (a
i,j) ∈ M
n−1,k+1( R ) et d’un vecteur X
S= (x
i) ∈ R
n.
La fonction spline la plus simple est la spline lin´ eaire qui est de degr´ e 1. La courbe de la spline d’interpolation lin´ eaire des points P
1, ..., P
n−1est obtenue en reliant les points P
iet P
i+1pour i = 1, ..., n − 2. Malgr` es que les splines quadratiques existes elles ne sont pas utilis´ ees (ou peu). Nous nous int´ eresserons donc essentiellement aux splines cubiques.
Exercice 1. On consid` ere les points P
1(0, 1), P
2(1, 3), P
3(2, 2) et P
4(3, 3) et on note P leur ensemble.
a. Donner le vecteur X et la matrice M
1de la spline lin´ eaire d’interpolation de P . b. Ecrire une fonction polynome(M,X,i,k) qui retourne le polynˆ ome q
i(x) de la spline
de degr´ e k repr´ esent´ ee par M et X.
c. Ecrire une fonction polynomes(M,X) qui retourne la liste des polynˆ ome q
1(x), ..., q
n−1(x) de la spline donn´ ee par M et X. On obtiendra les valeurs de n et k ` a l’aide de M et de la commande matrix size.
d. Comment retrouve t-on les points de contrˆ oles d’une spline S ` a partir de la donn´ ee de M
Set X
S?
e. Ecrire une fonction affiche spline(X,M) affichant la spline donn´ ee par X et M.
On fera apparaˆıtre les points de contrˆ oles de S.
f. Afficher la spline S obtenue au a.
g. Combien d’´ equations et d’inconnues d´ efinissent une spline de degr´ e 2 passant pas n points ?
h. Afficher la spline quadratique S donn´ ee par X et M
2=
1 0 2
3 4 −5
2 −6 7
,
correspondant ` a la condition q
01(x
1) = 0.
i. Afficher la spline quadratique S donn´ ee par X et M
3=
1 3 −1
3 1 −2
2 −3 4
,
correspondant ` a la condition q
01(x
1) = 3.
j. Afficher la spline quadratique S donn´ ee par X et M
4=
1 7 −5
3 −3 2
2 1 0
correspondant ` a la condition q
10(x
1) = 7.
k. A la vue des exemples pr´ ec´ edents, expliquer pourquoi les splines quadratiques sont
peux utilis´ ees.
3