Vous êtes sur la page 1sur 11

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

Ministère de l'Enseignement Supérieur et de la Recherche Scientifique

Université Kasdi Mer bah Ouargla

Faculté des Hydrocarbures, Énergies Renouvelables et Science de la Terre et de l’Univers


Département de production professionnel

TP N°1 :

Polynômes et interpolation

Réalisé par : Sous la poursuite de :

 BEBBA AYOUB Mr. DHOUAK


 LABED ISLAM SALAH EDDINE

GROUP : 05

Année universitaire
2021/2022
I. Introduction :
Matlab est un logiciel interprété (donc sans phase préliminaire de compilation) qui
exécute les opérations demandées séquentiellement, avec possibilité de boucle, test et saut. Il
ne manipule que des données numériques et ne sait effectuer aucun calcul formel à priori.
Ecran de base (présentation pouvant légèrement différer selon version)
L'écran de base comprend l'écran de contrôle Command Windows ainsi que des
fenêtres complémentaires permettant de suivre le fonctionnement général d'une application.
Les instructions frappées (ou collées) dans la Command Windows s'exécutent
directement.

Les commandes peuvent être relancées dans la fenêtre Matlab simplement en


remontant la liste par  et en validant la ligne par Return .
L'exécution d'une ligne provoque automatiquement l'affichage des résultats sous forme
d'une liste de données numériques. Cette fonctionnalité peut être bloquée en mettant un ";" à
la fin de chaque ligne de programme (préférable lorsque le calcul concerne une matrice de
grande dimension).
Programme Matlab
Il est toutefois préférable de construire un programme avec un éditeur de texte (Bloc-
Notes sous Windows, Open Office ou l'éditeur intégré), de le sauver sur disque sous le nom
monappli.m.
Le programme peut être lancé depuis la fenêtre d'édition en appuyant sur le bouton
. D'autres boutons permettent le débogage des programmes avec points d'arrêt et exécution
pas à pas. A noter que Matlab possède toutes les fonctionnalités d'un logiciel moderne de
programmation.
Tout programme enregistré sous l'extension .m peut être lancé depuis la Commande
Windows de Matlab, en frappant son nom (sous réserve que le chemin d'accès au fichier soit
déclaré sous Matlab – voir la commande Set Path du menu Fichiers - .
Aide sur Matlab
Il existe deux types d'aides sur Matlab 6 : l'aide intégrée aux fonctions (existant sur les
précédentes versions) ou l'aide hypertexte.
La commande >> help ou >> help nom-de-fonction permet d'obtenir une aide sur le
logiciel en général, un Toolbox ou une fonction particulière. C'est pourquoi il n'est pas
indispensable de connaître le manuel complet de Matlab pour s'en servir !
L'aide hypertexte est d'une très grande richesse. Elle inclut la description des
fonctions, des exemples, des démonstrations en ligne, des références bibliographiques. L'aide
hypertexte est un véritable cours ! Attention au volume total de la documentation fournie, qui
représente l'équivalent d'une encyclopédie (plus de 30 000 pages en 2003)

II. Objectif :
L’objectif de ce TP est l’implémentation de l’algorithme d’interpolation
polynômiale de Lagrange et Polynôme de newton.

Pour cela, nous réalisons et testons en Matlab cette méthode de Lagrange et


newton qui sert à remplacer des fonctions trop compliquées par des fonctions plus simples.

III. Polynôme de Lagrange :

Le polynôme d’interpolation de Lagrange est l’unique polynôme de degré au plus n


passant par une famille de n + 1 points (xi,yi) de R2, d’abscisses distinctes. Ce polynôme a
pour expression

C’est l’instruction interp qui les calcule en s’appliquant à deux listes contenant
respectivement les abscisses et les ordonnées.

Voir programme :
Program 1 :
clc;clear
syms X
x=[4 6 8 10];
y=[1 3 8 20];
n=size(x,2);
p=0;
for i=1;n
L=1
for j=1:n
if(j~=i)
L=((X-x(j))/(x(i)-x(j)))*L;
end
end
p=p+y(i)*L;
pretty (L)
end
simplify (p)%collect (p)
p=inline(p);
p(5)
Résulta 1 :
n =

4
L =

/ X \ / X \ / X \
- | - - 3 | | - - 2 | | - - 5/3 |
\ 2 / \ 4 / \ 6 /

ans =

-(X/2 - 3)*(X/4 - 2)*(X/6 - 5/3)

ans =
0.3125

Program 2 :
clc
disp('------------lagranges interpolation method-----------------')
syms x
%s=input ('les valeur de x= '); %[-1 2 4 5];
%f=input ('les valeur de y= '); %[-2 43 213 376];
s=[-1 2 4 5];
f=[-2 43 213 376];
n=size(s,2) %length
p=0;
m = size( f ,2);
if (n ~= m)
disp(' ]')
disp( 'erreur lagrange: nomber de coordonnees et le nomber de
valeurs de la fonction doit etre egale')
s=input ('les valeurs de x= '); %[-1 2 4 5];
f=input ('les valeurs de y= '); %[-2 43 213 376];
n=length(s);
end
for i=1:n;
l=1;
for j=1:n;
switch i~=j ,% i est different de j
case 1
l=((x-s(j))/(s(i)-s(j)))*l;
end
end
l
pretty(l)
u=collect(l)
p=l.*f(i)+p;
end
disp(' ]')
disp(' X(i) F(Xi)')
disp(' ]')
for i=1:n;

fprintf('\t%.f\t %.f\n', s(i), f(i));


disp(' ]')
end
p
p=collect (p)
h=inline(p);
u=min(s)-1:0.001:max(s)+1;
%a=input ('donne la valeur de x= ');
a=1.5
plot(s,f,'k-',s,f,'ko',u,h(u),'r-','linewidth',2)
h(a)

Résulta 2:
------------lagranges interpolation method-----------------

n =
4

l =

-(x/3 - 2/3)*(x/5 - 4/5)*(x/6 - 5/6)

/ x \ / x \ / x \
- | - - 2/3 | | - - 4/5 | | - - 5/6 |
\ 3 / \ 5 / \ 6 /

u =

- x^3/90 + (11*x^2)/90 - (19*x)/45 + 4/9

l =

(x/2 - 2)*(x/3 + 1/3)*(x/3 - 5/3)

/ x \ / x \ / x \
| - - 2 | | - + 1/3 | | - - 5/3 |
\ 2 / \ 3 / \ 3 /

u =

x^3/18 - (4*x^2)/9 + (11*x)/18 + 10/9

l =

-(x/2 - 1)*(x/5 + 1/5)*(x - 5)

/ x \ / x \
- | - - 1 | | - + 1/5 | (x - 5)
\ 2 / \ 5 /

u =

- x^3/10 + (3*x^2)/5 - (3*x)/10 - 1

l =

(x/3 - 2/3)*(x/6 + 1/6)*(x - 4)

/ x \ / x \
| - - 2/3 | | - + 1/6 | (x - 4)
\ 3 / \ 6 /

u =

x^3/18 - (5*x^2)/18 + x/9 + 4/9

]
X(i) F(Xi)
]
-1 -2
]
2 43
]
4 213
]
5 376
]

