Vous êtes sur la page 1sur 14

COMPTE RENDU

TP ANALYSE NUMERIQUE
COMPTE RENDU

NOM ET PRENOM: DJEFKI ALEXIS

GROUPE 1
GE/GM

Introduction
Matlab (abréviation de "Matrix Laboratory"), est un environnement informatique conçu
pour le calcul matriciel. L'élément de base est une matrice dont la dimension n'a pas à être
fixée. Matlab est un outil puissant qui permet la résolution de nombreux problèmes en
beaucoup moins de temps qu'il n'en faudrait pour les formuler en C ou en Pascal.
S'il est parfaitement adapté à l'Automatique et au Traitement du Signal, sa facilité d'emploi
avec des nombres complexes et ses possibilités d'affichages graphiques en font un outil
intéressant pour bien d'autres types d'applications. De plus, des " toolboxes " (boîtes à outils)
sont disponibles dans de nombreux domaines (traitement du signal, traitement d'image,
optimisation, contrôle ...).
Fonctionnement
 Mode interactif :

 Les instructions sont exécutées au fur et à mesure qu’elles sont entrées par
l’utilisateur

 Mode programme :

 MATLAB exécute, ligne par ligne, les instructions d’un fichier .m

 Type de variables :

 unique : la matrice

1
COMPTE RENDU

SERIE N° 1 DE TP
But
Le but de ce TP est le traçage des courbes et les calculs des matrices
EXERCICE 1
1) Représentons les trois fonctions dans une même figure sur l’intervalle [0,1]

h=1/10;
x=0:h:1;
f1(x)=sin(x).*sqrt(x+1);
Polt(x,f1);
f2(x)=exp(x).+X.^2;
plot(x,f2);
f3(x)=1./1+abs(x);
plot(x,f3);

2) Représentons les trois fonctions dans des figures séparé sur sur l’intervalle [0,1] mais
ressembler ces figures dans une seule fenêtre en utilisant la commande subplot
hold on
suplot(2,2,1),plot(x,f1);
suplot(2,2,2),plot(x,f2);
suplot(2,2,3),plot(x,f3);
hold off

EXERCICE 2
1) Le programme qui génère le plus grand de trois nombre
Function m=max(t)
m=t(1);
for i=1:length(t)
if (t(i)>=m)
m=t(i);
end
end
disp(‘le maximum est :’,m);
end

2
COMPTE RENDU

2) Un programme qui génère la parité d’un nombre


function pariter(m)
if (mod(2,m)==0)
disp(‘le nombre est paire’);
else
disp(‘le nombre n’est pas paire’);
end
end

EXERCICE 3

1) Programme qui génère le résultat des sommations en utilisant les boucles for et while

function s=somme function s=somme function s=somme function s=somme


s=0; s=0; s=0; s=0;
for i=1:100 i=1; for i=1:100 i=1;
s=s+i; while(i<=100) s=s+2*sin(i); while(i<=100)
end s=s+i; end s=s+2*sin(i);
s; i=i+1; s; i=i+1;
end end end end
s; s;
end end

2) Programme qui génère toutes les nombres pairs entre 60 et 100


function pariter
for i=60:100
if(mod(i,2)==0)
disp(i);
end
end

3
COMPTE RENDU

EXERCICE 4
1) Programme mathlab qui génère toutes les termes de la suite jusqu’à
|Un+1-Un|< 10-3

function V=terme(U0)
V=[U0];
U1+1/2^U0+1/5;
e=1;
while(e>10^-3)
U0=U1;
U1=1/2*U0+1/5;
e=abs(U1-U0);
V=[V,U0]
end
V;
End

EXERCICE 5
1) APPLIQUONS LES RESULTATS

U=[1 -4 -1 1;1 7 1 -2;1 4 -1 2;3 -10 -25]


B=U(2:3,2:-1:1)
B1=U(2:3,1:2)
B2=U(2:4,3:4)
U1=triu(U)
A=eye(U)-U*U

2) utilisons les commandes qui calculent l’inverse, le déterminant, le rang, les valeurs
propres et les vecteurs propres de A

A1=inv(U);
Det(U);
Rang=rank(U)
[V,D]=eig(U)

