• Aucun résultat trouvé

TP 3 – Interpolation spline

N/A
N/A
Protected

Academic year: 2022

Partager "TP 3 – Interpolation spline"

Copied!
3
0
0

Texte intégral

(1)

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−1

sur 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

i

pour i = 1, ..., n.

Les points P

i

sont appel´ es points de contrˆ ole de S.

(2)

2

Pour d´ efinir une spline S de degr´ e k il nous faut donc n points et n − 1 polynˆ omes q

i

de 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−1

pour 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−1

est obtenue en reliant les points P

i

et P

i+1

pour 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

1

de 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

S

et 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)

3

2. Splines cubiques

Une spline cubique S : [a, b] → R d’interpolation des points P = {P

1

(x

1

, y

1

), ..., P

n

(x

n

, y

n

)}

avec a = x

1

< x

2

< ... < x

n

= b. est d´ efinie par morceaux ` a l’aide de polynˆ omes q

i

de degr´ es trois sur les intervalles [x

i

, x

i+1

] pour i = 1, ..., n − 1 et v´ erifiant

q

i

(x

i

) = y

i

pour i = 1, ..., n − 1 (1)

q

i

(x

i+1

) = y

i+1

pour i = 1, ..., n − 1 (2) q

i0

(x

i+1

) = q

i+10

(x

i+1

) pour i = 1, ..., n − 2 (3) q

i00

(x

i+1

) = q

i00

(x

i+1

) pour i = 1, ..., n − 2 (4) Pour simplifier les notations, on pose q

i

(x) = a

i

(x − x

i

)

3

+ b

i

(x − x

i

)

2

+ c

i

(x − x

i

) + d

i

pour i = 1, ..., n − 1, c’est-a-dire, a

i

= a

i,4

, b

i

= a

i,3

, c

i

= a

i,2

et d

i

= a

i,1

.

Exercice 2.

a. Combien de param` etres d´ efinissent S ? Combien a t-on d’´ equations ?

b. Traduire les ´ equations (1) – (4) en des ´ equations lin´ eaires en les a

i

, b

i

, c

i

et d

i

. On pourra utiliser h

i

= x

i+1

− x

i

pour i = 1, ..., n − 1.

Les conditions manquantes feront intervenir les valeurs S

0

(x

1

), S

00

(x

1

), S

0

(x

n

) et S

00

(x

n

).

Si on fixe les valeurs de S

0

(x

1

) et S

00

(x

1

) (ou S

0

(x

n

) et S

00

(x

n

)) alors la spline se calcule facilement mais ce ne sont pas ces splines qui sont utilis´ ees en pratique. On pr´ ef` ere les splines cubiques d´ efinies avec des condition en a = x

1

et en b = x

n

. La r´ esolution du syst` eme introduit ` a l’exercice 2 est alors plus d´ elicat.

On commence par supprimer un maximum d’inconnue en posant m

i

= S

00

(x

i

) pour i = 1, ..., n.

Exercice 3.

a. Calculer les coefficients b

i

en fonction des m

i

et des h

i

. b. Calculer les coefficients a

i

en fonction des m

i

et des h

i

. c. Calculer les coefficients c

i

en fonction des m

i

et des h

i

.

A ce stade on sait calculer les coefficients a

i

, b

i

, c

i

et d

i

` a partir des h

i

, m

i

et y

i

. Les h

i

et y

i

´ etant connues il nous reste ` a trouver les m

i

.

Exercice 4. Trouver une relation liant m

i−1

, m

i

et m

i+1

pour i = 2, .., n − 1.

Une spline cubique S d´ efinie sur [a, b] est dite naturelle si S

00

(a) = S

00

(b) = 0. Cette condition impose m

1

= m

n

= 0.

Exercice 5.

a. Ecrire sous forme matricielle le syst` eme d’´ equations lin´ eaires que satisfait les co- efficients m

i

d’une spline cubique naturelle.

b. Ecrire un ensemble de fonctions Maxima qui ` a partir d’un ensemble de points P retourne le vecteur X et la matrice M caract´ erisant la spline cubique naturelle d’interpolation des points de P .

c. Tester vos fonctions.

Références

Documents relatifs

Toutes les justifications doivent figurer sur votre copie, mais la r´edaction doit rester sobre.. Vous pouvez admettre un r´esultat, `a condition de le signaler

Q8 Donnez un autre exemple int´ eressant

On peut montrer, mais c’est plus difficile, que le polynˆ ome donn´ e ci-dessus est universel, au sens o` u toute extension galoisienne de degr´ e trois de K est corps de

Si A est un anneau principal, tout ´ el´ ement irr´ eductible est premier, et donc les notions d’´ el´ ement premier et d’´ el´ ement irr´ eductible co¨ıncident dans ce

Le¸ con: Approximation d’une fonction par des polynˆ omes et des polynˆ omes trigonom´ etriques.. Exemples

Ecrire une fonction orthogonalisation, prenant en entr´ ee une liste de vecteurs dans un espace V (pas n´ ecessairement R n ) ainsi qu’un produit scalaire (une fonction de V ×V dans

Soit A, B deux polynˆome non nuls, on effectue les divisions euclidiennes suc- cessives des quotients par leurs restes, jusqu’`a arriver `a un reste nul, alors le dernier reste non

´ Enoncer le th´ eor` eme du cours sur le comportement asymptotique d’une suite monotone7. Donner la d´ efinition de deux