Vous êtes sur la page 1sur 3

TP 3 : Programmation de la méthode de Lagrange

L'objectif du TP est de programmer l’algorithme de la


méthode de Lagrange pour déterminer les valeurs approchées des
fonctions.

Position du problème :
Soit une fonction connue seulement en (n+1) points de la forme

( , ( )), = 1,2, … , + 1.

Alors peut-on construire une approximation de ( ), et ce pour tout ?

En d'autre termes, si on connait que les points

( , ( )), = 1,2, … , + 1.

d'une fonction , peut-on obtenir une approximation de ( ) pour une valeur de différente
des ?

Remarque : On a commencé les indices par 1 (x_1, x_2,…) parce


que :
Si on utilise x_0, x_1,… Pour l’indice 0 qui est la première

(1ere) position, on écrit avec matlab x(1)et non


x(0)
Pour cette raison, qu’on n’a pas utilisé la même notation que
le cours et pour mieux comprendre le programme concernant les
indices.

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

Le résultat obtenu après exécution est :

la valeur de y a la valeur désirée est

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 :

0.4 0.5 0.7 0.8


( ) ln (0.4) ln(0.5) ln(0.7) ln(0.8)

Programme de la méthode de Lagrange qui permet d’estimer la valeur de ( . )

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

Après exécution du programme, on aura :

la valeur de y a la valeur désirée est

s =

-0.509975702467724

Vous aimerez peut-être aussi