Académique Documents
Professionnel Documents
Culture Documents
Position du problème :
Soit une fonction connue seulement en (n+1) points de la forme
( , ( )), = 1,2, … , + 1.
( , ( )), = 1,2, … , + 1.
d'une fonction , peut-on obtenir une approximation de ( ) pour une valeur de différente
des ?
Exemple 1:
En relevant tous les 10 secondes la vitesse d'écoulement de l'eau dans une conduite
cylindrique, on a obtenu les résultats reportés dans le tableau suivant :
Temps (t) 0 10 20 30
Vitesse v(t) 2 1.89 1.72 1.44
Travail demandé :
En se basant sur tous les points du tableau, écrire un programme matlab qui permet de
trouver une approximation de la vitesse à
= 15
en utilisant la méthode d'interpolation de Lagrange.
Programme de la méthode
clear all
clc
% déclaration des points d'interpolation
% les abscisses
x=[0, 10, 20, 30];
%les coordonnées
y=[2, 1.89, 1.72, 1.44];
% la taille du vecteur x ou le nombre de points d’interpolation
n=length(x);
% déclaration de la valeur à interpoler
% utiliser une variable autre que x et y
t=15;
% Boucle de calcul
%(on détermine le polynôme de Lagrange mais à la place de x on met la
valeur t=15 (pour cet exemple) pour avoir directement le résultat)
%initialisation de la somme pour le polynôme
s=0.0;
for i=1:n
% Boucle de calcul des coefficients de Lagrange Li(t)
%initialisation du produit
P=1;
for j=1:n
if(i~=j) P=P*(t-x(j))/(x(i)-x(j));
end
end
s=s+y(i)*P;
end
% Affichage de la valeur interpolée
disp('la valeur de y a la valeur désirée est ')
s
s=
1.815625
Exemple 2 : approximation d’une valeur d’une fonction
Soit ( ) = ln ,
Estimer la valeur de ln(0.6) grâce à une interpolation de Lagrange basée sur les point d’appui
donnés dans le tableau suivant :
clear all
clc
% La méthode d’interpolation de Lagrange pour approcher des valeur de
% fonctions
% les points d'interpolation
% les abscisses
x=[0.4, 0.5, 0.7, 0.8];
%les coordonées f(x)
y=[log(0.4), log(0.5), log(0.7), log(0.8)];
%la taille du vecteur x
n=length(x);
% la valeur à interpoler
%utiliser une autre variable que x et y
t=0.6;
% Boucle de calcul du polynôme de Lagrange
s=0.0;
for i=1:n
% Boucle de calcul des coefficients de Lagrange Li(t)
P=1;
for j=1:n
if(i~=j) P=P*(t-x(j))/(x(i)-x(j));
end
end
s=s+y(i)*P;
end
% Affichage de la valeur interpolée
disp('la valeur de y a la valeur désirée est ')
s
s =
-0.509975702467724