0% ont trouvé ce document utile (0 vote)
250 vues18 pages

TP Matlab

Transféré par

Lakhdari Boutheina
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
250 vues18 pages

TP Matlab

Transféré par

Lakhdari Boutheina
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Ecole Nationale Polytechnique

D épartement de G énie M ´ecanique

Analyse Num´erique

Compte rendu du TP MATLAB

Etudiante : 
LAKHDARI Boutheina
:

1ere ann´eeG´enie M´ecanique

Ann ée Universitaire 2021/2022


1 Partie 1

MATLAB

Matrix laboratory est un langage de script ´emul´e par l’environnement Matlab, et qui est utilis´e
a` des fin de calcul num´erique. Il est utilis´e par des milllions d’ing´enieurs pour analyser les donn
´ees, developper des algorithmes et cr´eer des mod`eles.
Dans ce qui suit, nous allons pr´esenter les parties essentielles abord´ees en TP d’analyse num
´erique
.

Initialisation

• Desktop de MATLAB : command window , script , workspace ...

• Les variables : toutes les variables sot consid´er´ees comme des matrices dans
l’nvironnement
MATLAB.

• Les formats : short , long , short e , long e , short E ,short g , long g ...

• les commandes :

– clear : effacer la m´emoire


– clc : effacer la fenetre de commande
– who : lister les variables
– whos : lister les variables et afficher leurs d´etails

• Op´erateurs math´ematiques :

– + - * / : addition , soustractio , multiplication , division


– ˆ: ´el´evation a` la puissance – . : op´eration terme `a terme

• syntaxe :

– ; s´eparateur d’instruction

1
– % introduire un commentaire
– d´ebut : pas : fin g´en´eration de s´equences exp: [Link]

Matrices et vecteurs

• A = [a, b , c ; e , f , g ] : construction d’une matrice, ”,” ou ” ” pour s´eparer les colonnes et ”;”
pour s´eparer les lignes.

• NomDeMatrice (i,j) : acc`es `a un ´el´ement d’une matrice, exp : A(2, 2) = f


• Matrices particuli`eres :

– eye : matrice identit´e


– zeros : matrice dont tout les ´el´ements sont nuls
– ones : matrice unit´e, tout les ´el´ements sont egaux `a 1

• Fonction propres aux matrices/vecteurs

– size : la dimesion de la matrice


– length : longueur d’un vecteur , plus grande dimension pour une matrice
– min,max : le max et le min des ´el´ements
– norm : la norme d’une matrice ou un vecteur
– sum : somme des ´el´ements
– prod : produit des ´el´ements
– diag : extrait la diagonale d’une matrice ou bien cr´ee une matrice diagonale
– trace : trace de la matrice
– ’ : la transpos´ee, exp : A’
– inv ou A−1 : l’inverse d’une matrice
– eig : vecteurs et valeurs propres, exp: [Vecp , Valp ] = eig(A)

Les polynomes

• Repr´esetation : Un polynome de degr´e n est repr´esent´e par un vecteur ligne de taille n+1
dont les composants sont les coefficients de ce polynome par ordre de puissances d
´ecroissantes.
exp : P = [2 , 3 , zeros(3) ,1]

2
• Evaluation d’un polynome : polyval(P, x) tel que x est une valeur ou un vecteur comportant
les valeurs pour lesquelles on souhaite calculer les images.

• roots : pour le calcul des racines d’un polynome

• conv(P1 ,P2) : produit de 2 polynomes

• deconv(P1 , P2) : division de 2 polynomes

• polyder(P, n ) : clacul de la d´eriv´ee d’ordre n du polynome P

• polyint(P,c) : clcule l’integrale de P avec une constantre d’int´egration c

Graphes en 2 D

• La fonction plot : plot(x,y) tel que x est le vecteur des abscisses et y le vecteur image de x

• hold on : pour conserver le graphe pr´ec´edent et le surcharger avec un ouveau graphique


• xlabel(’....’) : titre pour l’axe des x

• ylabel(’....’) : titre pour l’axe des y

• title(’....’) : titre du graphe

• grid on/off : activer/d´esactiver le quadrillage

• grid minor : le quadrillage secondaire

• legend : ins´er´er une l´egende de donn´ees

• plot avec options : plot(x,y,’style1’,color1’,x1, y1 , ’style2’ , ’color2’ )

• subplot(m,n,p) : d´evise la figure en m lignes et n colonnes et le graphe sera traac´e dans la


fenetre p.

Fichiers de commande et fonctions ( M-files )

• cr´eation du fichier .m : edit NomFichier

• Introduire l’ensemble des commandes du script dans l’´editeur et puis enregistrer.

Fonction en MATLAB

function [arguments de sortie] = NomFonction ( arguments d’entree) ´ .


.

3
. corps de la fonction .
.
. end

Il existe plusieurs r`egles qui r´egissent l’´ecriture d’une fonction matlab.

Programmation

• disp , fprintf : affichage

• input : entrer la valeur d’une variable

• for-end : r´ep´eter les commandes n fois

• while ’condition’ end : faire les it´erations tant que la condition est v´erifi´ee

• if , if else if : effectuer des tests

• switch : faire un test sur une variable pour plusieurs cas diff´erents

• break : sortir de la boucle

• return : sortir d’un corps d’une fonction et revenir au programme


2 Partie 2 : Les m´ethodes d’int´egration

Cette partie est consacr´ee aux m´ethodes d’int´egration suivantes :

• La m´ethode des trap`ezes

• La m´ethode de Simpson

• La m´ethode de Romberg

• La m´ethode de Gauss-Legendre

On pr´esentera les scripts de fonction pour chaque m´ethode.

4
2.1 La m´ethode des trap`ezes

function I=trap(f,a,b,n) h=(b-a)/n ; x=a+h:h:b-h;


I=(h/2)*(f(a)+2*sum(f(x))+f(b)); end

2.2 La m´ethode de Simpson

function I=simp(f,a,b,n) h=(b-a)/(2*n); x=a+h:2*h:b-h;


y=a+2*h:2*h:b-2*h;
I=h*(f(a)+f(b)+4*sum(f(x))+2*sum(f(y)))/3; end

2.3 La m´ethode de Romberg

function I=romb(f,a,b,n) for j=1:n h=(b-a)/(2ˆ(j-1));


x=a+h:h:b-h;
R(1,j)=(h/2)*(f(a)+f(b)+2*sum(f(x))); end for i=2:n for j=1:n-i+1
R(i,j)=(4ˆ(i-1)*R(i-1,j+1)-R(i-1,j))/(4ˆ(i-1)-1); end end
I=R(n,1);
2.4 La m´ethode de Gauss-Legendre

On uutilisera 2 fonctions , la premi`ere pour calculer les noeuds xi et les coefficients poids wi , et la
deuxi`eme pour calculer l’int´egrale.

function [ x,w]=gaussXW(n ) syms y;


x=sort(roots(sym2poly(legendreP(n,y))));
b=zeros(n,1); for i=[Link]n b(i)=2/i;
end for i=1:n for
j=1:n
A(i,j)=x(j)ˆ(i-1); end
end
w=A\b ;

function I=gaussn(f,a,b,n)
[ t,w]=gaussXW(n); x=((b-a)*t+
(b+a))/2; I=0; for i=1:n
I=I+(w(i)*f(x(i))); end
I=I*(b-a)/2 ;

5
2.5 Applications des m´ethodes

Nous allons appliquer ces diff´erentes m´ethodes pour le calcul des int´egrales propos´ees tout en
faisant une ´etude quantitative et une autre qualitative

2.5.1 Etude Quantitative

Pour chaque m´ethode de calcul de l’int´egrale d’une ’fonction nous allons varier le n : nombre de
subdivision de l’intervalle d’int´egration et voir la convergence de la m´ethode `a chaque fois en
affichant l’erreur exacte.
Pour cela on introduit la fonction suivante qui permetra de faire cette ´etude pour chaque int
R b
´egrale : I = a f(x)dx.

function Integfun( f,a,b )


F=sym(f); IF=int(F); If = matlabFunction(IF); Iex = If(b) - If(a) ; disp (’ Methode´ des
trapezes’) ` n = [2 ; 4 ; 8 ; 12 ; 16] ;
disp (’ n Ia Iex Errex ’) for i=1:5 fprintf(’%5i %12.7f %12.7f %12.4e \n’ ,
n(i) , trap(f,a,b,n(i)) , Iex , abs(trap(f,a,b,n(i)) - Iex) ) end fprintf(’\n \n \n’) disp (’ Methode´
de Simpson’)
n = [2 ; 4 ; 8 ; 12 ; 16] ;
disp (’ n Ia Iex Errex ’) for i=1:5
fprintf(’%5i %12.7f %12.7f %12.4e \n’ , n(i), simpf(f,a,b,n(i)) , Iex , abs(simpf(f,a,b,n(i)) - Iex) )
end fprintf(’\n \n \n’)
disp (’ Methode´ de Romberg’)
n = [2 ; 4 ; 8 ; 12 ; 16] ;
disp (’ n Ia Iex Errex ’) for i=1:5
fprintf(’%5i %12.7f %12.7f %12.4e \n’ , n(i) , romb(f,a,b,n(i)) ,
Iex , abs(romb(f,a,b,n(i)) - Iex) ) end

fprintf(’\n \n \n’)
disp (’ Methode´ de Gauss-Legendre’)
n = [2 ; 4 ; 8 ; 12 ; 16] ;
disp (’ n Ia Iex Errex ’) for i=1:5
fprintf(’%5i %12.7f %12.7f %12.4e \n’ , n(i) , gaussn(f,a,b,n(i)) , Iex , abs(romb(f,a,b,n(i)) - Iex) )
end end

•f

6
>> Integfun(@(x) sin(x), 0 , pi/2)

Methode´ des trapezes `


n Ia Iex Errex
2 0.9480594 1.0000000 5.1941e-02
4 0.9871158 1.0000000 1.2884e-02
8 0.9967852 1.0000000 3.2148e-03 120.9985717
1.0000000 1.4283e-03
16 0.9991967 1.0000000 8.0332e-04

Methode´ de Simpson
n Ia Iex Errex
2 1.0001346 1.0000000 1.3458e-04
4 1.0000083 1.0000000 8.2955e-06
8 1.0000005 1.0000000 5.1668e-07 121.0000001
1.0000000 1.0200e-07 161.0000000 1.0000000
3.2265e-08

7
Methode´ de Romberg
n Ia Iex Errex
2 1.0022799 1.0000000 2.2799e-03
4 1.0000000 1.0000000 8.1440e-09
8 1.0000000 1.0000000 4.4409e-16
12 1.0000000 1.0000000 1.6653e-15
16 1.0000000 1.0000000 4.4409e-15

Methode´ de Gauss-Legendre
n Ia Iex Errex
2 0.9984726 1.0000000 2.2799e-03
4 1.0000000 1.0000000 8.1440e-09
8 1.0000000 1.0000000 4.4409e-16
12 1.0000000 1.0000000 1.6653e-15
16 1.0000000 1.0000000 4.4409e-15

• g

Integfun(@(x) log(1+x), 0 , pi/2)

Methode´ des trapezes `


n Ia Iex Errex
2 0.8260420 0.8565899 3.0548e-02
4 0.8487973 0.8565899 7.7926e-03
8 0.8546307 0.8565899 1.9592e-03 120.8557182
0.8565899 8.7170e-04
16 0.8560994 0.8565899 4.9052e-04

Methode´ de Simpson
n Ia Iex Errex
2 0.8563824 0.8565899 2.0751e-04
n2
4
8
12
16

8
Errex
4 0.8565752 0.8565899 1.4733e-05
8 0.8565890 0.8565899 9.5776e-07
12 0.8565898 0.8565899 1.9067e-07
16 0.8565899 0.8565899 6.0496e-08

Methode´ de Romberg
Ia Iex Errex
0.8541942 0.8565899 2.3957e-03
0.8565890 0.8565899 9.3352e-07
0.8565899 0.8565899 3.3307e-16
0.8565899 0.8565899 2.1094e-15
0.8565899 0.8565899 3.5527e-15
Methode´ de Gauss-Legendre

n Ia Iex
2 0.8581294 0.8565899 2.3957e-
03
4 0.8565923 0.8565899 9.3352e-
07
8 0.8565899 0.8565899 3.3307e-
16
12 0.8565899 0.8565899 2.1094e-
15
16 0.8565899 0.8565899 3.5527e-
15

q √
• h(x) = 1+ x x ∈ [0 ; 4]

>> Integfun(@(x) sqrt(1+sqrt(x)), 0 , 4)

n2
4
8
12
16

9
Errex
Methode´ des trapezes `
n Ia Iex Errex
2 5.8395988 6.0758959 2.3630e-01
4 5.9869046 6.0758959 8.8991e-02
8 6.0429849 6.0758959 3.2911e-02 126.0576188
6.0758959 1.8277e-02
16 6.0638814 6.0758959 1.2014e-02

Methode´ de Simpson
n Ia Iex Errex
2 6.0360065 6.0758959 3.9889e-02
4 6.0616783 6.0758959 1.4218e-02
8 6.0708470 6.0758959 5.0490e-03
12 6.0731433 6.0758959 2.7526e-03
16 6.0741066 6.0758959 1.7893e-03

Methode´ de Romberg
n Ia Iex Errex
2 5.9647645 6.0758959 1.1113e-01
4 6.0637490 6.0758959 1.2147e-02 8 6.0757066
6.0758959 1.8928e-04
12 6.0758930 6.0758959 2.9588e-06 166.0758959
6.0758959 4.6233e-08

Methode´ de Gauss-Legendre
Ia Iex Errex
6.1032046 6.0758959 1.1113e-01
6.0804544 6.0758959 1.2147e-02
6.0765679 6.0758959 1.8928e-04
6.0761070 6.0758959 2.9588e-06
6.0759876 6.0758959 4.6233e-08
n2
4
8
12
16

10
Errex
• t

>> Integfun(@(x) (2/sqrt(pi))*exp(-x.ˆ2), 0 , 4)


Methode´ des trapezes `
n Ia Iex
2 1.1697133 1.0000000 1.6971e-01
4 1.0001034 1.0000000 1.0340e-04
8 1.0000000 1.0000000 1.7242e-08 121.0000000
1.0000000 8.5147e-09
16 1.0000000 1.0000000 4.9934e-09

Methode´ de Simpson
n Ia Iex Errex
2 0.9435668 1.0000000 5.6433e-02
4 0.9999655 1.0000000 3.4489e-05
8 1.0000000 1.0000000 9.1063e-10 121.0000000
1.0000000 2.1564e-10
16 1.0000000 1.0000000 7.3010e-11

Methode´ de Romberg
n Ia Iex Errex
2 0.8073648 1.0000000 1.9264e-01
4 1.0045362 1.0000000 4.5362e-03
8 1.0000000 1.0000000 1.2412e-13 121.0000000
1.0000000 6.6613e-16
16 1.0000000 1.0000000 1.9096e-14

Methode´ de Gauss-Legendre
n Ia Iex Errex
2 1.1046135 1.0000000 1.9264e-01

n2
4
8
12
16

11
Errex
4 0.9855434 1.0000000 4.5362e-03
8 1.0000045 1.0000000 1.2412e-13 121.0000000
1.0000000 6.6613e-16
16 1.0000000 1.0000000 1.9096e-14

• s

>> Integfun(@(x) 1./(1+x.ˆ2), -1 , 1)


Methode´ des trapezes `
Ia Iex Errex
1.5000000 1.5707963 7.0796e-
02
1.5500000 1.5707963 2.0796e-
02
1.5655882 1.5707963 5.2081e-
03
1.5684815 1.5707963 2.3148e-
03
1.5694942 1.5707963 1.3021e-
03

n2
4
8
12
16

12
Errex
Methode´ de Simpson
n Ia Iex
2 1.5666667 1.5707963 4.1297e-03
4 1.5707843 1.5707963 1.2013e-05
8 1.5707963 1.5707963 7.5566e-08 121.5707963
1.5707963 6.6422e-09
16 1.5707963 1.5707963 1.1825e-09

Methode´ de Romberg
n Ia Iex Errex
2 1.6666667 1.5707963 9.5870e-02
4 1.5712344 1.5707963 4.3803e-04
8 1.5707963 1.5707963 3.6637e-14 121.5707963
1.5707963 3.3307e-15
16 1.5707963 1.5707963 5.7732e-15

Methode´ de Gauss-Legendre
n Ia Iex Errex
2 1.5000000 1.5707963 9.5870e-02
4 1.5686275 1.5707963 4.3803e-04
8 1.5707944 1.5707963 3.6637e-14 121.5707963
1.5707963 3.3307e-15
16 1.5707963 1.5707963 5.7732e-15

2.5.2 Etude Qualitative

Pour une meme fonction et le meme nombre de subdivisions de l’intervalle on calcule l’integrale
avec toutes les m´ethodes vues pr´ec´edemment. On introduit la fonction suivante :

function IntfunEtuQual( f,a,b,n)


F=sym(f); IF=int(F); If = matlabFunction(IF); Iex = If(b) - If(a) ;
M = ["Methode´ des trapezes` " ; " Methode´ de Simpson "; " M´ethode de Romberg Ia = [trap(f,a,b,n)
; simpf(f,a,b,n) ; romb(f,a,b,n) ; gaussn(f,a,b,n)];
disp (’ Methode´ Ia Iex
Errex ’)

13
for i=1:4 fprintf(’%s %12.7f %12.7f %12.4e \n’ , M(i) , Ia(i) , Iex , abs(Ia(i) - Iex) )
end

end On

choisit

n=6

pour

toutes

les

fonctio

ns

• f

IntfunEtuQual(@(x) sin(x), 0 , pi/2, 6)


Methode´ Ia Iex Errex
Methode´ des trapezes` 0.9942819 1.0000000 5.7181e-
03
Methode´ de Simpson 1.0000016 1.0000000 1.6344e-
06
Methode´ de Romberg 1.0000000 1.0000000 5.5511e-
16
Methode´ de Gauss-Legendre 1.0000000 1.0000000 4.6629e-
14
• g

14
IntfunEtuQual(@(x) log(1+x), 0 , pi/2 , 6)
Methode´ Ia Iex Errex
Methode´ des trapezes` 0.8531121 0.8565899 3.4778e-
• h( 03 x) =
Methode´
1+ de Simpson 0.8565869 0.8565899 2.9950e- x x ∈ [0
06
; 4]
Methode´ de Romberg 0.8565899 0.8565899 1.8456e-
11
IntfunEtuQual(@(x) sqrt(1+sqrt(x)), 0 , 4 , 6)
Methode´ de Gauss-Legendre 0.8565899 0.8565899 4.5167e-
Methode´ Ia Iex 09 Errex
Methode´
q √des trapezes` 6.0260722 6.0758959 4.9824e-
02
Methode´ de Simpson 6.0681343 6.0758959 7.7616e-
03
Methode´ de Romberg 6.0743830 6.0758959 1.5129e-
03
Methode´ de Gauss-Legendre 6.0774012 6.0758959 1.5052e-
03
• t

IntfunEtuQual(@(x) (2/sqrt(pi))*exp(-x.ˆ2), 0 , 4 , 6)
Methode´ Ia Iex Errex
Methode´ des trapezes` 1.0000000 1.0000000 2.6719e-
08
Methode´ de Simpson 1.0000000 1.0000000 2.4466e-
09
Methode´ de Romberg 1.0000002 1.0000000 2.5941e-
07
Methode´ de Gauss-Legendre 1.0002585 1.0000000 2.5847e-
04
• s