4
COMPTE RENDU

SERIE N° 2 DE TP
L’interpolation polynomiale
But :
L’interpolation polynomiale est une technique d’interpolation d’un ensemble de données ou
d’une fonction par un polynôme.

1 méthode de Hörner

EXERCICE 1
1) Le nombre d’opération à effectuer par la méthode classique est de : (n+3)*n/2
2) Le nombre d’opération à effectuer par la méthode de est Hörner de :
3) La méthode de Hörner est plus rapide que la méthode classique.

EXERCICE 2
1 Ecrivons une fonction Evaluation en Matlab qui prend comme argument un vecteur a et un
scalaire z, qui renvoie une valeur de la forme initial.

function s=Evaluation(a,z)

S=0;
For i=1:lenth(a)
S=S+a(i)z^(i-1);
End
S;
End

2 Ecrivons une fonction valeur-horner en Matlab qui prend comme un polynôme P (par
exemple ses coefficients sous forme d’un vecteur) et a et qui retourne s
function s=valeur-honer(a,x)
n=length(a);
s=a(n);
for i=n-1:-1:1
s=s*x+a(i);
end
s;
3 end
méthode de VANDERMONDE

5
COMPTE RENDU

EXERCICE 3
1 Ecrivons une fonction de Vandermonde en Mathlab

function[V,a]=vandermonde(x,y)
n=length(x);
V=[];
for i=1:n
for j=1:n
V(i,j)=x(i)^(j-1)
end
end
a=inv(V)*y;
end

4 Interpolation de Lagrange
EXERCICE 4
1 Ecrivons la fonction de Lagrange en Mathlab

function L=Lagrange(X,x)
n=length(X);
L=[];
for i=1:n
l=1;
for j=1:n
if(i~=j)
l=l*((x-x(j))/(x(i)-x(j)));
end
L(i)=l;
end
L;
end

2 Ecrivons la fonction Interpole1 en Mathlab

function P=Interpole1(X,Y,x)
n=length(X);
L=[];
P=[];
L=Lagrange(X,x);
P=L*Y;
P;
end

6
COMPTE RENDU

3 Ecrivons la fonction Interpole2 en Mathlab

function Pe=Interpole2(a,b,n1,n2)
h2=(b-a)/(n1+1);
h1=(b-a)/(n2+1);
X1=a:h1:b;
X2=A:h2:b;
Y=exp(X1);
for i=1:length(X1)
l=1;
Pe(i)=Interpole1(X1,Y,X2(i));
end
Pe;
end

7
COMPTE RENDU

SERIE N° 3 DE TP
But

Le but de ce TP est d’abord quelques méthodes d’intégrations numériques permettant de


calculer des valeurs approchées d’intégrales.

1 Méthode des rectangles


Ecrivons la fonction Rectangle en Mathlab

Fonction Rectangle a gauche


function y=f(x) function s=rectangleg(x1,x2)
y=exp(x); s=(x2-x1)*f(x1);
end end

Rectangle a droite
Rectangle point milieu
function s=rectangled(x1,x2)
function s=(x2-x1)*f(x2);
s=rectanglepm(x1,x2) end
s=(x2-x1)*f((x1+x2)/2);
end

2 Méthode des trapèzes


Ecrivons la fonction trapèze en Mathlab

Trapèze
function s=trapeze(x1,x2)
s=((x2-x1)*(f(x1)+f(x1)))/2;
end

3 Méthode des Simpson


Ecrivons la fonction Simpson en Mathlab

Simpson
function s=simpson(x1,x2)
s=((x2-x1)/6)*((f(x1)+4*
f((x1+x2)/2))+f(x2));
end

8
COMPTE RENDU

4 Méthode des composites


Ecrivons la fonction des composites en Mathlab

Rectangle composite
Trapèze composite
function
s=rectanglecomposite(x1,x2,n) function
h=(x2-x1)/n; s=trapezecomposite(x1,x2,n)
x=[x1:h:x2]; h=(x2-x1)/n;
s=0; x=[x1:h:x2];
for i=1:length(x)-1 s=0;
for i=1:length(x)-1
s=s+rectanglepm(x(i),x(i+1)); s=s+trapeze(x(i),x(i+1));
end end
end end

