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