Ecole Nationale Polytechnique D ´ epartement de G ´ enie M´ ecanique Num´erique

Ecole Nationale Polytechnique D ´ epartement de G ´ enie M´ ecanique Num´erique Analyse MATLAB Compte rendu du TP Etudiante : : LAKHDARI Boutheina 1ere ann´eeG´enieM´ecanique Ann ´ ee 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: 0:2:10 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=1:2: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 ´egrale : I = R a b 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 n 2 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 q √ 0.8565899 3.5527e- 15 • h(x) = 1 + x x ∈[0 ; 4] >> Integfun(@(x) sqrt(1+sqrt(x)), 0 , 4) uploads/Industriel/ tp-matlab.pdf

  • 35
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager