Chapitre 5 : Interpolation

Transcription

Chapitre 5 : Interpolation
Table de matières
•
•
•
•
•
•
•
Chapitre 5 : Interpolation
Introduction au calcul numérique.
Analyse des erreurs.
Résolution des systèmes linéaires.
Résolution numérique des équations différentielles ordinaires
Interpolation.
Curve fitting.
Résolution des équations non linéaires.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.1
Polynômes interpolants d’ordre 1 à 6
Un exemple pratique
• Considérons une fonction f (·), connue en forme analytique
mais difficile à évaluer,
ou
intégrer par ordinateur.
différentier
√
• Exemple : f (x) = sin esign(x)
|x|/2
• Pour des raisons numériques, il est envisageable de
remplacer cette fonction avec une approximation qui soit la
plus fidèle possible mais avec une expression algébrique plus
abordable.
• Nous évaluons la fonctions dans un petit nombre de noeuds
et nous interpolons entre les valeurs obtenues.
• Une interpolation très populaire est la polyligne, qui est une
succession de segments (tronçons linéaires)
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.2
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.3
Un exemple pratique
Polynômes interpolants d’ordre 7 à 12
Une étude démographique collectionne des données sur les prix des
maisons en différents quartiers d’une ville en fonction des
caractéristiques du quartier (taux de criminalité, pollution, distance
du centre ville, accessibilité 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ème : étant donné un vecteur [CRIM,ZN,NOX,DIS,RAD], pour
un nouveau établissement, comment calculer/estimer le prix ?
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.4
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.5
Le problème de l’interpolation
Interpolation et fitting
L’interpolation traite de l’approximation d’une fonction dont on ne
connaı̂t les valeurs exactes qu’en certains points.
Soit f (·) une fonction dont on ne connaı̂t les valeurs qu’en certains
points.
Problème : étant donné n + 1 couples (xi , yi ), trouver une fonction
φ(·) telle que φ(xi ) = yi pour i = 0, . . . , n.
Deux cas :
• déterministe : les valeurs sont exactes. Le problème de la
prédiction est abordé par les méthodes d’interpolation.
• stochastique : les valeurs sont entachées d’erreur. Le
problème de la prédiction est abordé par les méthodes de
lissage (fitting) des données.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
Quelques exemples d’interpolation :
Interpolation polynomiale : φ(·) est un polynôme.
Approximation trigonométrique : φ(·) est un polynôme
trigonométrique.
Interpolation polynomiale par morceaux : φ(·) est polynomiale par
morceaux (splines).
p.6
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.7
Interpolation polynomiale
Comment calculer le polynôme interpolant ?
Considérons n + 1 couples (xi , yi ). Le problème est de trouver un
polynôme πn ∈ P n d’ordre n
• Méthode générale : Remplacer les coordonnées des points
dans l’expression du polynôme et résoudre le système
linéaire.
— Procédure coûteuse O(n3 ).
— Systèmes mal conditionnés.
• Méthodes ad hoc : coût O(n2 )
— Méthode de Lagrange.
— Méthode de Newton.
— Il trouve le même polynôme que la méthode de
Lagrange.
— Coût de la mise à jour moins élevé que pour Lagrange.
πn (x) = an xn + · · · + a1 x + a0
tel que πn (xi ) = yi , pour i = 0, . . . , n
Théorème[Existence et unicité]
étant donnés n + 1 points distincts x0 , . . . , xn et n + 1 valeurs
correspondantes y0 , . . . , yn , il existe un unique polynôme πn tel
que
πn (xi ) = yi
pour i = 0, . . . , n.
Comment trouver ce polynôme ?
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.8
Polynôme de Lagrange
Il a la forme πn (x) =
n
X
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.9
Polynôme de Lagrange : exemple
étant donnés les n + 1 = 4 couples
yi li (x)
i=0
où les polynômes li (x) =
n
Y
j=0,j6=i
x − xj
xi − xj
i = 0, . . . , n
x
x0
x1
x2
x3
y
y0
y1
y2
y3
sont les polynômes caractéristiques de Lagrange.
le polynôme interpolant de Lagrange est
Propriétés :
• Ils sont de degré n.
• Ils dépendent seulement des abscisses xi .
• li (xi ) = 1, i = 0, . . . , n
• li (xj ) = 0, ∀j 6= i
π3 (x) =
(x − x1 )(x − x2 )(x − x3 )
(x − x0 )(x − x2 )(x − x3 )
=
y0 +
y1 +
(x0 − x1 )(x0 − x2 )(x0 − x3 )
(x1 − x0 )(x1 − x2 )(x1 − x3 )
(x − x0 )(x − x1 )(x − x2 )
(x − x0 )(x − x1 )(x − x3 )
y2 +
y3
+
(x2 − x0 )(x2 − x1 )(x2 − x3 )
(x3 − x0 )(x3 − x1 )(x3 − x2 )
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.10
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.11
Polynômes caractéristiques de Lagrange
Interpolation de Lagrange
Exemple : n = 6 et X = [−3, −2, −1, 0, 1, 2, 3].
X = [−3, −2, −1, 0, 1, 2, 3]
Exemple : n = 6, X = [−3, −2, −1, 0, 1, 2, 3] et Y = X 3 .
X = [−3, −2, −1.2, 1.1, 1.6, 2.7, 3]
3
y(x) = x
interp. points
interpolation
Script s lag.m
Script s pol lag.m
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.12
M. Jansen, G. Bontempi
Polynômes nodals
ω3 (x) = (x − x0 )(x − x1 )(x − x2 )
et puisque
ω3′ (x) = (x − x1 )(x − x2 ) + (x − x0 )(x − x2 ) + (x − x0 )(x − x1 )
i=0
(xi − xj )
j=0,j6=i
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.13
Par exemple, si n = 2
où ωn+1 (x) est le polynôme nodal de degré n + 1 défini par
n
Y
(x − xi ) = (x − x0 )(x − x1 ) · · · (x − xn )
ωn+1 (x) =
′
et, par conséquent, ωn+1
(xi ) =
Chap. 5: Interpolation
Polynômes nodals
Le polynôme interpolant peut être écrit sous la forme
n
X
ωn+1 (x)
πn (x) =
yi
′
(x
−
xi )ωn+1
(xi )
i=0
n
Y
INFO-F-205 Calcul Num.
p.14
ω3′ (x0 )
=
ω3′ (x1 )
=
ω3′ (x2 )
=
M. Jansen, G. Bontempi
(x0 − x1 )(x0 − x2 )
(x1 − x0 )(x1 − x2 )
(x2 − x0 )(x2 − x1 )
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.15
Polynôme nodal
Tracé d’un polynôme nodal ω7 (x) pour les noeuds
[−3, −2, −1, 0, 1, 2, 3].
Erreur d’interpolation
100
Théorème
Soient {x0 , x1 , . . . , xn }, n + 1 noeuds distincts et soit x un point appartenant au domaine de définition de f (·). On suppose que f ∈
C n+1 (Ix ) où Ix est le plus petit intervalle contenant les noeuds
x0 , x1 , . . . , xn et x. L’erreur d’interpolation au point x est donnée par
50
0
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ù ξ ∈ Ix et ωn+1 (·) est le polynôme nodal de degré n + 1.
-50
-100
-3
-2
-1
0
1
2
3
Voir le script Matlab s nodal.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.16
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.17
Erreur d’interpolation (II)
Exercice TP
Définition La norme de maximum d’une fonction f ∈ C 0 ([a, b]) est
kf k∞ = max |f (x)|
Considérons la fonction f (x) = sin x et supposons que la valeur de
la fonction est connue pour les 5 noeuds [0.0, 0.2, 0.4, 0.6, 0.8].
x∈[a,b]
Soit kf (n+1) k∞ = max |f (n+1) (x)|, alors on peut montrer que
• Calculer la borne supérieure de la valeur absolue de l’erreur
d’approximation du polynôme interpolant π4
x∈[a,b]
|f (x) − πn (x)|
≤
≤
≤
kf (n+1) k∞
(n+1)! |ωn+1 (x)|
kf (n+1) k∞
(n+1)! kωn+1 k∞
kf
(n+1)
k∞ (b−a)
(n+1)!
|E4 (x)| = |f (x) − π4 (x)|
n+1
en x = 0.28
• Comparer la borne avec l’erreur réelle en sachant que
sin(0.28) = 0.2763556.
(La première borne dépend de x, la seconde dépend du polynôme
nodal, donc des positions des noeuds, la troisième ne dépend que
des noeuds extrèmes a et b)
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.18
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.19
Polynôme nodal et extrapolation
Considérations
Tracé d’un polynôme nodal ω7 (x) pour les noeuds
[−3, −2, −1, 0, 1, 2, 3].
• Le calcul de l’erreur d’interpolation demande la connaissance
de la fonction f (·).
• L’erreur est petite près 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êmes [x0 , x1 ]
ou [xn−1 , xn ].
• L’erreur d’extrapolation est typiquement supérieure à celle
d’interpolation.
• Par définition, si f (·) est un polynôme de degré n, l’erreur est
nulle.
300
200
100
0
-100
-200
-300
-3
-2
-1
0
1
2
3
La valeur absolue du polynôme en dehors de l’intervalle
d’interpolation [−3, 3] est beaucoup plus grande que la valeur à
l’intérieur de l’intervalle.
Voir le script Matlab s nodal.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.20
M. Jansen, G. Bontempi
Forme d’interpolation de Newton
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
Différences divisées de Newton
Idée : étant donné n + 1 paires (xi , yi ), i = 0, . . . , n, représenter πn (·)
(polynôme interpolant pour i = 0, . . . , n) comme la somme de
πn−1 (·) (polynôme interpolant pour i = 0, . . . , n − 1) et d’un
polynôme de degré n qui dépend d’un seul coefficient inconnu :
πn (x) = πn−1 (x) + qn (x)
Le coefficient an est appelé n-ième différence divisée de Newton
Puisque qn (·) est un polynôme d’ordre n tel que
πn (x) = πn−1 (x) + ωn (x)f [x0 , x1 , . . . , xn ]
Q
Puisque ωn+1 (x) = ni=0 (x − xi ), il s’ensuit que
an = f [x0 , x1 , . . . , xn ] =
on a qn (x) = an (x − x0 ) . . . (x − xn−1 ) = an ωn (x)
où ωn (x) est un polynôme nodal et d’où on déduit que
πn (xn ) = πn−1 (xn ) + qn (xn ) ⇔ f (xn ) = πn−1 (xn ) + an ωn (xn )
f (xn )−πn−1 (xn )
ωn (xn )
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
f (xn ) − πn−1 (xn )
Qn−1
i=0 (xn − xi )
Par conséquent on obtient la formulation récursive
qn (xi ) = πn (xi ) − πn−1 (xi ) = 0 pour i = 0, . . . , n − 1,
an =
p.21
π0 (x)
=
ω0 (x)f [x0 ]
π1 (x)
=
π2 (x)
=
π0 (x) + ω1 (x)f [x0 , x1 ] = π0 (x) + (x − x0 )f [x0 , x1 ]
...
p.22
M. Jansen, G. Bontempi
π1 (x) + ω2 (x)f [x0 , x1 , x2 ] = π1 (x) + (x − x0 )(x − x1 )f [x0 , x1 , x2 ]
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.23
Différences divisées de Newton :
formule explicite
Différences divisées de Newton :
formule récursive
Puisque π0 (x) = f (x0 ), en posant y0 = f (x0 ) = f [x0 ] et ω0 = 1 on
obtient par récurrence
Pn
πn (x) =
k=0 ωk (x)f [x0 , . . . , xk ]
=
On peut montrer que la k ème différence divisée de Newton a la
forme suivante :
f [x0 ] + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ] + . . .
k=0:
f [x] = f (x)
k=1:
f [x0 , x] =
+(x − x0 )(x − x1 ) . . . (x − xn−1 )f [x0 , . . . , xn ]
Le terme f [x0 , . . . , xn ] est donc le coefficient de xn dans πn (x). A
partir de l’expression du polynôme interpolant de Lagrange nous
obtenons que le terme f [x0 , . . . , xn ] peut donc être écrit de la
manière suivante
n
n
X
X
yi
yi
Qn
=
f [x0 , . . . , xn ] =
′
ω
(x )
j=0,j6=i (xi − xj )
i=0
i=0 n+1 i
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
f [x] − f [x0 ]
= f [x, x0 ]
x − x0
k≥2:
f [x0 , x1 , . . . , xk−1 , x] =
p.24
M. Jansen, G. Bontempi
f [x1 , . . . , xk−1 , x] − f [x0 , x1 , . . . , xk−2 , xk−1 ]
x − x0
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.25
Exercice TP
Forme tabulaire
Différences divisées pour la fonction f (x) = sin(x)
D2 f (xi )
xi
f (xi )
x0
f [x0 ]
x1
f [x1 ]
f [x0 , x1 ] =
x2
f [x2 ]
f [x1 , x2 ] =
x3
f [x3 ]
f [x2 , x3 ] =
.
.
.
.
.
.
.
.
.
.
.
.
xn
f [xn ]
f [xn−1 , xn ]
f [xn−2 , xn−1 , xn ]
πn (x)
=
=
Df (xi )
Pn
k=0
f [x1 ]−f [x0 ]
x1 −x0
f [x2 ]−f [x1 ]
x2 −x1
f [x3 ]−f [x2 ]
x3 −x2
f [x0 , x1 , x2 ] =
f [x1 , x2 , x3 ] =
...
Dn f (xi )
f [x1 ,x2 ]−f [x0 ,x1 ]
x2 −x0
f [x2 ,x3 ]−f [x1 ,x2 ]
x3 −x1
...
f [x0 , . . . , xn ]
ωk (x)f [x0 , . . . , xk ]
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ôme interpolant :
f [x0 ] + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ] + . . .
π4 (x)
=
+(x − x0 )(x − x1 ) . . . (x − xn−1 )f [x0 , . . . , xn ]
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
0 + 0.9589 x−0.2348 x(x − 0.5)−0.1182 x(x − 0.5)(x − 1)
+0.0336 x(x − 0.5)(x − 1)(x − 1.5)
p.26
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.27
Propriétés
• Pour n + 1 points il est nécessaire de calculer une matrice
triangulaire inférieure de taille n laquelle a n(n + 1)/2
éléments différents de zéro.
• n(n + 1) additions et n(n + 1)/2 divisions sont nécessaires
pour construire la matrice triangulaire inférieure des
différences divisées.
• Si on disposait de la valeur prise par f (·) dans un nouveau
noeud xn+1 , on aurait à calculer simplement une ligne
supplémentaire composée par n + 1 éléments.
• Pour construire πn+1 (·) à partir de πn (·), (n + 1) divisions et
2(n + 1) additions sont nécessaires, donc un coût O(n). Ceci
n’est pas le cas pour la méthode de Lagrange où il est
nécessaire de répéter toute la procédure avec un coût
O(n2 ).
Exercice TP
Données et polynôme interpolant.
Script s pol new2.m
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.28
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.29
Convergence uniforme
• L’étude de convergence uniforme analyse le comportement
de la norme du maximum de l’erreur quand n tend vers l’infini.
• Propriété Soient x0 , x1 , . . . , xn , n + 1 noeuds d’interpolation
distincts dans [a, b] et πn l’interpolation polynomiale. Quand
n → ∞ il est toujours possible de trouver une fonction f pour
laquelle lim kf − πn k∞ 6= 0 où kgk∞ = maxx∈[a,b] |g(x)|.
n→∞
• 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 à
l’intervalle [a, b].
• Notons que ceci n’est pas en contradiction avec le théorème
de Weierstrass selon lequel pour toute fonction continue
f ∈ C([a, b]) il existe toujours une série de polynômes pn telle
que lim kf − pn k∞ = 0. Malheureusement ces polynômes
Voir la fonction Matlab dividf.m dans le livre Quarteroni et le script
s pol new.
n→∞
ne peuvent pas être obtenus par interpolation.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.30
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.31
Exemple Matlab
Contre-exemple de Runge
1
0.8
Supposons qu’on approche la fonction
f (x) =
0.6
1
1 + x2
0.4
en utilisant l’interpolation de Lagrange avec noeuds équirépartis.
Puisque les dérivées de la fonction ne sont pas bornées, on peut
vérifier qu’il existe des points x à l’intérieur de l’intervalle
d’interpolation tels que
0.2
0
-0.2
-0.4
-3
lim |f (x) − πn (x)| =
6 0
n→∞
-2
-1
0
1
2
3
Les polynômes d’interpolation présentent des oscillations qui
augmentent avec le degré du polynôme.
c.-à-d. l’approximation se dégrade en ajoutant données.
Voir le script Matlab s runge.m.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.32
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.33
Instabilité de l’interpolation
Conditionnement du problème
Une petite variation des données, pour noeuds équirépartis, cause
une large variation de l’approximation.
• Le conditionnement du problème d’interpolation peut être
décrit en fonction des polynômes caractéristiques par la
constante de Lebesgue associée aux noeuds d’interpolation
n
X
Λn = k
|li (x)|k∞
2
1.5
1
i=0
0.5
• Supposons de perturber les données de la manière suivante
ŷi = yi + δi et soit π̂n le polynôme perturbé résultant. Il est
possible montrer que
0
-0.5
kδk∞
kπn − π̂n k∞
≤ Λn
kπn k∞
kf k∞
-1
• En particulier pour des noeuds équirépartis on peut montrer
-1.5
n+1
que Λn ≈
2
en log n
-2
-3
-2
-1
0
1
2
3
Voir le script Matlab s unstable.m.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.34
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.35
Splines
• Le fonction de Runge et les problèmes d’instabilité mettent en
lumière le fait que l’interpolation polynomiale n’est pas bien
adaptée à l’approximation de fonctions pour grand n.
• L’avantage des spline est qu’en augmentant n on augment le
nombre de morceaux et non le degré des polynômes.
• Dans le domaine du design, en construction automobile par
exemple, les splines sont utilisées pour approcher des
contours complexes. Leur simplicité d’implémentation les
rend très populaires et elles sont fréquemment utilisées dans
les logiciels de dessin.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.36
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.37
Splines
Définition Soient {x0 , . . . , xn }, n + 1 noeuds distincts de [a, b] avec
Interpolation par splines : n = 2
a = x0 < x1 < · · · < xn = b
La fonction sk (x) sur l’intervalle [a, b] est une spline de degré k
relative aux noeuds xi si
sk,i = sk|[xi ,xi+1 ] ∈ Pk , pour i = 0, 1, . . . , n
sk
∈
y2
y
1
y0
C k−1 [a, b]
Tout polynôme de degré k sur [a, b] est une spline, mais... en
pratique, on considère
x0
• splines constituées de n polynômes différents sk,i sur
chaque sous-intervalle [xi , xi+1 ] où
• il peut y avoir des discontinuités de la dérivée k-ième aux
noeuds internes (actives).
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.38
M. Jansen, G. Bontempi
x1
x2
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.39
Spline : ordre k = 0
Spline : ordre k = 1
y2
y2
s1,1
s0,1
y
y
1
s0,0
y0
x0
M. Jansen, G. Bontempi
y0
x1
x0
x2
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.40
M. Jansen, G. Bontempi
y2
x2
Chap. 5: Interpolation
p.41
Spline : ordre k = 3
y2
s2,1
y
s3,1
y
1
x1
INFO-F-205 Calcul Num.
Spline : ordre k = 2
s3,0
1
s2,0
y0
y0
x0
M. Jansen, G. Bontempi
s1,0
1
x1
x0
x2
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.42
M. Jansen, G. Bontempi
x1
x2
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.43
Calcul d’une spline
Conditions additionnelles
Encore k − 1 degrés de liberté à fixer. Deux options :
Le i-ième, i = 0, . . . , n − 1 polynôme sk,i = sk|[xi ,xi+1 ] composant la
spline est d’ordre k et peut être écrit sous la forme
sk,i =
k
X
h=0
1. splines périodiques
(m)
Conditions :
• k(n − 1) pour les dérivées :
(l+j)
sk
=
(m)
sk,i (xi )
(a)
=
0
(l+j)
sk (b)
=
0
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
j = 0, 1, . . . , l − 2
Exemple : Si k = 3, alors l = 2
(2)
pour i = 1, . . . , n − 1 et m = 0, . . . , k − 1
• n + 1 interpolations : sk (xi ) = f (xi ) pour i = 0, . . . , n.
• k − 1 additionnelles.
M. Jansen, G. Bontempi
m = 1, . . . , k − 1
2. splines naturelles Pour k = 2l − 1, avec l ≥ 2 on a
2(l − 1) = k − 1 conditions additionelles
Calculer une spline équivaut à déterminer (k + 1)n coefficients shi .
(m)
sk,i−1 (xi )
(m)
sk (a) = sk (b)
shi (x − xi )h
(2)
sk (a) = sk (b) = 0
p.44
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.45
Calcul d’une spline cubique (I)
Il faut déterminer (k + 1)n = 4n coefficients pour déterminer s3 (·).
Conditions :
+
• s3 (x−
i ) = f (xi ) = s3 (xi )
Splines cubiques
•
Les splines d’interpolations cubiques (degré k = 3) sont importantes
car
•
•
1. Ce sont les splines de plus petit degré qui permettent une
approximation C 2 (donc la dérivée première est continue
d’ordre 1),
•
s3 (x0 ) = f (a)
pour i = 1, . . . , n − 1
s3 (xn ) = f (b)
s′3 (x−
i )
s′′3 (x−
i )
=
=
s′3 (x+
i )
s′′3 (x+
i )
[2(n − 1)]
[1]
[1]
pour i = 1, . . . , n − 1
pour i = 1, . . . , n − 1
[(n − 1)]
[(n − 1)]
En totale, 4n − 2 conditions. Les k − 1 = 2 restantes sont imposées
via les conditions additionnelles.
2. elles ont de bonnes propriétés de régularité.
Le calcul d’une spline demande donc la résolution d’un système
linéaire de de 4n équations. Nous verrons dans la suite que il est
toutefois possible formuler le problème de manière telle à réduire la
taille du système à l’ordre n + 1.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.46
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.47
Calcul d’une spline cubique (II)
Introduisons les notations suivantes :
fi = s3 (xi ), mi = s′3 (xi ), Mi = s′′3 (xi ),
3
Puisque s3,i−1 (·) ∈ P ,
s′′3,i−1 (xi ) = Mi
s′′3,i−1 (·)
est linéaire et
Calcul d’une spline cubique (III)
i = 0, . . . , n
s′′3,i−1 (xi−1 )
En imposant les valeurs aux extrémités s3,i−1 (xi−1 ) = fi−1 et
s3,i−1 (xi ) = fi , on a
= Mi−1 ,
h3
s′′3,i−1 (x) = Mi−1
fi−1 = s3,i−1 (xi−1 ) = Mi−1 6hii + C̃i−1 ⇔ C̃i−1
x − xi−1
xi − x
+ Mi
hi
hi
h3
fi = s3,i−1 (xi ) = Mi 6hii + Ci−1 hi + C̃i−1 ⇔ Ci−1
=
=
fi−1 − Mi−1
fi −fi−1
hi
−
h2i
6
hi
6 (Mi
− Mi−1 )
Notons que les conditions d’interpolation nous permettent le calcul
des constants Ci et C̃i pour i = 1, . . . , n.
pour x ∈ [xi−1 , xi ], i = 1, . . . , n où hi = xi − xi−1 .
En intégrant
s′3,i−1 (x)
=
s3,i−1 (x)
=
M. Jansen, G. Bontempi
2
2
−x)
i−1 )
+ Mi (x−x
+ Ci−1
−Mi−1 (xi2h
2hi
i
3
3
−x)
i−1 )
+ Mi (x−x
+ Ci−1 (x − xi−1 ) + C̃i−1
Mi−1 (xi6h
6hi
i
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.48
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.49
Calcul d’une spline cubique (V)
Calcul d’une spline cubique (IV)
Puisque
s′3,i−1 (x)
=
s′3,i (x)
=
2
2
−x)
i−1 )
−Mi−1 (xi2h
+ Mi (x−x
+
2hi
i
2
2
−x)
i)
+ Mi+1 (x−x
−Mi (xi+1
2hi+1
2hi+1 +
fi −fi−1
hi
fi+1 −fi
hi+1
−
−
hi
6 (Mi − Mi−1 )
hi+1
6 (Mi+1 − Mi )
en imposant la continuité de la dérivée première en xi
s′3,i−1 (xi )
=
=
fi −fi−1
hi
hi
6 Mi−1 + 3 Mi +
hi
hi+1
fi+1 −fi
− hi+1
= s′3 (x+
M
−
M
+
i
i+1
i )
3
6
hi+1
s′3 (x−
i )=
= s′3,i (xi )
pour i = 1, · · · , n − 1.
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
• Ceci conduit au système linéaire tridiagonal (dit de
M-continuité) avec n + 1 inconnues et n − 1 équations
hi
fi − fi−1
hi + hi+1
hi+1
fi+1 − fi
−
Mi−1 +
Mi +
Mi+1 =
6
3
6
hi+1
hi
pour i = 1, . . . , n − 1.
• Pour obtenir une spline naturelle on rajoute les 2 conditions
supplémentaires

M = s(2) (x ) = 0
0
0
3
Mn = s(2) (xn ) = 0
3
Chap. 5: Interpolation
p.50
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.51
Exercice TP
Spline cubique (k = 3) naturelle pour la fonction f (x) = sin(x).
Données (n = 4) :
0
0.5
1
1.5
2
0
0.4794
0.8415
0.9975
0.9093
nous obtenons le système de M-continuité :


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 


Puisque hi = 0.5 pour i = 1, 2, 3 et
hi
= 0.0833,
6
hi + hi+1
= 0.3333,
3
0
i = 1, 2, 3
et
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
0
0
1.0000


0


 


M1 
  −0.2348 

 


M2 
 =  −0.4120 

 


M3 
  −0.4884 
M4
0
En resolvant le système nous obtenons Mi , i = 0, . . . , 4 et donc nous
pouvons calculer Ci−1 et C̃i−1 pour i = 1, . . . , 4. Ceci nous permet
d’écrire les équations des 4 morceaux de spline.



2 ∗ (f2 − f1 ) − 2 ∗ (f1 − f0 ) = −0.2348
2 ∗ (f3 − f2 ) − 2 ∗ (f2 − f1 ) = −0.4120



2 ∗ (f4 − f3 ) − 2 ∗ (f3 − f2 ) = −0.4884
M. Jansen, G. Bontempi
0
M0
p.52
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.53
Spline et fonction de Runge
nombre de noeuds = 8
y=1/(1+x2)
points
spline
0.8
Exercice TP
nombre de noeuds = 60
1
1
y=1/(1+x2)
points
spline
0.8
0.6
0.6
0.4
0.4
0.2
0.2
Script s spline2.m
0
-3
-2
-1
0
1
2
3
0
-3
-2
-1
0
1
2
3
Script s ru spl.m, fonction [s,A,b]=spcub(X,Y,x)
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.54
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.55
Limitations
Les splines d’interpolation présentent deux inconvénients :
• La spline peut-elle aussi dévenir oscillante si les dérivées de
la fonction à interpoler deviennent trop grandes (>> 1).
• la spline dépend du choix du système de coordonnées, donc
elle ne possède pas une propriété d’invariance géométrique.
• Ceci peut être gênant si la spline est utilisée pour représenter
graphiquement une courbe qui n’est pas un graphique d’une
fonction (par exemple une ellipse). Une solution vient du fait
de représenter la spline de manière paramétrique
(coordonnées x et y fonction d’un paramètre t).
M. Jansen, G. Bontempi
INFO-F-205 Calcul Num.
Chap. 5: Interpolation
p.56

Documents pareils