Vous êtes sur la page 1sur 2

Université de Nantes Année 2008-2009

Département de Mathématiques Licence de mathématiques - S22M030

Analyse Numérique
TP : interpolation polynômiale

1. Les polynômes sous Matlab


Si v=[v(1), v(2), ... ,v(n)] est vecteur ligne, il peut être considéré sous Matlab comme le polynôme
p(z) = v(1)z n−1 + v(2)z n−2 + . . . + v(n − 1)z + v(1) .
Si c est un réel ou un nombre complexe, pour obtenir d=p(c) la commande est
d=polyval(v,c) ;
La dérivée de p(z) est codé par le vecteur ligne w
w=polyder(v) ;
(w=[nv(1), (n-1)v(2), ... , v(n-1)]) .
Si va=[va(1), ... , va(m)] et vb=[vb(1), ... ,vb(n)] de polynôme associé en Matlab que nous notons pa(z)
et pb(z), alors pa(z)pb(z) est représenté sous Matlab par le vecteur wab suivant :
wab=conv(va,vb) ;
Si la division euclidienne de pa(z) par pb(z) est donné par
pa(z) = q(z)pb(z) + r(z) , (degré de r < degré de pb(z)), alors, si vq vr sont les vecteurs Matlab codant
q(z) et r(z), ils s'obtiennent par la commande
[vq, vr]=deconv(va,vb) ;
Les racines réelles ou complexes de pa(z) sont données par la commande
roots(va) ;
Si A est une matrice n × n , son polynôme caractéristique est
((-1)n)*poly(-A)
Familiarisez-vous avec les commandes Matlab, sur les polynômes, en déssinant des courbes et cherchant
les racines complexes, puis en écrivant une fonction newtonP.m, de la forme
function y=newtonP(v,a,r)
où a est le point de départ de la méthode de Newton appliqué au polynôme p(z) codé par v, et où r est le
teste d'arrêt des itérations de Newton, (quand la valeur absolue de p(z) est inférieure à r). Comparer votre
newtonP avec le roots de Matlab, puis avec le fzero de Matlab.

2. Interpolation polynômiale : la formule de Lagrange


Si x = (x(1), x(2), ... , x(n)) et y =(y(1), y(2), ..., y(n)) sont deux vecteurs de même longuer n, tel que
x(j) soit diérent de x(k) quand j est diérent de k, alors il existe un unuque polynôme p(z) de degré inférieur
ou égal à n-1 tel que p(x(j)) = y(j) , ceci pour tout j.
p(z) est donné par la formule de Lagrange
X n
p(z) = y(j)Lj (z)
j=1
Y z − x(k)
où les Lj (z) = forment la base de Lagrange de Rn−1 [z] , associée aux x(j).
x(j) − x(k)
1≤k≤n, k6=j
Ecrire une fonction Matlab interpolL.m
function u=interpolL(x,y,c)
donnant u = p(c), où p(z) est le polynôme d'interpolation aux points de x pour les valeurs de y, obtenu
en utilisant la formule de Lagrange.
En remarquant que la matrice de Vandermone associée aux x(j), V D = (xn−j (i))1≤i,j≤n , s'obtient sous
Matlab par
VD=vander(x) ;
le vecteur v codant p(x) est alors
v=VD\y' ; v=v' ;% Noter les ' qui signie transposée
ou
v=VD(-1)*y' ; v=v' ;
Comparer votre fonction d'interpolation avec celle utilisant la matrice de Vandermonde, en traçant des
gures.
Vérier que v s'obtient aussi sous Matlab par
v=polyt(x,y,length(x)-1) ;

1
3. Interpolation polynômiale : la formule de Newton
Sous les hypothèses précédentes, la base Newton de Rn−1 [z] associée aux points x(j) est donnée par les
N0 (z) = 1 , N1 (z) = z − x(1) , N2 (z) = (z − x(2))N1 (z) , . . . ,
Nj (z) = (z − x(j))Nj−1 (z) , . . . , Nn−1 (z) = (z − x(n − 1))Nn−2 (z) .
La formule de Newton donnant le polynôme d'interpolation p(z) aux points x(j), pour les valeurs y(j) est
n−1
X
p(z) = y1 + [y1 , . . . , yj ]Nj (z)
j=2
où les [yj , yj+1 , . . . , yj+k ] s'obtiennent par récurrence sur k, par la formule
[yj+1 , . . . , yj+k , yj+k+1 ] − [yj , yj+1 , . . . , yj+k ]
yj = y(j) , [yj , yj+1 , . . . , yj+k , yj+k+1 ] = .
x(j + k + 1) − xj
Ecrire une fonction Matlab interpolN.m
function u=interpolN(x,y,c)
donnant u = p(c), où p(z) est le polynôme d'interpolation aux points de x pour les valeurs de y, obtenu
en utilisant la formule de Newton.
Comparer votre fonction d'interpolation avec celle utilisant la matrice de Vandermonde, en traçant des
gures.

Devoir maison

4. Interpolation polynômiale : la phénomène de Runge


Vérier que sur [−1, 1] , l'interpolation polynômiale de f (x) = 1/(1 + a2 x2 ) , en N points uniforment
espacés ne converge pas correctement au voisinage des −1 et 1 , quand a > 1 , pour N=7, 8, 9, 10, ...

5. Interpolation polynômiale : les points de Tchebychev


Les n points de Tchebychev sur un intervalle [a, b] sont les
j−1
x(j) = a+b 2 + b−a
2 cos( n−1 π) , (1 ≤ j ≤ n : x(1) = a , x(n) = b) .
Vérier que sur [−1, 1] , l'interpolation polynômiale de f (x) = 1/(1 + x2 ) , en N points de Tchebychev
est meilleure qu'un N points uniforment espacés N=10, 11, 16, 17.

Vous aimerez peut-être aussi