Vous êtes sur la page 1sur 4

TP 3 : Interpolation et Approximation

Exercice 1 : Interpolation de Lagrange


1- En utilisant la matrice de Vandermonde, trouvez les polynômes de Lagrange ainsi que le polynôme
d’interpolation de Lagrange qui passe par les points ci-dessous. Tracez les polynômes de Lagrange sur
la figure.1 et le polynôme d’interpolation de Lagrange sur la figure.2.
𝑥 0 1 2 3 4 5
𝑦 -1 1 0 -2 -3 5

Notez que : [𝑉𝑎𝑛]{𝑁𝑖} = {𝑏𝑎𝑠𝑒} et que : 𝐿(𝑥) = ∑ 𝑁𝑖 𝑦𝑖 = {𝑁𝑖}𝑇 {𝑦𝑖 }


%%%%%======================================================================
% Polynomes de Lagrange
%%%%%======================================================================
clear
clc
close all % Fermer toutes figures ouvertes
%1- Donnees initiales
x = 0:5;
y = [-1 1 0 -2 -3 5];

%2- Matrice de Vandermonde


van = [x.^0; x.^1; x.^2; x.^3; x.^4; x.^5];

%3- Coefficients des polynomes caracteristiques et du p. de Lagrange


Ni = inv(van);
La = van'\y';

%4- Construction des fonctions

N1 = @(x) Ni(1,1) + Ni(1,2)*x + Ni(1,3)*x.^2 + Ni(1,4)*x.^3 + Ni(1,5)*x.^4


+ Ni(1,6)*x.^5;
N2 = @(x) Ni(2,1) + Ni(2,2)*x + Ni(2,3)*x.^2 + Ni(2,4)*x.^3 + Ni(2,5)*x.^4
+ Ni(2,6)*x.^5;
N3 = @(x) Ni(3,1) + Ni(3,2)*x + Ni(3,3)*x.^2 + Ni(3,4)*x.^3 + Ni(3,5)*x.^4
+ Ni(3,6)*x.^5;
N4 = @(x) Ni(4,1) + Ni(4,2)*x + Ni(4,3)*x.^2 + Ni(4,4)*x.^3 + Ni(4,5)*x.^4
+ Ni(4,6)*x.^5;
N5 = @(x) Ni(5,1) + Ni(5,2)*x + Ni(5,3)*x.^2 + Ni(5,4)*x.^3 + Ni(5,5)*x.^4
+ Ni(5,6)*x.^5;
N6 = @(x) Ni(6,1) + Ni(6,2)*x + Ni(6,3)*x.^2 + Ni(6,4)*x.^3 + Ni(6,5)*x.^4
+ Ni(6,6)*x.^5;

L = @(x) La(1) + La(2)*x + La(3)*x.^2 + La(4)*x.^3 + La(5)*x.^4 +


La(6)*x.^5;

%% 5- Intervalle de traçage
xg = -1:.02:6;

%6- Tracees des polys carateristiques de Lagrange

1 2022/2023 Pr O. Bourihane
figure(1)

hold on
plot(xg,N1(xg))
plot(xg,N2(xg))
plot(xg,N3(xg))
plot(xg,N4(xg))
plot(xg,N5(xg))
plot(xg,N6(xg))
hold off
title('Plynomes caracteristiques de Lagrange')
xlabel('x')
ylabel('N(x)')
legend('N1','N2','N3','N4','N5','N6')
axis([-1 6 -2 2])
grid on

%7- Tracees du poly d'interpolation de Lagrange


figure(2)
hold on
plot(xg,L(xg),'b')
plot(x,y,'ro')
hold off
title('Plynome d''interpolation de Lagrange')
xlabel('x')
ylabel('L(x)')
axis([-1 6 -10 10])
grid on

Exercice 2 :
1. Ecrire cette foi une fonction «polyCaraLagrange» qui reçoit les coordonnées 𝑋𝑖 et renvoie les coefficients
des polynômes caractéristiques de Lagrange.
2. Ecrire aussi une fonction « P _Lagrange » qui reçoit les coordonnées 𝑋𝑖 ainsi que les images 𝑌𝑖 et renvoie
les coefficients du polynôme de Lagrange.
3. Testez les fonctions sur un exemple de votre choix
%%%%%======================================================================
% Poly cara Lagrange
%%%%%======================================================================
function N = polyCaraLagrange(x)
%P_cara_lagrange
n= length(x);
van = ones(n);
for j = 1 : n
van(j,:)=x.^(j-1);
end
N = inv(van);
end

%%%%%======================================================================
% P_Lagrange
%%%%%======================================================================
function P = polyLagrange(x,y)

2 2022/2023 Pr O. Bourihane
%Polynome de Lagrange
y = y(:); % Vecteur colone
n= length(x);
van = ones(n);
for j = 1 : n
van(j,:)=x.^(j-1);
end
P = van' \ y;
End

Exercice 3 : Approximation aux sens des moindres carrés


Sur le tableau ci-dessous, on représente les résultats discrets d’une étude expérimentale, où 𝑔: 𝑥𝑖 → 𝑦𝑖
représente une loi physique. On souhaite approximer la fonction 𝑔(𝑥) = 𝑎𝑥 par la méthode des moindres
carrés.
𝑥 0.5 1 2 2.5 3 4
𝑦 0.4 1.2 2.1 2.3 3.2 4.3

1. Tracez l’erreur global des polynômes 𝑔(𝑥) = 𝑎𝑥 en fonction de 𝑎 ∈ [0.5 1.5]. Commentez !
2. Trouvez la valeur optimal de 𝑎 en utilisant la méthode des moindres carrés
3. Tracez la courbe de la droite superposée au nuage des points initiaux.

%%%%%======================================================================
% Least Squares Methode
%%%%%======================================================================
clear
clc
close all % Fermer toutes figures ouvertes

%1- Donnees initiales


x = [0.5 1 2 2.5 3];
y = [0.4 1.2 2.1 2.3 3.2];

% 2- Trace d erreur global au carre


i = 0;
for a=0.5:0.02:1.5
i = i + 1;
E(i) = sum((a*x-y).^2);
end
plot(0.5:0.02:1.5,E)
title('Erreur global au carre')
xlabel('Pente a')
ylabel('Carre de l erreur')
grid on

%3- Methode LS
A = [x.^0; x]; A = A';
ls = A'*A\A'*y(:);

3 2022/2023 Pr O. Bourihane
%4- Polynome
pLs = @(x) ls(2)*x; % Nottez que g(x) = ax, on peux omettre alors le b

%5- Traçage
xg = 0:0.02:4;
figure(2)
hold on
plot(x,y,'r*')
plot(xg,pLs(xg),'b-')
title('Polynome de regression lineaire')
xlabel('x')
ylabel('y(x)')
grid on

Exercice 4 : Homework
A l’aide de la matrice de Vandermonde, trouvez les polynômes de Lagrange : 𝑁𝑖 (𝑥, 𝑦) relatives aux données ci-
dessous ainsi que le polynôme de Lagrange et tracez la surface 𝐿(𝑥, 𝑦) sur l’intervalle [−1 1] × [−1 1] :
𝑥 −1 1 1 −1
𝑦 −1 −1 1 1
𝑧 sin(𝑥) sin(𝑦)

4 2022/2023 Pr O. Bourihane

Vous aimerez peut-être aussi