Chapitre 5 : Interpolation
Maarten Jansen
Table de mati `eres
• Introduction au calcul num ´erique.
• Analyse des erreurs.
• R ´esolution des syst `emes lin ´eaires.
• R ´esolution num ´erique des ´equations diff ´erentielles ordinaires
• Interpolation.
• Curve fitting.
• R ´esolution des ´equations non lin ´eaires.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.1
Un exemple pratique
• Consid ´erons une fonctionf(·), connue en forme analytique mais difficile `a ´evaluer, diff ´erentier ou int ´egrer par ordinateur.
• Exemple :f(x) = sin
esign(x)√
|x|/2
• Pour des raisons num ´eriques, il est envisageable de remplacer cette fonction avec une approximation qui soit la plus fid `ele possible mais avec une expression alg ´ebrique plus abordable.
• Nous ´evaluons la fonctions dans un petit nombre denoeudset nous interpolonsentre les valeurs obtenues.
• Une interpolation tr `es populaire est la polyligne, qui est une succession de segments (tronc¸ons lin ´eaires)
Polyn ˆomes interpolants d’ordre 1 `a 6
Polyn ˆomes interpolants d’ordre 7 `a 12
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.4
Un exemple pratique
Une ´etude d ´emographique collectionne des donn ´ees sur les prix des maisons en diff ´erents quartiers d’une ville en fonction des caract ´eristiques du quartier (taux de criminalit ´e, pollution, distance du centre ville, accessibilit ´e de transport en commun,...) (Boston house-price data (1978)).
PRICE CRIM ZN NOX DIS RAD
296.0 0.00632 18.00 0.5380 4.0900 1 242.0 0.02731 0.00 0.4690 4.9671 2 242.0 0.02729 0.00 0.4690 4.9671 2 222.0 0.03237 0.00 0.4580 6.0622 3
Probl `eme: ´etant donn ´e un vecteur [CRIM,ZN,NOX,DIS,RAD], pour un nouveau ´etablissement, comment calculer/estimer le prix ?
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.5
Interpolation et fitting
Soitf(·)une fonction dont on ne connaˆıt les valeurs qu’en certains points.
Deux cas :
• d ´eterministe: les valeurs sont exactes. Le probl `eme de la pr ´ediction est abord ´e par les m ´ethodes d’interpolation.
• stochastique: les valeurs sont entach ´ees d’erreur. Le probl `eme de la pr ´ediction est abord ´e par les m ´ethodes delissage(fitting) des donn ´ees.
Le probl `eme de l’interpolation
L’interpolation traite de l’approximation d’une fonction dont on ne connaˆıt les valeursexactesqu’en certains points.
Probl `eme: ´etant donn ´en+ 1couples(xi, yi), trouver une fonctionφ(·)telle queφ(xi) =yipouri= 0, . . . , n.
Quelques exemples d’interpolation :
Interpolation polynomiale :φ(·)est un polyn ˆome.
Approximation trigonom´etrique :φ(·)est un polyn ˆome trigonom ´etrique.
Interpolation polynomiale par morceaux :φ(·)est polynomiale par morceaux (splines).
Interpolation polynomiale
Consid ´eronsn+ 1couples(xi, yi). Le probl `eme est de trouver un polyn ˆome πn ∈Pnd’ordren
πn(x) =anxn+· · ·+a1x+a0 tel queπn(xi) =yi, pouri= 0, . . . , n
Th ´eor `eme[Existence et unicit ´e]
´etant donn ´esn+ 1points distinctsx0, . . . , xn etn+ 1valeurs corres- pondantesy0, . . . , yn, il existe un unique polyn ˆomeπntel que
πn(xi) =yi pouri= 0, . . . , n.
Comment trouver ce polyn ˆome ?
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.8
Comment calculer le polyn ˆome interpolant ?
• M ´ethode g ´en ´erale : Remplacer les coordonn ´ees des points dans l’expression du polyn ˆome et r ´esoudre le syst `eme lin ´eaire.
— Proc ´edure co ˆuteuseO(n3).
— Syst `emes mal conditionn ´es.
• M ´ethodes ad hoc : co ˆutO(n2)
— M ´ethode de Lagrange.
— M ´ethode de Newton.
— Il trouve lem ˆeme polyn ˆomeque la m ´ethode de Lagrange.
— Co ˆut de la mise `a jour moins ´elev ´e que pour Lagrange.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.9
Polyn ˆome de Lagrange
Il a la forme πn(x) =
n
X
i=0
yili(x)
o `u les polyn ˆomes li(x) =
n
Y
j=0,j6=i
x−xj
xi−xj i= 0, . . . , n sont lespolyn ˆomes caract ´eristiques de Lagrange.
Propri ´et ´es :
• Ils sont de degr ´en.
• Ils d ´ependent seulement des abscissesxi.
• li(xi) = 1,i= 0, . . . , n
• li(xj) = 0,∀j6=i
Polyn ˆome de Lagrange : exemple
´etant donn ´es lesn+ 1 = 4couples
x x0 x1 x2 x3 y y0 y1 y2 y3
le polyn ˆome interpolant de Lagrange est π3(x) =
= (x−x1)(x−x2)(x−x3)
(x0−x1)(x0−x2)(x0−x3)y0+ (x−x0)(x−x2)(x−x3) (x1−x0)(x1−x2)(x1−x3)y1+ + (x−x0)(x−x1)(x−x3)
(x2−x0)(x2−x1)(x2−x3)y2+ (x−x0)(x−x1)(x−x2) (x3−x0)(x3−x1)(x3−x2)y3
Polyn ˆomes caract ´eristiques de Lagrange
Exemple :n= 6etX = [−3,−2,−1,0,1,2,3].
X = [−3,−2,−1,0,1,2,3] X = [−3,−2,−1.2,1.1,1.6,2.7,3]
Scripts pol lag.m
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.12
Interpolation de Lagrange Exemple :n= 6,X= [−3,−2,−1,0,1,2,3]etY =X3.
y(x) = x3 interp. points interpolation
Scripts lag.m
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.13
Polyn ˆomes nodals
Le polyn ˆome interpolant peut ˆetre ´ecrit sous la forme πn(x) =
n
X
i=0
ωn+1(x) (x−xi)ωn+1′ (xi)yi
o `uωn+1(x)est lepolyn ˆome nodalde degr ´en+ 1d ´efini par ωn+1(x) =
n
Y
i=0
(x−xi) = (x−x0)(x−x1)· · ·(x−xn)
et, par cons ´equent, ω′n+1(xi) =
n
Y
j=0,j6=i
(xi−xj)
Polyn ˆomes nodals
Par exemple, sin= 2
ω3(x) = (x−x0)(x−x1)(x−x2) et puisque
ω′3(x) = (x−x1)(x−x2) + (x−x0)(x−x2) + (x−x0)(x−x1) ω3′(x0) = (x0−x1)(x0−x2)
ω3′(x1) = (x1−x0)(x1−x2) ω3′(x2) = (x2−x0)(x2−x1)
Polyn ˆome nodal
Trac ´e d’un polyn ˆome nodalω7(x)pour les noeuds[−3,−2,−1,0,1,2,3].
-3 -2 -1 0 1 2 3
-100 -50 0 50 100
Voir le script Matlabs nodal.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.16
Erreur d’interpolation
Th ´eor `eme
Soient {x0, x1, . . . , xn}, n + 1 noeuds distincts et soit x un point ap- partenant au domaine de d ´efinition de f(·). On suppose que f ∈ Cn+1(Ix) o `u Ix est le plus petit intervalle contenant les noeuds x0, x1, . . . , xn et x. L’erreur d’interpolation au point x est donn ´ee par
En(x) def= f(x)−πn(x) = f(n+1)(n+1)!(ξ)ωn+1(x)
= f(n+1)(n+1)!(ξ)(x−x0)(x−x1). . .(x−xn)
o `uξ∈Ixetωn+1(·)est le polyn ˆome nodal de degr ´en+ 1.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.17
Erreur d’interpolation (II)
D ´efinitionLa norme de maximum d’une fonctionf ∈C0([a, b])est kfk∞= max
x∈[a,b]|f(x)| Soitkf(n+1)k∞= max
x∈[a,b]|f(n+1)(x)|, alors on peut montrer que
|f(x)−πn(x)| ≤ kf(n+1)!(n+1)k∞|ωn+1(x)|
≤ kf(n+1)!(n+1)k∞kωn+1k∞
≤ kf(n+1)(n+1)!k∞(b−a)n+1
(La premi `ere borne d ´epend dex, la seconde d ´epend du polyn ˆome nodal, donc des positions des noeuds, la troisi `eme ne d ´epend que des noeuds extr `emesaetb)
Exercice TP
Consid ´erons la fonctionf(x) = sinxet supposons que la valeur de la fonction est connue pour les5noeuds[0.0,0.2,0.4,0.6,0.8].
• Calculer la borne sup ´erieure de la valeur absolue de l’erreur d’approximation du polyn ˆome interpolantπ4
|E4(x)|=|f(x)−π4(x)| enx= 0.28
• Comparer la borne avec l’erreur r ´eelle en sachant que sin(0.28) = 0.2763556.
Consid ´erations
• Le calcul de l’erreur d’interpolation demande la connaissance de la fonctionf(·).
• L’erreur est petite pr `es d’un noeud.
• L’erreur est autant plus petite que la fonction est lisse (smooth).
• On peut montrer que le maximum de|ωn+1(x)|en[x0, xn]est atteint toujours dans un des deux intervalles extr ˆemes[x0, x1]ou[xn−1, xn].
• L’erreur d’extrapolation est typiquement sup ´erieure `a celle d’interpolation.
• Par d ´efinition, sif(·)est un polyn ˆome de degr ´en, l’erreur est nulle.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.20
Polyn ˆome nodal et extrapolation
Trac ´e d’un polyn ˆome nodalω7(x)pour les noeuds[−3,−2,−1,0,1,2,3].
-3 -2 -1 0 1 2 3
-300 -200 -100 0 100 200 300
La valeur absolue du polyn ˆome en dehors de l’intervalle d’interpolation[−3,3]
est beaucoup plus grande que la valeur `a l’int ´erieur de l’intervalle.
Voir le script Matlabs nodal.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.21
Forme d’interpolation de Newton
Id ´ee: ´etant donn ´en+ 1paires(xi, yi), i= 0, . . . , n, repr ´esenterπn(·) (polyn ˆome interpolant pouri= 0, . . . , n) comme la somme deπn−1(·) (polyn ˆome interpolant pouri= 0, . . . , n−1) et d’un polyn ˆome de degr ´enqui d ´epend d’un seul coefficient inconnu : πn(x) =πn−1(x) +qn(x)
Puisqueqn(·)est un polyn ˆome d’ordrentel que qn(xi) =πn(xi)−πn−1(xi) = 0pouri= 0, . . . , n−1, on a qn(x) =an(x−x0). . .(x−xn−1) =anωn(x) o `uωn(x)est un polyn ˆome nodal et d’o `u on d ´eduit que
πn(xn) =πn−1(xn) +qn(xn)⇔f(xn) =πn−1(xn) +anωn(xn) an =f(xn)−πω n−1(xn)
n(xn)
Diff ´erences divis ´ees de Newton
Le coefficientanest appel ´en-i `emediff ´erence divis ´ee de Newton an=f[x0, x1, . . . , xn] = f(xn)−πn−1(xn)
Qn−1
i=0(xn−xi)
Par cons ´equent on obtient la formulation r ´ecursive πn(x) =πn−1(x) +ωn(x)f[x0, x1, . . . , xn]
Puisqueωn+1(x) =Qn
i=0(x−xi), il s’ensuit que π0(x) = ω0(x)f[x0]
π1(x) = π0(x) +ω1(x)f[x0, x1] =π0(x) + (x−x0)f[x0, x1]
π2(x) = π1(x) +ω2(x)f[x0, x1, x2] =π1(x) + (x−x0)(x−x1)f[x0, x1, x2] . . .
Diff ´erences divis ´ees de Newton : formule explicite
Puisqueπ0(x) =f(x0), en posanty0=f(x0) =f[x0]etω0= 1on obtient par r ´ecurrence
πn(x) = Pn
k=0ωk(x)f[x0, . . . , xk]
= f[x0] + (x−x0)f[x0, x1] + (x−x0)(x−x1)f[x0, x1, x2] +. . . +(x−x0)(x−x1). . .(x−xn−1)f[x0, . . . , xn]
Le termef[x0, . . . , xn]est donc le coefficient dexn dansπn(x). A partir de l’expression du polyn ˆome interpolant de Lagrange nous obtenons que le termef[x0, . . . , xn]peut donc ˆetre ´ecrit de la mani `ere suivante
f[x0, . . . , xn] =
n
X
i=0
yi ω′n+1(xi) =
n
X
i=0
yi Qn
j=0,j6=i(xi−xj)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.24
Diff ´erences divis ´ees de Newton : formule r ´ecursive
On peut montrer que lak`eme diff ´erence divis ´ee de Newton a la forme suivante :
k= 0: f[x] =f(x)
k= 1: f[x0, x] = f[x]−f[x0]
x−x0 =f[x, x0] k≥2:
f[x0, x1, . . . , xk−1, x] = f[x1, . . . , xk−1, x]−f[x0, x1, . . . , xk−2, xk−1] x−x0
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.25
Forme tabulaire
xi f(xi) Df(xi) D2f(xi) . . . Dnf(xi)
x0 f[x0]
x1 f[x1] f[x0, x1]= f[xx1]−f[x0]
1−x0 x2 f[x2] f[x1, x2] =f[xx2]−f[x1]
2−x1 f[x0, x1, x2]= f[x1,xx2]−f[x0,x1]
2−x0 x3 f[x3] f[x2, x3] =f[xx3]−f[x2]
3−x2 f[x1, x2, x3] =f[x2,xx3]−f[x1,x2]
3−x1 ..
. .. .
.. .
.. .
xn f[xn] f[xn−1, xn] f[xn−2, xn−1, xn] . . . f[x0, . . . , xn]
πn(x) = Pn
k=0ωk(x)f[x0, . . . , xk]
= f[x0]+ (x−x0)f[x0, x1]+ (x−x0)(x−x1)f[x0, x1, x2]+. . . +(x−x0)(x−x1). . .(x−xn−1)f[x0, . . . , xn]
Exercice TP Diff ´erences divis ´ees pour la fonctionf(x) = sin(x)
0 0 0 0 0 0
0.5 0.4794 0.9589 0 0 0
1 0.8415 0.7241 -0.2348 0 0
1.5 0.9975 0.3120 -0.4120 -0.1182 0 2 0.9093 -0.1764 -0.4884 -0.0509 0.0336
Polyn ˆome interpolant :
π4(x) = 0+0.9589x−0.2348x(x−0.5)−0.1182x(x−0.5)(x−1) +0.0336x(x−0.5)(x−1)(x−1.5)
Exercice TP
Donn ´ees et polyn ˆome interpolant.
Scripts pol new2.m
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.28
Propri ´et ´es
• Pourn+ 1points il est n ´ecessaire de calculer une matrice triangulaire inf ´erieure de taillenlaquelle an(n+ 1)/2´el ´ements diff ´erents de z ´ero.
• n(n+ 1)additions etn(n+ 1)/2divisions sont n ´ecessaires pour construire la matrice triangulaire inf ´erieure des diff ´erences divis ´ees.
• Si on disposait de la valeur prise parf(·)dans un nouveau noeud xn+1, on aurait `a calculer simplement une ligne suppl ´ementaire compos ´ee parn+ 1´el ´ements.
• Pour construireπn+1(·) `a partir deπn(·),(n+ 1)divisions et2(n+ 1) additions sont n ´ecessaires, donc un co ˆutO(n).Ceci n’est pas le cas pour la m ´ethode de Lagrange o `u il est n ´ecessaire de r ´ep ´eter toute la proc ´edure avec un co ˆutO(n2).
Voir la fonction Matlabdividf.mdans le livre Quarteroni et le script s pol new.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.29
Convergence uniforme
• L’ ´etude de convergence uniforme analyse le comportement de la norme du maximum de l’erreur quandntend vers l’infini.
• Propri ´et ´eSoientx0, x1, . . . , xn,n+ 1noeuds d’interpolation distincts dans[a, b]etπn l’interpolation polynomiale. Quandn→ ∞il est toujourspossible de trouver une fonctionf pour laquelle
n→∞lim kf−πnk∞6= 0o `u kgk∞= maxx∈[a,b]|g(x)|.
• L’interpolation polynomiale ne permet pas d’approcher
convenablement toute fonction continue. Ceci est le cas pour des fonctions dont les points singuliers sont trop proches `a l’intervalle[a, b].
• Notons que ceci n’est pas en contradiction avec le th ´eor `eme de Weierstrassselon lequel pour toute fonction continuef ∈C([a, b])il existe toujours une s ´erie de polyn ˆomespntelle que
n→∞lim kf−pnk∞= 0.Malheureusement ces polyn ˆomes ne peuvent pas ˆetre obtenus par interpolation.
Contre-exemple de Runge
Supposons qu’on approche la fonction f(x) = 1
1 +x2
en utilisant l’interpolation de Lagrange avecnoeuds ´equir ´epartis. Puisque les d ´eriv ´ees de la fonction ne sont pas born ´ees on peut v ´erifier qu’il existe des pointsx`a l’int ´erieur de l’intervalle d’interpolation tels que
n→∞lim |f(x)−πn(x)| 6= 0 c.- `a-d. l’approximation se d ´egrade en ajoutant donn ´ees.
Exemple Matlab
-3 -2 -1 0 1 2 3
-0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Les polyn ˆomes d’interpolation pr ´esentent des oscillations qui augmentent avec le degr ´e du polyn ˆome.
Voir le script Matlabs runge.m.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.32
Conditionnement du probl `eme
• Le conditionnement du probl `eme d’interpolation peut ˆetre d ´ecrit en fonction des polyn ˆomes caract ´eristiques par la constante de Lebesgue associ ´ee aux noeuds d’interpolation
Λn=k
n
X
i=0
|li(x)|k∞
• Supposons de perturber les donn ´ees de la mani `ere suivante ˆ
yi =yi+δi et soitπˆnle polyn ˆome perturb ´e r ´esultant. Il est possible montrer que kπn−πˆnk∞
kπnk∞ ≤Λnkδk∞
kfk∞
• En particulier pour des noeuds ´equir ´epartis on peut montrer que Λn≈ 2n+1
enlogn
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.33
Instabilit ´e de l’interpolation
Une petite variation des donn ´ees, pour noeuds ´equir ´epartis, cause une large variation de l’approximation.
-3 -2 -1 0 1 2 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5
2 Splines
• Le fonction de Runge et les probl `emes d’instabilit ´e mettent en lumi `ere le fait que l’interpolation polynomiale n’est pas bien adapt ´ee `a
l’approximation de fonctions pour grandn.
• L’avantage des spline est qu’en augmentantnon augment le nombre de morceaux et non le degr ´e des polyn ˆomes.
• Dans le domaine du design, en construction automobile par exemple, les splines sont utilis ´ees pour approcher des contours complexes.
Leur simplicit ´e d’impl ´ementation les rend tr `es populaires et elles sont fr ´equemment utilis ´ees dans les logiciels de dessin.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.36
Splines
D ´efinitionSoient{x0, . . . , xn},n+ 1noeuds distincts de[a, b]avec a=x0< x1<· · ·< xn =b
La fonctionsk(x)sur l’intervalle[a, b]est unesplinede degr ´ekrelative aux noeudsxisi sk,i=sk|[xi,xi+1] ∈ Pk, pour i= 0,1, . . . , n
sk ∈ Ck−1[a, b]
Tout polyn ˆome de degr ´eksur[a, b]est une spline, mais... en pratique, on consid `ere
• splines constitu ´ees denpolyn ˆomes diff ´erentssk,i sur chaque sous-intervalle[xi, xi+1]o `u
• il peut y avoir desdiscontinuit ´es de la d ´eriv ´eek-i `eme aux noeuds internes (actives).
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.37
Interpolation par splines :n= 2
2
x0 x1
y
y0
1
x2 y
Spline : ordrek= 0
s
x0 x1
y
y0
1
x2 y2
s0,1 0,0
Spline : ordrek= 1
1,1
x0 x1
y
y0
1
x2 y2
s s
1,0
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.40
Spline : ordrek= 2
2,1
x0 x1
y
y0
1
x2 y2
s
s
2,0
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.41
Spline : ordrek= 3
s
x0 x1
y
y0
1
x2 y2
3,0 3,1
s
Calcul d’une spline
Lei-i `eme,i= 0, . . . , n−1polyn ˆomesk,i=sk|[xi,xi+1] composant la spline est d’ordreket peut ˆetre ´ecrit sous la forme
sk,i=
k
X
h=0
shi(x−xi)h
Calculer une spline ´equivaut `a d ´eterminer(k+ 1)ncoefficientsshi. Conditions :
• k(n−1)pour les d ´eriv ´ees:
s(m)k,i−1(xi) =s(m)k,i (xi) pouri= 1, . . . , n−1etm= 0, . . . , k−1
• n+ 1interpolations:sk(xi) =f(xi)pouri= 0, . . . , n.
Conditions additionnelles Encorek−1degr ´es de libert ´e `a fixer. Deux options :
1. splines p ´eriodiques
s(m)k (a) =s(m)k (b) m= 1, . . . , k−1
2. splines naturellesPourk= 2l−1, avecl≥2on a2(l−1) =k−1 conditions additionelles s(l+j)k (a) = 0
s(l+j)k (b) = 0 j= 0,1, . . . , l−2 Exemple : Sik= 3, alorsl= 2
s(2)k (a) =s(2)k (b) = 0
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.44
Splines cubiques
Les splines d’interpolations cubiques (degr ´ek= 3) sont importantes car 1. Ce sont les splines de plus petit degr ´e qui permettent une
approximationC2(donc la d ´eriv ´ee premi `ere est continue d’ordre1), 2. elles ont de bonnes propri ´et ´es de r ´egularit ´e.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.45
Calcul d’une spline cubique (I)
Il faut d ´eterminer(k+ 1)n= 4ncoefficients pour d ´eterminers3(·).
Conditions :
• s3(x−i ) =f(xi) =s3(x+i ) pouri= 1, . . . , n−1 [2(n−1)]
• s3(x0) =f(a) [1]
• s3(xn) =f(b) [1]
• s′3(x−i ) =s′3(x+i ) pouri= 1, . . . , n−1 [(n−1)]
• s′′3(x−i ) =s′′3(x+i ) pouri= 1, . . . , n−1 [(n−1)]
En totale,4n−2conditions. Lesk−1 = 2restantes sont impos ´ees via les conditions additionnelles.
Le calcul d’une spline demande donc la r ´esolution d’un syst `eme lin ´eaire de de 4n ´equations. Nous verrons dans la suite que il est toutefois possible formuler le probl `eme de mani `ere telle `a r ´eduire la taille du syst `eme `a l’ordren+ 1.
Calcul d’une spline cubique (II)
Introduisons les notations suivantes :
fi=s3(xi), mi =s′3(xi), Mi=s′′3(xi), i= 0, . . . , n
Puisques3,i−1(·)∈P3,s′′3,i−1(·)est lin ´eaire ets′′3,i−1(xi−1) =Mi−1, s′′3,i−1(xi) =Mi
s′′3,i−1(x) =Mi−1xi−x
hi +Mix−xi−1
hi pourx∈[xi−1, xi],i= 1, . . . , no `uhi =xi−xi−1. En int ´egrant
s′3,i−1(x) = −Mi−1(xi2h−x)2
i +Mi(x−x2hi−1)2
i +Ci−1
s3,i−1(x) = Mi−1(xi6h−x)3
i +Mi(x−x6hi−1)3
i +Ci−1(x−xi−1) + ˜Ci−1
Calcul d’une spline cubique (III)
En imposant les valeurs aux extr ´emit ´ess3,i−1(xi−1) =fi−1ets3,i−1(xi) =fi, on a
fi−1=s3,i−1(xi−1) =Mi−1h3i
6hi + ˜Ci−1⇔C˜i−1 = fi−1−Mi−1h2i 6
fi=s3,i−1(xi) =Mi6hh3i
i +Ci−1hi+ ˜Ci−1⇔Ci−1 = fi−fhi−1
i −h6i(Mi−Mi−1) Notons que les conditions d’interpolation nous permettent le calcul des constantsCietC˜ipouri= 1, . . . , n.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.48
Calcul d’une spline cubique (IV) Puisque
s′3,i−1(x) = −Mi−1(xi2h−x)2
i +Mi(x−x2hi−1)2
i +fi−fhi−1
i −h6i(Mi−Mi−1) s′3,i(x) = −Mi(xi+12h−x)2
i+1 +Mi+1(x−x2h i)2
i+1 +fi+1h −fi
i+1 −hi+16 (Mi+1−Mi) en imposant la continuit ´e de la d ´eriv ´ee premi `ere enxi
s′3,i−1(xi) = s′3(x−i ) = h6iMi−1+h3iMi+fi−fhii−1
= −hi+13 Mi−hi+16 Mi+1+fi+1h −fi
i+1 =s′3(x+i ) =s′3,i(xi) pouri= 1,· · ·, n−1.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.49
Calcul d’une spline cubique (V)
• Ceci conduit au syst `eme lin ´eaire tridiagonal (dit deM-continuit ´e) avec n+ 1inconnues etn−1 ´equations
hi
6Mi−1+hi+hi+1
3 Mi+hi+1
6 Mi+1= fi+1−fi
hi+1 −fi−fi−1 hi
pour i= 1, . . . , n−1.
• Pour obtenir une splinenaturelleon rajoute les2conditions suppl ´ementaires
M0=s(2)3 (x0) = 0 Mn=s(2)3 (xn) = 0
Exercice TP
Spline cubique (k= 3) naturelle pour la fonctionf(x) = sin(x). Donn ´ees (n= 4) :
0 0.5 1 1.5 2
0 0.4794 0.8415 0.9975 0.9093
Puisquehi= 0.5pouri= 1,2,3et hi
6 = 0.0833, hi+hi+1
3 = 0.3333, i= 1,2,3 et
2∗(f2−f1)−2∗(f1−f0) =−0.2348 2∗(f3−f2)−2∗(f2−f1) =−0.4120 2∗(f4−f3)−2∗(f3−f2) =−0.4884
nous obtenons le syst `eme de M-continuit ´e :
1.0000 0 0 0 0
0.0833 0.3333 0.0833 0 0 0 0.0833 0.3333 0.0833 0 0 0 0.0833 0.3333 0.0833
0 0 0 0 1.0000
M0
M1 M2 M3
M4
=
0
−0.2348
−0.4120
−0.4884 0
En resolvant le syst `eme nous obtenonsMi, i= 0, . . . ,4et donc nous pouvons calculerCi−1etC˜i−1pouri= 1, . . . ,4. Ceci nous permet d’ ´ecrire les
´equations des4morceaux de spline.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.52
Exercice TP Scripts spline2.m
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 5: Interpolation p.53
Spline et fonction de Runge
nombre de noeuds = 8 nombre de noeuds = 60
-30 -2 -1 0 1 2 3
0.2 0.4 0.6 0.8 1
y=1/(1+x2) points spline
-30 -2 -1 0 1 2 3
0.2 0.4 0.6 0.8 1
y=1/(1+x2) points spline
Scripts ru spl.m, fonction[s,A,b]=spcub(X,Y,x)
Limitations
Les splines d’interpolation pr ´esentent deux inconv ´enients :
• La spline peut-elle aussi d ´evenir oscillante si les d ´eriv ´ees de la fonction `a interpoler deviennent trop grandes (>>1).
• la spline d ´epend du choix du syst `eme de coordonn ´ees, donc elle ne poss `ede pas une propri ´et ´e d’invariance g ´eom ´etrique.
• Ceci peut ˆetre g ˆenant si la spline est utilis ´ee pour repr ´esenter graphiquement une courbe qui n’est pas un graphique d’une fonction (par exemple une ellipse). Une solution vient du fait de repr ´esenter la spline de mani `ere param ´etrique (coordonn ´eesxetyfonction d’un param `etret).