p =

43*(x/2 - 2)*(x/3 + 1/3)*(x/3 - 5/3) + 2*(x/3 - 2/3)*(x/5 - 4/5)*(x/6 - 5/6) -


213*(x/2 - 1)*(x/5 + 1/5)*(x - 5) + 376*(x/3 - 2/3)*(x/6 + 1/6)*(x - 4)

p =

2*x^3 + 4*x^2 + 5*x + 1

a =

1.5000

ans =

24.2500

IV. Polynôme de newton :


On va expérimenter la méthode des différences finies, cas particulier de celle des
différences divisées. Elle s’applique à des points d’abscisses équidistantes et permet de
rajouter des points d’interpolation supplémentaires sans refaire tous les calculs. On définit
l’opérateur aux différences finies par

(∆y)i = yi+1 − yi avec yi = f(a + i.h)


En itérant, on trouve une formule binomiale

Remarque : est un polynôme en n de degré j, qui s’annule en n = 0, 1, ..., j−1, et


qui vaut 1 pour n = j. On a alors, pour une suite de n + 1 points équidistants a, a + h, ..., a +
nh, la formule de Newton donnant le polynôme interpolateur.

Voir programme :
Program 1:
clear; clc;
X=[4 6 8 10];
Y=[1 3 8 20];
syms x
p=Y;
ni=length(x);
n=length(X)-1;
for i=2: (length(p));
p(i:end)=(p(i:end)-p((i-1):(end-1)))./(X(i:end)-X(1:end-i+1));
end
Yi=p(n+1)*ones(1,ni);
for k=1:length(X)-1
Yi=p(n+1-k)+Yi.*(x-X(n+1-k));
end
Yi=collect(Yi)
f=inline(Yi);
f(5)
Résulta 1:

Yi =

x^3/12 - (9*x^2)/8 + (71*x)/12 - 10


ans =

1.8750

Program 2:
clc
clear all
syms x
X=[4 6 8 10];
y=[1 3 8 20];
r=y;
a=size(x,1)
m=size(X,2)-1
for i=2:(size(r,2));
r(i:end)=(r(i:end)-r((i-1):(end-1)))./(X(i:end)-X(1:end-i+1))
end
b= r(m+1)
p = r(m+1)*ones(1,a)
for T = 1 : length(X) - 1
p = r(m+1-T)+p.*(x-X(m+1-T))
end
p=collect(p)
h=inline(p);
u=min(X)-1:0.001:max(X)+1;
plot(X,y,'k-',X,y,'ko',u,h(u),'r-','linewidth',2)
s=h(4.5)

Résulta 2:
a =

m =

r =

1.0000 1.0000 2.5000 6.0000

r =

1.0000 1.0000 0.3750 0.8750

r =
1.0000 1.0000 0.3750 0.0833

b =

0.0833

p =

0.0833

p =

x/12 - 7/24

p =

(x/12 - 7/24)*(x - 6) + 1

p =

((x/12 - 7/24)*(x - 6) + 1)*(x - 4) + 1

p =

x^3/12 - (9*x^2)/8 + (71*x)/12 - 10

s =

1.4375
V. La différence méthode Polynôme de Lagrange et Polynôme de
newton :
En analyse numérique, l'interpolation newtonienne, du nom d'Isaac Newton, est une
méthode d'interpolation polynomiale permettant d'obtenir le polynôme de Lagrange
comme combinaison linéaire de polynômes de la « base newtonienne ».

Contrairement à l'interpolation d'Hermite par exemple, cette méthode ne diffère de


l'interpolation lagrangienne que par la façon dont le polynôme est calculé, le polynôme
d'interpolation qui en résulte est le même. Pour cette raison on parle aussi plutôt de la
forme de Newton du polynôme de Lagrange.

VI. Quelques fonctions utiles :


Nous présentons dans ce paragraphe un ensemble de fonctions

length(v) renvoie la taille du tableau.

max(v) renvoie la valeur maximale du tableau.

min(v) renvoie la valeur minimale du tableau.

« size(M) » renvoie les dimensions de la matrice.

« max(M) » renvoie un vecteur-ligne contenant les valeurs maximales associées à chaque


colonne.

« min(M) » renvoie un vecteur-ligne contenant les valeurs minimales associées à chaque


colonne.

VI. Conclusion :

Vous aimerez peut-être aussi