Académique Documents
Professionnel Documents
Culture Documents
Section : A Groupe : 2
L’objectif du TP :
Le but de ces TP est de les implanter dans MATLAB, afin de les comparer et
mieux les appréhender.
Réalisé par : Lyna Karoun
Année universitaire
2022/2023
Le premier TP
L’analyse
L'examen du chapitre "interpolation polynôme" du module d'analyse numérique
révèle deux méthodes importantes, mais ces dernières sont assez longues . Pour
résoudre ce problème et gagner du temps, nous les utilisons dans le programme
MATLAB.
La réalisation
%====Interpolation polynomaile=====
clear ; close all ; clc
disp ( '===== Interpolation polynomaile =====' )
disp ( '* 1. La Methode de Lagrange * ')
disp ( '* 2. La Methode de NEWTON * ')
disp ( '* 3. Pour quitter * ')
disp ( '* Tapez votre commande C entre <1-3> * ')
C= input ('C =') ;
%interval [a,b]=[3.5,3.7]
a=3.50;
b=3.70;
%la fonction f
f = @(x)exp(x);
exacte=f(3.62);%la valeur approchee de f(3.62)
switch C
case 1
disp('-------------------------------------------------------------------
')
disp( ' La Methode de Lagrange ')
disp('-------------------------------------------------------------------
')
disp('Ecrire le degree de polynome 4 ou 10 ')
n=input('le degre de poynome n='); %pour n=4 ou n=10
disp('1/ **Calculer h et xi **')
h=(b-a)/n; %on calcule le h
xi = [a:h:b]; %tout les xi
x=[xi] ;%tout les f(xi) :
k= n+1;
for i = 1:k
yi(i)= [f(x(i))];
end
y=[yi] ;
disp('2/***Remplissage de tableau***')
[x;y] %affichage de tableau
%les formules de l’interpolation de lagrange d’une fonction
%Li(x)=?(x-xj)./(xi-xj) , i&j=1:n i~=j') %les polynomes elementaires
du lagrange
disp('4/***Polynôme d’interpolation de Lagrange et la valeur
approchee***')
interv=1000;
dx=(x(k)-x(1))/interv ;%pour diviser l'axe de x d'une facon
eqivalente
xvar=x(1):dx:x(k);
pol=0;%calcule de Li
for i=1:k
lagr=1;
for j=1:k
if (i~=j)
lagr=(xvar-x(j))./(x(i)-x(j)).*lagr;
end
end
pol=pol+lagr.*y(i);
end
p=n;
coeff=polyfit(xvar,pol,p)
p=[coeff];%on met les coeff du polynome dans un vecteur
%la valeur approche de f(3.62)=p(3.62)
v=polyval(p,3.62);
disp(['la valeur approche de f(3.62) est =',num2str(v)])
%les graphes de la fonction f et de son polynome d interpolation de
lagrange
xp=polyval(p,x);
plot(x,f(x),'r',x,xp,'g')
title('courbe de f(x)=exp(x) et de son polynome de lagrange')
xlabel=('axe des x');
ylabel('axe des y');
legend('la fonction f(x)','le polynome P');
grid on
disp('***la valeur exacte et l''erreur commise***')%calcule de la
valeur exacte de f(3.62)
disp(['la valeur exacte de f(3.62) est =',num2str(exacte)])%l''erreur
commise
erl=exacte-v;
disp(['la valeur de l''erreur commise er(3.62) est =',num2str(erl)])
case 2
disp('************************************************************************')
disp( ' La Methode de NEWTON
')
disp('************************************************************************')%
la formule d''interpolation de newton pour Xi points d''interpolation ;i=0:n')
% p=?ni=1 ?i(?i-1j=1(x-xj))
disp('**Ecrire le degree de polynome 4 ou 10 **')
n=input('le degre de poynome n='); %pour n=4 ou n=10
h=(b-a)/n; %on calcle le h
x= [a:h:b]; %tout les xi
y=[];
d=zeros(n,n);
disp('***2/la table des differences divisees***')
for i=1: length(x)
y(i)=f(x(i));
d(i,1)=f(x(i));
end
for i=2:length(x)
for j=i:length(x)
d(j,i)= (d(j,i-1)-d(j-1,i-1))/(x(j)-x(j-i+1));
end
end
d
disp('4/***la methode de lagrange et l''approximation de f(3.62)***')
interv=1000;
Q=d(n,n);
for k=n-1:-1:1
Q=conv(Q,poly(x(k)));
m=length(Q);
Q(m)=Q(m)+d(k,k);
end
Z=polyval(Q,3.62);
fprintf('l''approximation de f(3.62) est= %f \n',Z)
v=linspace(3.50,3.70);
vQ=polyval(Q,v);
otherwise
disp('erreur')
end
Test
Le deuxième TP
L’analyse
Par l'étude du chapitre Intégration numérique du module d'analyse numérique,
nous découvrons deux méthodes importantes pour les calculs.
Mais il faut beaucoup de temps pour les faire. Afin de remédier à ce problème
et de gagner du temps, ces calculs doivent être appliqués dans le programme
MATLAB.
La réalisation
%========================Integration numerique========================
clear ; close all ; clc
disp ( '========================Integration numerique========================' )
% i interval [a,b]=[0,1]
a=0;
b=1;
% declaration de la fonction f
f=inline('sin(x)*exp(x)');
disp ('***a/la valeur exacte de I***')
% declaration de l'integrale de f dans [a,b]
g=inline('(1/2)*exp(x)*(sin(x)-cos(x))') ;
I=g(b)-g(a) ;
fprintf('la valeur exacte de I dans [a,b] est %f\n\n\n ', I)
La réalisation
%====================== TP3======================
clear ;clear all; clc
%a) Tracer le graphe 𝑦=f(x) sur un intervalle tel qu)il vous permet de localiser
la
%solution de l'équation.
x= linspace(0.65,0.75);
f= inline ('x+2*log(x)');
plot(x,f(x));
title('representation de f(x)');
xlabel('x');
ylabel('y(x)');
legend('f(x)=x+2*ln(x)');
grid on
clear all;
clc;
disp('****** La metohde de dechotomie******')
a=0.65;
b=0.75;
fa=a+2.*log(a);
fb=b+2.*log(b);
k=0;
eps=0.00001;
if fa*fb<0
while (b-a)>eps
k=k+1;
c=(a+b)/2;%
fc=c+2.*log(c);
if fa*fc<0
b=c;
else a=c;
end
fprintf ('%i | %f | %f \n\n' ,k,c,fc)
end
end
fprintf ('>> >la solution de l''equation f(x)=0 est %f \n' , c)
fprintf('le nombre d''iteration est = %i \n' ,k);
%2. Ecrire un autre script, que vous appellerez ≪ pointfixe.m ≫ qui implémente la
méthode du point fixe
%3. Ecrire un autre script, que vous appellerez ≪ Newton.m ≫ qui implémente la
méthode
%de Newton.
clear all;
clc;
disp('****** La metohde de dechotomie******')
a=0.65;
b=0.75;
fa=a+2.*log(a);
fb=b+2.*log(b);
k=0;
eps=0.00001;
if fa*fb<0
while (b-a)>eps
k=k+1;
c=(a+b)/2;%
fc=c+2.*log(c);
if fa*fc<0
b=c;
else a=c;
end
fprintf ('%i | %f | %f \n\n' ,k,c,fc)
end
end
fprintf ('>> >la solution de l''equation f(x)=0 est %f \n' , c)
fprintf('le nombre d''iteration est = %i \n' ,k);
Test
Nom Karoun
Prénom Lyna
Matricule 202033018264
Adresse e-mail karounlyna0064@gmail.com