Simpson composite
Fonction
function
s=simpsoncomposite(x1,x2,n) function y=f(x)
h=(x2-x1)/n; y=sin(x);
x=[x1:h:x2]; end
s=0;
for i=1:length(x)-1
s=s+simpson(x(i),x(i+1));
end
end

Conclusion

9
COMPTE RENDU

SERIE N° 4 DE TP
But
Le but de ce TP est consacré au problème suivant: étant donnée une fonction f:[a, b] nous
cherchons les réels x dans [a, b] satisfaisant f(x)=0.

1 Méthode de dichotomie
Ecrivons la fonction de dichotomie en Mathlab

dichotomie fonction
function function y=f(x)
[s,n]=dichotomie(a,b,eps,nmax) y=exp(x)-1+x;
n=1; end
while(abs(b-a)>=eps && n<nmax)
m=(a+b)/2;
if(f(a)*f(b)<=0)
b=m;
else
a=m;
end
n=n+1;
end
s=m;
end

2 Méthode de Newton
Ecrivons la fonction de dichotomie en Mathlab

Newton fonction
function [s,n]=newton(x0,eps,nmax) function y=f(x)
n=1; y=exp(x)-1+x;
x=x0+(f(x0)/Df(x0)); end
while(abs(x-x0)>=eps && n<nmax)
x0=x;
x=x0-(f(x0)/Df(x0));
n=n+1; Dfonction
end
s=x; function y=Df(x)
end y=exp(x)+1;
end

10
COMPTE RENDU

3 Méthode de la secante
Ecrivons la fonction de la secante en Mathlab

secante
fonction
function [s,n]=secante(x0,x1,eps,nmax)
n=1; function y=f(x)
x=x1-((f(x1)*(x1-x0))/(f(x1)-f(x0))); y=exp(x)-1+x;
while(abs(x-x1)>=eps && n<nmax) end
x0=x1;
x1=x;
x=x1-((f(x1)*(x1-x0))/(f(x1)-f(x0)));
n=n+1;
end
s=x;
end

11
COMPTE RENDU

SERIE N° 5 DE TP
But
Le but de ce tp et l’étude de quelques méthodes directes permettant de résoudre le système
Ax=b

1 Méthode de Gauss
Ecrivons la fonction de Gauss en Mathlab
Gauss
function x=Gauss(A,b)
U=[A b];
n=size(U,1);
x=zeros(n,1);
for k=1:n-1
for i=k+1:n
w=U(i,k)/U(k,k);
for j=k:n+1
U(i,j)=U(i,j)-w*U(k,j);
end
end
end

x(n)=U(n,n+1)/U(n,n);

for i=n-1:-1:1
s=0;
for j=i+1:n
s=s+U(i,j)*x(j);
end
x(i)=(U(i,n+1)-s)/U(i,i);
end
x;
end

12
COMPTE RENDU

2 Méthode de LU
Ecrivons la fonction DLU en Mathlab

DLU
function [L,U]=DLU(A)
n=size(A,1);
L=eye(n,n);
U=zeros(n,n);
U(1,1:n)=A(1,1:n);
L(2:n,1)=A(2:n,1)/U(1,1);
for k=2:n
U(k,k:n)=A(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);
L(k+1:n,k)=(A(k+1:n,k)-L(k+1:n,1:k-1)*U(1:k-1,k))/U(k,k);
end
L;
U;
end

Ecrivons la fonction RLU en Mathlab

RLU
function x=RLU(A,b)
L=[];
U=[];
[L,U]=DLU(A);
y=[];
y(1)=b(1);
n=size(A,1);
for i=2:n
s=0;
for k=1:i-1
s=s+L(i,k)*y(k);
end
y(i)=b(i)-s;
end
x=[];
x(n)=y(n)/U(n,n);
for i=n-1:-1:1
s=0;
for j=i+1:n
s=s+U(i,j)*x(j);
end
x(i)=(y(i)-s)/U(i,i);
end
x;
end

13
COMPTE RENDU

FIN DU TP D’ANALYSE NUMERIQUE

14