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 ?