IntfunEtuQual(@(x) 1./(1+x.ˆ2), -1 , 1 , 6)
Methode´ Ia Iex Errex
Methode´ des trapezes` 1.5615385 1.5707963 9.2579e-
03
Methode´ de Simpson 1.5707959 1.5707963 4.3633e-
07
Methode´ de Romberg 1.5707963 1.5707963 1.0900e-
08
Methode´ de Gauss-Legendre 1.5707317 1.5707963 6.4619e-
05
2.6 Gauss-Legendre pour une it´egrale double

Le script de la fonction :

15
function I=gauss2d(f,a,b,c,d,n,m)
[ t1,w1]=gaussXW(n); [ t2,w2]=gaussXW(m); x=((b-a)*t1+
(b+a))/2; y=((d-c)*t2+(d+c))/2; I=0; for i=1:n for j=1:m
I=I+ w1(i)*w2(j)*f(x(i),y(j)) ; end
end
I = ( b-a)*(d-c)*I/4; end

Remarque : la fonction gaussXW(n) a ´et´e introduite auparavant.

2.6.1 F(x,y) = xy2 x ∈ [2.1;2.5], y ∈ [1.2;1.4] , m = n = 4

I= gauss2d(@(x,y) x*y.ˆ2 , 2.1 , 2.5 , 1.2 , 1.4, 4 , 4 )


I = 0.311573333333333
Iex = (bˆ2 - aˆ2 )*(dˆ3 - cˆ3)/6
Iex =

0.311573333333333

2.6.2 F(x,y) = exp(y − x) x ∈ [0;0.5], y ∈ [0;0.5] , n = 8 , m = 4

I = gauss2d(@(x,y) exp(y-x) , 0 , 0.5 , 0 , 0.5 , 8 , 4 )

I=

0.255251930412206

>> Iex = (exp(0) - exp(-0.5))*(exp(0.5) - exp(0))

Iex =

0.255251930412762

16
3 Commentaires et conclusion

`
A l’aide des diff´erentes m´ethodes d’int´egration num´erique nous avons pu calculer les int´egrales born´ees
des fonctions propos´ees tout en effectuant une ´etude qualitative et quantitative.

• L’´etude quantitative : En faisant varier le n ”nombre de subdivision de l’intervalle” on peut


constater,d’apr`es nos r´esultats, que pour toutes les m´ethodes l’erreur commise diminue ( donc pr
´ecision augmente) avec l’augmentation de n

• L’´etude qualitative : en fixant le n on et pour une meme fonction on compare les r´esultats obtenus
avec les diff´erentes m´ethodes. On peut constater que :

– Pour toutes les fonctions, la m´ethode de Romberg et Gauss-Legendre donnent de tr`es bons r
´esultats
– La m´ethode de trap`ezes a la plus faible pr´ecision (sauf pour la fonction ’t’ ) vu que c’est une m
´ethode simple qui n’efffectue pas beaucoup de calculs.
– la m´ethode de Simpson donne les meilleurs r´esultats pour les fonctions ’s’ et ’t’ puisque la m
´ethode de simpson est bas´ee sur une interpolation polynomiale d’ordre 2 sur chaque intervalle
de subdivision, et ces deux fonction ont un comportement assez similaire a` un polynome d’ordre
2 sur lintervalle d’int´egration.

Remarque : Pour l’´etude qualitative : on a utilis´e une matrice de chaine de caract`eres et la fa¸con
dont elle a ´et´e d´eclar´ee ne marche que pour une version 2017 ou une version plus r´ecente.

17

Vous aimerez peut-être aussi