0% ont trouvé ce document utile (0 vote)
14 vues4 pages

TP2 Interpolation

Ce document présente un TP sur l'interpolation polynomiale, abordant trois méthodes : Lagrange, Newton et les splines. Il inclut des programmes MATLAB pour calculer et tracer les polynômes d'interpolation et les splines cubiques à partir de données fournies. L'exercice final propose de déterminer des polynômes d'interpolation et d'utiliser les méthodes présentées pour évaluer des points spécifiques.

Transféré par

majabal44
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)
14 vues4 pages

TP2 Interpolation

Ce document présente un TP sur l'interpolation polynomiale, abordant trois méthodes : Lagrange, Newton et les splines. Il inclut des programmes MATLAB pour calculer et tracer les polynômes d'interpolation et les splines cubiques à partir de données fournies. L'exercice final propose de déterminer des polynômes d'interpolation et d'utiliser les méthodes présentées pour évaluer des points spécifiques.

Transféré par

majabal44
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

TP2 : Interpolation

Le présent TP a pour objectif de comprendre le principe de l’interpolation polynomiale. En


particulier les trois méthodes d’interpolation : Lagrange, Newton et les splines.

1- Interpolation de Lagrange

Programme 1 :
clc; clear; close all;
x_nodes = [0,1, 2, 3, 5]; % Abscisses des points
y_nodes = [1, 2, 9, 28, 54]; % Ordonnées des points
n = length(x_nodes); % Nombre de points
syms x; % Variable symbolique
% Calcul de chaque polynôme élémentaire de Lagrange
for i = 1:n
L_i = 1; % Initialisation de L_i(x)
for j = 1:n
if j ~= i
L_i =L_i*(x - x_nodes(j)) / (x_nodes(i) - x_nodes(j));
end
end
L(i) = L_i; % Stockage du polynôme de Lagrange L_i(x)
end
P = 0;
for i = 1:n
P = P + y_nodes(i) * L(i);
end
disp('Le polynome d''interpolaion est :' );
simplify(P)
fplot(P, [min(x_nodes)-1, max(x_nodes)+1], 'b'); % Tracé de P(x)
hold on;
plot(x_nodes, y_nodes, 'ro'); % Points
grid on;
xlabel('x'); ylabel('y'); title('Interpolation de Lagrange');
legend('Polynôme d''interpolation P(x)', 'Points d''interpolation');
2- Interpolation préprogrammée dans Matlab

Programme 2 :
clear all; clc; close all;
x_node = [0, 1, 2, 3]; % Données d'interpolation
y_node = [1, 2, 9, 28];
n = length(x_node) - 1;
p = polyfit(x_node, y_node, n); % coefficients du polynôme d'interpolation
syms x; % Déclare la variable symbolique 'x'
Poly = 0; % Initialisation du polynôme
% Construction du polynôme en ajoutant chaque terme
for i = 1:n+1
deg = n - (i - 1); % Degré du terme (n, n-1, ..., 0)
% Condition pour ignorer les petits coefficients
if abs(p(i)) < 1e-5
p(i) = 0; % Mettre à zéro si le coefficient est très petit
end
Poly = Poly + p(i) * x^deg; % Ajout du terme avec la bonne puissance
end
% Affichage du polynôme
disp('Équation du polynôme :');
Poly
3- Splines cubiques

Programme 3 :
clc; clear; close all;
% Données
x = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45];
y = [55, 60, 58, 54, 55, 60, 54, 57, 52, 49];
% Calcul des coefficients de la spline cubique
pp = spline(x, y); % Fonction de spline cubique
coeffs = [Link]; % Coefficients des polynômes par morceaux
% Points pour interpolation
xx = linspace(min(x), max(x), 200);
yy = ppval(pp, xx);
% Tracé du graphe
plot(x, y, 'ro', 'MarkerFaceColor', 'r', 'DisplayName', 'Points Donnés'); hold on;
plot(xx, yy, 'b-', 'LineWidth', 1.5, 'DisplayName', 'Spline Cubique Naturelle');
% Affichage des polynômes sur la courbe
for i = 1:length(x)-1
% Récupération des coefficients pour l'intervalle [x(i), x(i+1)]
a = coeffs(i,1); b = coeffs(i,2); c = coeffs(i,3); d = coeffs(i,4);
% Création d'une chaîne de caractères pour afficher l'équation
equation = sprintf('S_%d(x) = %.3fx^3 + %.3fx^2 + %.3fx + %.3f', i-1, a, b, c, d);
% Position pour afficher l'équation (milieu de l'intervalle)
x_mid = (x(i) + x(i+1)) / 2;
y_mid = ppval(pp, x_mid);
% Affichage sur le graphe
text(x_mid, y_mid, equation, 'FontSize', 8, 'Color', 'k', 'BackgroundColor', 'w');
end
legend;
title('Interpolation par Splines Cubiques');
xlabel('x'); ylabel('y'); grid on;
Exercice
Soient les points suivants
𝒙 0 5 10 15 20 25 30 35 40 45 50 55
𝒚 = 𝒇(𝒙) 55 60 58 54 55 60 54 57 52 49 55 53

1/ Quel est le degré du polynôme ℘𝑛 (𝑥) qui passe par tous les points du tableau ?
2/ En utilisant la méthode de Lagrange
a- Calculer les polynômes élémentaires de Lagrange ℒ𝑖 (𝑥).
b- Déterminer le polynôme ℘𝑛 (𝑥).
c- Tracer la courbe qui inclue les points du tableau et le polynôme ℘𝑛 (𝑥).
d- Déduire 𝑓(2) et 𝑓(53).
3/ Utiliser la fonction préprogrammée « polyfit » pour déterminer le polynôme d’interpolation.
a- Déterminer le polynôme d’interpolation.
b- Tracer la courbe qui inclue les points du tableau et le polynôme d’interpolation.
c- Déduire 𝑓(2) et 𝑓(53).
4/ Utiliser la fonction préprogrammée « spline » pour déterminer les splines cubiques qui
passent les points du tableau.
a- Déterminer tous les polynômes cubiques donnés par les splines.
b- Représenter graphiquement les splines cubiques et les points du tableau.
e- Déduire 𝑓(2) et 𝑓(53).

Vous aimerez peut-être aussi