0% ont trouvé ce document utile (0 vote)
11 vues3 pages

Interpolation polynomiale de Lagrange

Transféré par

nina
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues3 pages

Interpolation polynomiale de Lagrange

Transféré par

nina
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Interpolation polynomiale de Lagrange

L’interpolation consiste à trouver l’expression générale d’une fonction à partir d’un nombre
limité de points.
Quand la fonction recherchée est un polynôme l’interpolation est dite polynomial.
Dans notre TP on va arborer l’implémentation de la méthode d’interpolation polynomiale de
Lagrange.

Principe :

Soit f une fonction donnée définie sur . Interpoler la fonction f par un polynôme P de degré
n sachant les n+1 points : ( x0, f(x0) ), ( x1, f(x1) ), . . . , ( xn, f(xn) ) consiste à résoudre le
problème suivant :
Trouver un polynôme P de degré ≤ n tel que : yi=P(xi) = f(xi), 0 ≤ i ≤ n.
Ce polynôme est donnée par :

Pj est un polynôme qui passe par le point (xj, f(xj)) et qui s’annule dans tous les autres points,
et on peut le calculer par :

Construction du polynôme d'interpolation de Lagrange

Supposons que le polynôme d'interpolation est donné par :

Afin que ce dernier passe par l'ensemble des points à interpoler, il faut que les coefficients
a0…an respectent le système d’équation linéaire suivant :

Donc pour trouver la formule du polynôme P il suffit de résoudre ce système d’équation.

1
function P = lagrange(X,Y)

N = length(X)‐1;

A = ones(N+1,N+1);
for i=1:N+1
for j=1:N
A(i,j) = X(i)^(N+1‐j);
end
end
P = A\Y';

>> x = [‐3,‐2,‐1,0,1,2, 3];


>> y = [‐1, 1, 3,7,2,0,‐2];
>> P = lagrange(x,y)
P =
‐0.1028
‐0.0083
1.4722
0.1250
‐5.8694
‐0.6167
7.0000

>> a = ‐3.2:0.2:3.2;
>> b = polyval(P, a);
>> plot(a,b,x,y,'o')

On aurait pu faire le même travail en utilisant la fonction Matlab polyfit comme suit :
>> x = [‐3,‐2,‐1,0,1,2, 3];
>> y = [‐1, 1, 3,7,2,0,‐2];
>> P = polyfit(x,y,6)
P =
‐0.1028 ‐0.0083 1.4722 0.1250 ‐5.8694 ‐0.6167 7.0000

>> a = ‐3.2:0.2:3.2;
>> b = polyval(P, a);
>> plot(a,b,x,y,'o')

2
Pour programmer une fonction Matlab qui permet l’évaluation du polynôme mais sans
donner son expression (les coefficients) on peut utiliser le code suivant :

function y = lagrangeEval(x,PX,PY)

N = length(PX);

y = 0;
for j=1:N
prod = 1;
for k = [1:j‐1,j+1:N]
prod = prod*(x‐PX(k))/(PX(j)‐PX(k));
end
y = y + PY(j)*prod;
end

>> x = [‐3,‐2,‐1,0,1,2, 3];


>> y = [‐1, 1, 3,7,2,0,‐2];
>> lagrangeEval(5,x,y)
ans =
‐839.0000

Pour vérifier si le résultat est correct, on utilise la fonction Matlab polyval comme suit :

>> P = polyfit(x,y,6);
>> polyval(P,5)
ans =
‐839.0000

Vous aimerez peut-être aussi