Chapitre 5 Interpolation polynômiale et extrapolation Sommaire 5. Interpolation de Lagrange.................. 2 5.. Formulation barycentrique.................. 4 5..2 Formule de Newton...................... 5 5..3 estimation d erreur...................... 7 5..4 Convergence de p n vers f.................. 9 5.2 Interpolation d Hermite.................... 0 5.3 Interpolation par morceaux................. 5.3. Interpolation affine...................... 5.3.2 Interpolation par fonctions splines............. 2 Deux problèmes classiques ) Interpolation : on considère une aile d avion, qu on soumet à des vents de 0, 50, 00, 200 km/h, et dont on calcule les déformations pour ces valeurs. On veut savoir comment elle résistera à un vent de 50km/h 2) Extrapolation : on connaît la population française de 800 à 200 et on veut en déduire une estimation de la population française dans les 0 prochaines années. Une solution est de déterminer un polynôme dont la courbe s approche le plus possible (ou passe par) ces points, et de prendre sa valeur aux nouveaux points. C est le but de ce chapitre. Le problème mathématique est le suivant : on se donne n + mesures f 0,, f n en n+ points distincts x 0,, x n et on cherche à calculer un polynôme q de degré
inférieur ou égal à m, avec m n, qui approche les mesures f 0,, f n. La première approche est quand m = n : c est le polynôme d interpolation. 5. Interpolation de Lagrange Théorème 5. ) Il existe un unique polynôme p n P n (espace vectoriel des polynômes de degré inférieur ou égal à n) tel que 2) Il s écrit sous la forme p n (x) = i, 0 i n, p n (x i ) = f i. (5.) n f i l i (x), avec l i (x) = j i x x j x i x j. (5.2) Les l i sont les polynômes d interpolation de Lagrange. p n est le polynôme d interpolation aux points x i pour les mesures f i. n Démonstration )Notons p n (x) = a k x k, x R. Résoudre (5.) est équivalent à résoudre un système linéaire dont les inconnues sont les coefficients a k : k=0 Ay = b avec x 0 x n 0 a 0 f 0 A =...., y =., b =., x n x n n a n f n A est une matrice de Vandermonde. Elle est inversible ce qui conclut la partie ). 2) l i est un polynôme de P n, et vérifie l i (x j ) = δ ij. On vérifie que ce polynôme convient. Fig. 5. polynôme d interpolation 2
Lorsque les fi sont les valeurs d une certaine fonction f aux points x i, on parle de p n comme de l interpolant d f et on la note Π n f. Fig. 5.2 interpolant En principe il suffit de résoudre le système linéaire pour calculer les a i, puis de calculer en chaque nouveau point x f(x) = (a 0, a,...,a n ) x. Mais le système est très mal conditionné. Il vaut mieux utiliser le programme suivant. x n function [yy] = lagint(x, y, xx) % LAGINT uses the ponts (x_i, y_i) for the Lagrange Form of the % interpolating polynomial and iterpolates the values % yy_i = P_n(xx_i) n = length(x); nn = length(xx); for i = :nn, yy(i) = 0; for k =:n yy(i) = yy(i)+y(k)*prod((xx(i) - x([:k-,k+:n])))... /prod((x(k) - x([:k-,k+:n]))); end; end; 3
5.. Formulation barycentrique Utiliser la formulation (5.2) mène à O(n 2 ) opérations pour chaque x. Nous définissons les coefficients λ i = j i (x i x j ). et nous réécrivons ( ) n p n (x) = λ i x j )f(x i ) = j i(x ( n ) λ i (x x j ) f(x i ) x x j i Puisque la formule est exacte pour les polynômes d degré 0, on peut écrire pour f : ( n ) et donc = j (x x j ) (x x j ) = ce qui nous donne la formule barycentrique j n λ i x x i λ i x x i p n (x) = n λ i f(x i ) x x i n λ i x x i Pour l utiliser nous calculons d abord les λ i en O(n 2 ) opérations, function [lambda] = coeffbary(x) % COEFFBARY computes the coefficients for the barycentric % representation of the interpolating polynomial through % the points (x_i, y_i) n = length(x); x=x(:); for k = :n, lambda(k) = / prod(x(k) - x([:k-,k+:n])); end; puis pour chaque x nous calculons les poids µ i = λ i x x i et p n (x) = seulement O(n) opérations. n µ if(x i ) n µ i en 4
function [yy] = intbary(x, y,lambda, xx) % INTBARY evaluates the interpolating polynomial % through (x_i, y_i) for the values xx: yy = P_n(xx) x=x(:); y=y(:); xx = xx(:); nn = length(xx); for i = :nn, z = (xx(i)-x) + e-30; % prevents a division by zero mue = lambda./z; yy(i) = mue*y/sum(mue); end; 5..2 Formule de Newton On se donne les n + points x 0,, x n. Pour tout k plus petit que n, on note p k le polynôme d interpolation de f aux points x 0,, x k. On a p k p k = C(x x 0 ) (x x k ) Définition 5. Pour k + points y 0,, y k, on note f[y 0,, y k ] le coefficient de degré k du polynôme d interpolation de f aux points y 0,, y k. Lemme 5. Démonstration p k p k = f[x 0,, x k ](x x 0 ) (x x k ) Théorème 5.2 (Formule de Newton) n p n (x) = f(x 0 ) + f[x 0,, x k ](x x 0 ) (x x k ) (5.3) k=0 Démonstration Il suffit de sommer la formule de récurrence précédente. Lemme 5.2 (Formule des différences divisées) k, f[x 0,, x k ] = f[x,, x k ] f[x 0,, x k ] x k x 0 (5.4) 5
Démonstration D où la table de calcul Voici l algorithme matlab Fig. 5.3 table des différences divisées function [d,d] = coeffnewton(x, y) % COEFFNEWTON computes the divided differences needed for % constructing the interpolating polynomial through (x_i,y_i) n = length(x)-; % degree of interpolating polynomial The Interpolation Polynomial 335 % divided differences for i=:n+ D(i,) = y(i); for j = :i- D(i,j+) = (D(i,j)-D(i-,j))/(x(i)-x(i-j)); end end d = diag(d); Une fois les d i calculés, pour les utiliser nous couplons avec l algorithme de Hörner, en réécrivant le polynôme p n sous la forme p n (x) = d 0 + (x x 0 )(d + (x x )(d 2 + + (x x n 2 )(d n + (x x n )d n ))) 6
function y = intnewton(x,d,z) % INTNEWTON evaluates the Newton interpolating polynomial % at the new points z: y = P_n(z) using the Horner form % and the diagonal d of the divided difference scheme. n = length(x)-; y = d(n+) for i= n:-: y = y.*(z-x(i))+d(i); end; En fait ces différences divisées sont des approximations des dérivées : il existe un ξ dans l intervalle (inf(x i ), sup(x i )) tel que f[x 0,, x n ] = f(n+) (ξ) (n + )! En Matlab, on utilise la fonction polyfit pour l interpolation polynomiale. Cette fonction utilise une interpolation au sens des moindres carrés discrets (voir partie 3). 5..3 estimation d erreur Théorème 5.3 si f C n+ ([a, b]), x [a, b], ζ x appartenant au plus petit intervalle ouvert contenant x, x 0,, x n, tel que f(x) p n (x) = (n + )! f(n+) (ζ x )Π n+ (x) (5.5) où Π n+ (x) = n (x x i ). Démonstration On remarque d abord que l égalité est vraie si x est l un des x i. On suppose ensuite que x est fixé, non égal à l un des x i. On applique le théorème de Rolle n + fois à la fonction définie pour x fixé par où C est défini par F(x) = 0. F(t) = f(t) p n (t) CΠ n (t) 7
On déduit de ce théorème une estimation d erreur grossière. On note pour une fonction ϕ, ϕ = sup x [a,b] ϕ(x) f p n = (n + )! F n+ Π n+ (5.6) Pour une fonction f donnée, on minimise l erreur en choisissant bien les points d interpolation : Théorème 5.4 Sur un intervalle [a, b], Π n+ est minimale pour le choix des points x T i = a + b 2 + b a 2 yn+ i, 0 i n Les y n+ i = cos( 2i + 2(n + ) π) sont les zéros du polynôme de Chebyshev T n+. Polynômes de Chebyshev Pour tout k on définit sur [, ] la fonction T k (y) = cos(karc cosy) (5.7). C est en fait un polynôme de degré k. Pour voir ça on montre la formule de récurrence T k+ (y) = 2y T k T k, T 0 =, T = y, (5.8) ce qui permet de les définir sur tout R. Le coefficient dominant de T k est 2 k y k, ses zéros sont les yi k = cos ( 2i+π) pour 0 i k, et les extrema valent 2k ( )i, atteints aux points ỹi k = cos ( i π) pour 0 i k. k Lemme 5.3 Pour tout p P k unitaire (i.e. p = y k + ), on a p T k 2 k = 2 k Par suite, pour n importe quel choix des points d interpolation x 0,, x n, faisons un changement de variable x i = a + b 2 + b a 2 y i, 0 i n, x = a + b + b a 2 2 y Lorsque x varie dans l intervalle [a, b], y varie dans l intervalle [, ] et ( ) n+ b a n Π n+ (x) = (y y i ) 2 8
Minimiser l erreur est donc minimiser la norme infinie d un polynôme unitaire sur (, ], et inf Π n+ = (x x T i ) = 2 {x i } ( b a 4 ) n+ Remarque 5. Pour une division en points équidistants, i.e. x j = a + b a j, on n montre que e n Π n+ (b a) n+ nln n Pour (a, b) = (, ), la figure suivante montre le logarithme des erreurs en fonction de n dans les deux cas 0 5 points de Chebyshev 0 0 points équidistants 0 5 0 0 0 5 0 20 0 25 0 30 0 35 0 20 40 60 80 00 Fig. 5.4 Comparaison de Π n+ pour deux ensembles de points 5..4 Convergence de p n vers f Considérons la fonction f(x) = x+ 5 sin(x) sur [0,6] (ex de Quarteroni). 9
0 2 3 4 5 6 0.8 0.6 0.4 fn 2 n = 36 0.2 0 0.2 0.4 0.6 0.8.2 Fig. 5.5 interpolant On constate dans ce cas que la suite Π n (f) converge vers f. Ce n est pas vrai en général. Le contre-exemple classique est celui de la fonction de Runge f(x) = + 5x 2 : 8 7 6 f n = 2 n = 4 n = 4 5 4 3 2 0 0.5 0 0.5 Fig. 5.6 interpolant Bien que la fonction soit tout à fait régulière, on voit que l erreur en tend vers l infini. 5.2 Interpolation d Hermite f est toujours une fonction suffisamment régulière sur le segment [a, b]. On se donne k + points x 0,, x k dans [a, b]. 0
Théorème 5.5 Posons n = 2k +. Il existe un et un seul polynôme p n P n tel que j, 0 j k, p n (x j ) = f(x j ) et p n(x j ) = f (x j ). Théorème 5.6 si f C n+ ([a, b]), x [a, b], ζ x appartenant au plus petit intervalle ouvert contenant x, x 0,, x k, tel que f(x) p n (x) = (n + )! F n+ (ζ x )Π n+ (x) (5.9) où Π n+ (x) = k (x x i ) 2. p n dépend de 2k + 2 coefficients, nous allons l exprimer sous la forme p n (x) = k f(x i )q i (x) + où les polynômes q i et r i sont définis par q i(x j ) = δ ij, q i(x j ) = 0, k f (x i )r i (x) (5.0) r i (x j ) = 0, r i(x j ) = δ ij. (5.) On peut les déterminer en fonction des polynômes d interpolation de Lagrange l i : q i (x) = ( + 2(x i x)l i(x i ))l 2 i(x), r i (x) = (x x i )l 2 i(x). 5.3 Interpolation par morceaux Soient a a 0 < a < < a N b des points qui divisent l intervalle I = [a, b] en sous-intervalles I j = [a j, a j+ ] de longueur H = b a N, soit a j = a + jh. 5.3. Interpolation affine Sur chaque intervalle I j, on interpole f par un polynôme de degré inférieur ou égal à. On obtient un polynôme par morceaux, noté Π H f. Il s écrit Π H f(x) = f(a j) + f[a j, a j+ ](x a j ), x I j
Π H f f a H b Théorème 5.7 Si f C 2 (I), alors Fig. 5.7 interpolation affine par morceaux sup f(x) Π H f(x) H2 x I 8 sup x I Démonstration Il suffit d appliquer l estimation d erreur (5.6). f (x). (5.2) Remarque 5.2 Si f C n+ (I), on peut faire de même une interpolation par des polynômes de degré inférieur ou égal à n dans chaque sous-domaine et on obtient l estimation d erreur sup f(x) Π H n f(x) x I Hn+ 4(n + ) sup x I 5.3.2 Interpolation par fonctions splines f (n+) (x). (5.3) L inconvénient de la démarche précédente est que l approximation de f manque de régularité. Ici nous nous donnons y i = f(a i ) et aussi des valeurs y i que nous choisirons ensuite. Dans chaque sous-intervalle, nous interpolons la fonction f par un polynôme p i P 3 tel que p i (a i ) = y i, p i (a i+ ) = y i+, p i(a i ) = y i, p i(a i+ ) = y i+, Faisons le changement de variable y = (x a i )/H, et posons p(x) = P(y). On doit donc avoir P i (0) = y i, P i () = y i+ ; P i (0) = Hy i, P i () = Hy i+ ; 2
Nous utilisons les formules données pour les polynômes d Hermite. P i = y i q 0 + y i+ q + y i r 0 + y i+ r Les polynôme de Lagrange aux points 0 et sont l 0 = y, l = y, et les polynômes q i et r i sont donnés par q 0 (y) = (2y )( y) 2, q 0 (y) = (2y )y 2, r 0 (y) = y( y) 2, r i (y) = ( y)y 2. Comment maintenant calculer la valeur de p i en un point x?. Déterminer l intervalle [a i, a i+ ] où se trouve x. 2. Calculer la variable locale y = (x a i )/H. 3. Évaluer P i (y), de préférence par l algorithme de Hörner. Pour déterminer l intervalle où se trouve x, on utiliser un algorithme de recherche binaire si les intervalles ne sont pas de même taille. Sinon bien sûr on prend la partie entière de x/h. Les y i doivent approcher les dérivées f (a i ) qui ne sont pas données en général. On peut alors approcher par exemple f (a i ) par des différences divisées y i = f[a i, a i+ ] pour i N. Aux deux extrémités on peut prendre des dérivées décentrées y 0 = f[a 0, a ] et y N = f[a N, a N ]. Peut-on déterminer les y i de façon à être encore plus régulier? Par exemple que les dérivées secondes soient aussi continues? La réponse est oui, ce sont les vrais splines cubiques historiques. 3
4
5