Université Paul Verlaine-Metz, année 2008/2009 - J-P. Croisille Université Paul Verlaine-Metz - UFR MIM Master de Mathématiques, année M1 Module Modélisation et introduction à la programmation 1 Année 2008/2009 Exercices - Feuille1 1- Calcul du polynôme d’interpolation de Lagrange Soit x0 < x1 < ... < xn−1 < xn et f0 , ...fn ∈ R. On considère, pour calculer le polynôme d’interpolation de Lagrange p(x) = c0 + c1 x + ... + cn xn associé aux données (x0 , f0 ),...(xn , fn ) l’algorithme suivant • Calcul des ci en résolvant un système linéaire (n + 1) × (n + 1) que l’on précisera. • Assemblage de p(x) par (algorithme 1), p:=c_0; de i=1:N faire, p:=p+ c_i*x^i fin i; 1) Programmer cet algorithme en matlab. On utilisera x=A\b pour résoudre le système linéaire Ax = b. 2) Combien de multiplications l’algorithme 1 fait-il intervenir ? 3) Programmer le schéma de Horner pour évaluer p(x), c’est-à-dire l’algorithme suivant, p:=c_N; de i=N-1:-1:0 faire, p:=c_i+ p*x; fin i; 4) Combien de multiplications le schéma de Horner fait-il intervenir ? 2- Algorithme de Neville pour le calcul du polynôme d’interpolation de Lagrange 1) Soit n + 1 points x0 , x1 , ..., xn ∈ [a, b] et y0 , y1 , .., yn ∈ R. On considère les polynômes pki ∈ P k , i = 0, 1, ..n − k, k = 0, .., n définis (de façon unique ) par la propriété d’interpolation pki (xj ) = yj , j = i, .., i + k (1) Montrer que pour x fixé, les valeurs pki (x) peuvent être évaluées par la relation de récurrence (algorithme de Neville) 0 pi (x) = yi k−1 (x − xi )pi+1 (x) − (x − xi+k )pik−1 (x) (2) pki (x) = , k = 1, .., n xi+k − xi 2) Ecrire un programme matlab qui permet d’évaluer les pki au point x fixé par l’utilisateur. Université Paul Verlaine-Metz, année 2008/2009 - J-P. Croisille 2 3- Algorithme de calcul des différences divisées de Newton 1) Soit f une fonction définie sur [a, b] et a ≤ x0 < x1 < x2 < ... < xn ≤ b. Rappeler la formule de récurrence permettant de calculer les différences divisées f [x0 , x1 , .., xk ]. Rappeler également pourquoi le polynôme de Lagrange s’écrit PN (x) = f [x0 ] + (x − x0 )f [x0 , x1 ] + (x − x0 )(x − x1 )f [x0 , x1 , x2 ] + { N −1 Y (x − xj )}f [x0 , x1 , ...xN ] (3) j=0 2) Vérifier que l’algorithme suivant qui n’utilise qu’un vecteur c(:) calcule effectivement toutes les différences divisées de Newton. c_N:= f_N; % f_N=f(x_N) de j=N-1:-1:0 faire c_j:=f_j; % f_j=f(x_j) de k=j+1,...N, faire c_k=(c_k-c_{k-1})/(x_k-x_j); fin pour k; fin pour j 3) Programmer cet algorithme en matlab. Le programme doit avoir • En entréee, la série des couples de valeurs (xj , f (xj )), j = 0, ..., n • En sortie le vecteur c. 4) En déduire un algorithme de calcul du polynôme de Lagrange en une série de points fixés par l’utilisateur, utilisant la formule (3). 4- Comportement de l’interpolé de Lagrange 1) On considère la fonction f (x) = sin(x) sur [a, b] = [0, π] et p(x) le polynôme d’interpolation de Lagrange de f (x) en n + 1 points distincts. Montrer que l’erreur d’interpolation e(x) = f (x) − p(x) vérifie π n+1 |e(x)| ≤ (4) (n + 1)! 2) Utiliser un programme de calcul du polynôme de Lagrange pour vérifier numériquement ceci. 3) On considère la fonction de Runge x ∈ [−5, 5] 7→ 1 1 + x2 (5) Vérifier avec un programme de calcul du polynôme d’interpolation de Lagrange que l’interpolé de Lagrange aux points xi = −5+10 ni , 0 ≤ i ≤ n ne converge pas vers f (x) aux points xn−1/2 = 5− n5 . Université Paul Verlaine-Metz, année 2008/2009 - J-P. Croisille 3 5- Comparaison interpolé de Lagrange/mesures effectives On considère le tableau de données astronomiques mesurées suivant (ν est une fréquence lumineuse et E(ν) un taux d’extinction lumineuse). ν >0.00 0.29 >0.45 >0.80 1.11 >1.43 1.82 >2.27 2.50 >2.91 E(ν) -3.10 -2.94 -2.72 -2.23 -1.60 -0.78 0.00 1.00 1.30 1.80 ν 3.65 >4.00 4.17 >4.35 >4.57 >4.76 5.00 >5.26 5.56 E(ν) 3.10 4.19 4.90 5.77 6.57 6.23 5.52 4.90 4.65 ν >5.88 6.25 >6.71 7.18 >8.00 8.50 >9.00 9.50 >10.00 E(ν) 4.77 5.02 5.05 5.39 6.55 7.45 8.45 9.80 11.30 1) Tracer le polynôme d’interpolation de Lagrange p(x) basé sur les donnés marquées >. 2) Evaluer pour les autres données la prédiction faite par p(x) et la valeur effectivement mesurée. Quelle est l’interprétation? 6- Norme de l’opérateur d’interpolation de Lagrange On considère l’application linéaire X qui associe à une fonction continue f ∈ C 0 [a, b] muni de la norme kf k = supx∈[a,b] |f (x)| son polynôme interpolé de Lagrange X(f ) ∈ Pn ⊂ C 0 [a, b] en les points a ≤ x0 < x1 , ... < xn ≤ b supposés fixés. Montrer que X ∈ L(C 0 [a, b]) et que sa norme est donnée par n X |lk (x)| (6) kXk = max a≤x≤b k=0 où les lk (x) sont les polynômes élémentaires de Lagrange. 7- Interpolé de Hermite Un polynôme de type interpolé de Hermite d’une fonction f (x) est un polynôme qui interpole aux points xj , j = 0, 1, ...n les valeurs de f (xj ) et également les valeurs de dérivées f (k) (xj ). On considère ici le problème d’interpolation de Hermite suivant: Soit n + 1 points distincts x0 , x1 , ..., xn ∈ [a, b] et 2n + 2 valeurs y0 , y1 , ..., yn ∈ R, y0′ , y1′ , ..., yn′ ∈ R, on cherche p(x) ∈ P2n+1 solution de p(xj ) = yj , p′ (xj ) = yj′ , j = 0, ..., n (7) 1) Soit lk (x) le polynôme élémentaire de Lagrange associé aux xk . On note Hk0 (x) = [1 − 2lk′ (xk )(x − xk )][lk (x)]2 , Hk1 (x) = (x − xk ))[lk (x)]2 Vérifier que Hk0 (xj ) = Hk1′ (xj ) = δjk Hk0′ (xj ) = Hk1 (xj ) = 0 (8) (9) for j, k = 0, ..., n. 2) Montrer que le polynôme défini par p= n X k=0 [yk Hk0 + yk′ Hk1 ] (10) Université Paul Verlaine-Metz, année 2008/2009 - J-P. Croisille 4 satisfait la relation (7). 3) Montrer que le polynôme défini par (10) est l’unique polynôme satisfaisant (7). 4) Rappeler le principe de calcul du polynôme de Hermite p(x) par différences divisées, généralisant la méthode de Newton. Comment choisir les x̄j et comment calcule-t-on les termes f [x̄0 , x̄1 , ...x̄2n+1 ] pour que l’on ait l’identité p(x) = f [x̄0 ]+(x−x0 )f [x̄0 , x̄1 ]+(x− x̄0 )(x− x̄1 )f [x̄0 , x̄1 , x̄2 ]+{ 2n Y j=0 (x− x̄j )}f [x̄0 , x̄1 , ...x̄2n+1 ] (11)