Interpolation polynomiale - Université Paris-Est Marne-la
Transcription
Interpolation polynomiale - Université Paris-Est Marne-la
Université Paris xii – Val de Marne, ufr Sciences et Technologie, Module Libre Sciences l2/s3 2008–09 Mathématiques expérimentales TP n◦ 4 On se donne n + 1 points distincts du plan, soit (x0 , y0 ), . . . , (xn , yn ). On cherche à déterminer l’unique polynôme P de degré n tel que P (xi ) = yi . On sait, d’après le cours, que celui-ci est donné par la formule de Newton : P (x) = δ 0 y[x0 ] + (x − x0 )δy[x0 , x1 ] + (x − x0 )(x − x1 )δ 2 y[x0 , x1 , x2 ] + · · · · · · + (x − x0 ) · · · (x − xn−1 )δ n y[x0 , . . . , xn ], où les différences divisées δ i y[x0 , . . . , xi ] sont définies par récurrence à l’aide des relations : δ 0 y[xi ] = yi , et δ i y[xj , . . . , xj+i ] = δ i−1 y[xj+1 , . . . , xj+i ] − δ i−1 y[xj , . . . , xj+i−1 ] , xj+i − xj ∀0 ≤ j < j + i ≤ n. Souvent le calcul des différences divisées (voir formules précédentes) s’effectue sous forme de tableau. Par exemple pour x = [0, 2, 4, 5, 8, 10] et y = [0, −1, 5, 0, 3, −2], on dresse le tableau suivant : Tab. 1. Tableau des différences divisées pour x et y. xi 0 yi 0 2 -1 δy δ2y δ3y δ4y δ5y -1/2 7/8 3 4 5 5 0 8 3 -17/24 -8/3 -5 101/576 25/36 3/2 1 -887/28800 -191/1440 -11/30 -7/10 -5/2 10 -2 Exercice 1. Précisez ce que fait la procédure suivante. differ:=proc(x,y) local n,d,i,j; n:=nops(x); if n=1 then [y[n]]; else d:=y; for i from n-1 by -1 to 1 do for j from i+1 to n do d[j]:=(d[j]-d[j-1])/(x[j]-x[i]); od; od; d; fi; end; Exercice 2. Soit x :=[0,2,4,5,8,10] et y :=[-1,1,6,0,2,5]. Déterminer le tableau des différences divisées associé. Exercice 3. Écrire une procédure Poly qui prenne comme arguments des vecteurs de même taille n + 1 x et y et fournisse la fonction polynôme P tels que P (xi ) = yi , i = 0, . . . , n (on pensera à la commande unapply). Tracer sur un même graphique le nuage de points {(xi , yi )}i=1..6 (de l’exercice 2) avec la courbe représentative du polynôme P qui les interpole. Pour afficher deux graphes sur le même graphique, on pourra s’inspirer de l’exemple suivant > with(plots): > L:=[seq([x[i],y[i]],i=1..nops(x))]; > p1:=plot(L,style=point,color=black,legend="Points a interpoler"): p2:=plot(P(t),t=a..b,legend="Polynome interpolateur"): > display({p1,p2}); Exercice 4. On pose x2:=[4,5,2,8,0,10] et y2:=[6,0,1,2,-1,5]. On note P 0 le nouveau polynôme, et δ 0 l’ensemble des coefficients nécessaire pour construire ce polynôme par la formule de Newton. Comparer les polynômes P et P 0 . Justifier votre observation. Relier δ 0 à l’exercice 2. Exercice 5. On rajoute un point dans la liste des points de l’exercice 2 : le point (4.5, 4). Déterminer le nouveau polynôme Q interpolateur. À partir de l’exercice 2, quels calculs sont réellement nécessaires pour déterminer Q. Quelle influence l’ajout du point a-t-il sur le nouveau polynôme (graphiquement et algébriquement) ? Tracer sur la même figure les courbes représentatives des polynômes Q et P . Mêmes questions si on rajoute le point (9/2, 3) au lieu de (4.5, 4). On se donne une fonction f : [a, b] 7→ R. On détermine les polynômes passant par n + 1 points (xi , yi = f (xi )) pour un nombre de plus en plus important de points. On veut tester la convergence ou non de la suite de polynômes ainsi construite vers la fonction f . Exercice 6. Soit f (x) = 1/(1 + 25x2 ). On se donne deux choix de répartition de n + 1 points sur [−1, 1], soit xi = −1 + 2i/n, i = 0, . . . , n et ¶ µ (2i + 1)π , i = 0, . . . , n. xi = cos 2n + 2 Pour n ∈ {2, 4, 6, 8, 10} et pour chacun des deux choix de répartition, utiliser les résultats de la première partie pour déterminer les différents polynômes Pn tels que Pn (xi ) = f (xi ), i = 0, . . . , n. Pour chaque valeur de n, tracer sur un même graphique les deux polynômes interpolant avec la fonction f . Que constate-t-on sur la qualité de l’approximation de f sur [−1, 1] ? La convergence des polynômes vers la fonction f vous semble-t-elle uniforme dans les deux cas ?