PETITE INTRODUCTION A MATLAB Avertissement 1. Ce document est en cours de rédac
PETITE INTRODUCTION A MATLAB Avertissement 1. Ce document est en cours de rédaction. 2. Il ne vise pas à se substituer à la documentation Matlab ou à un cours. Notamment il n’est fait mention que de certaines des possibilités des différentes commandes Matlab (pour obtenir toutes les possibilités offertes par une commande Matlab, on tapera help nom_commande dans la fenêtre Matlab). 3. Merci de me signaler toute erreur ou imprécision et plus généralement tout commentaire : Stéphane Balac Institut Mathématique de Rennes Université de Rennes 1 Campus de Beaulieu 35042 RENNES cedex balac@maths.univ-rennes1.fr Plan du document Présentation Calcul matriciel Matrices Opérations matricielles Matrices spéciales Fonctions matricielle Manipulation de matrices Systèmes d’équations Programmer sous Matlab Scripts et fonctions Boucles de contrôle Graphisme Quelques fonctions utiles Plus d’informations Index Présentation - généralités Choisissez la fenêtre de commande où vous voulez lancer Matlab. Pour lancer Matlab taper matlab dans cette fenêtre. Un exemple Voici un exemple de session Matlab. Le texte en caractères gras figure les commandes matlab. Notez le prompt Matlab " >> ". % matlab >> A = [ 1 2; 2 1 ] A = 1 2 2 1 >> A*A ans = 5 4 4 5 >> quit 16 flops. % Dans cette session on a défini la matrice 1 2 2 1 et l’on a calculé son carré. La comande pour quitter Matlab est quit. On veuillera dans la mesure du possible à ne pas lancer simultanément plusieurs sessions Matlab. Généralités Dans une session Matlab, il est possible d’obtenir une aide en ligne sur une commande en tapant help nom_commande. Par exemple >> help quit QUIT Terminate MATLAB. QUIT terminates MATLAB. On peut aussi utiliser la commande doc qui donne accès à la documentation en ligne par l’intermédiaire d’une fenêtre MOSAIC. Pour quitter cette documentation, cliquer sur Exit Program dans le menu File de la fenêtre MOSAIC. Si une instruction Matlab est suivie d’un point virgule, le résultat de cette instruction n’est pas affiché. >> A = [ 1 2; 2 1 ]; Pour réafficher le résultat contenu dans une variable, il suffit de de taper le nom de la variable >> A A = 1 2 2 1 Si le résultat n’est pas contenu dans une variable, il peut être rappeler par la commande ans: >> A*A; >> ans ans = 5 4 4 5 Plusieurs instructions Matlab peuvent figurer sur une même ligne. Il faut alors les séparer par une virgule ou par un point virgule. Matlab dispose de plusieurs formats d’affichage des réels. Par défaut le format est le format court à 5 chiffres. Les autres formats sont: format long : format long a 15 chiffres. format short e : format court à 5 chiffres avec notation en virgule flottante. format long e : format long à 5 chiffres avec notation en virgule flottante. >> pi ans = 3.1416 >> format long >> pi ans = 3.14159265358979 >> format short e >> pi^3 ans = 3.1006e+01 Calcul matriciel Matrices Matlab est essentiellement un outil matriciel: les variables sont des tableaux. Pour Matlab, un nombre réel est un tableau 1 x 1. - Pour définir la matrice 1 2 3 4 et la stocker dans la variable a, on peut écrire >> a = [ 1 2; 3 4 ] Les éléments d’une ligne de la matrice peuvent être séparés par des blancs ou bien par une virgule ",". Les lignes quant à elles peuvent être séparées par le point-virgule ";" ou par un retour chariot. Essayez : >> a = [1,2;1,3] >> a = [1 2 3 4] - Un élément d’une matrice est référencé par ses numéros de ligne et de colonne. Ainsi a(2,1) désigne le 1er élément de la 2eme ligne de la matrice a. >> a(2,1) ans = 3 Opérations matricielles L’objet de base sous Matlab étant la matrice, les opérations + (addition), - (soustraction), * (multiplication), ^ (puissance) , sont les opérations matricielles usuelles. Ainsi A*B désigne le produit de la matrice A par la matrice B, A + B désigne la somme de ces deux matrices et A^2 = A * A. >> A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> B = [1 1; 2 2; 3 3] B = 1 1 2 2 3 3 >> A*B ans = 14 14 32 32 Si les dimensions des matrices A et B sont incompatibles avec l’opération matricielle, Matlab renvoi un message d’erreur: >> A+B ??? Error using ==> + Matrix dimensions must agree. Pour obtenir la transposée de la matrice B tapez B’ . >> B’ ans = 1 2 3 1 2 3 En plus des opérations matricielles usuelles, il est possible d’effectuer des opérations entre matrices "élément par élément". Pour cela, il faut faire précéder l’opérateur d’un point ".". Ainsi A.*B est la matrice dont le terme générique est a_ij * b_ij et A.^2 est la matrice dont le terme générique est a_ij * a_ij . >> A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> B=B’ B = 1 2 3 1 2 3 >> A.*B ans = 1 4 9 4 10 18 Matrices spéciales Il existe un certain nombre de matrices prédéfinies sous Matlab. Les plus courantes sont eye (n) : la matrice identité n x n ones (m,n) : la matrice m x n dont tous les éléments valent 1 zeros(m,n) : la matrice m x n dont tous les éléments valent 0 rand(m,n) : une matrice m x n dont les éléments sont générés de manière aléatoire Notez que si m=n, il suffit de spécifier une seule valeur de dimension: ones(n) est la matrice carrée n x n dont tous les éléments valent 1. Pour les matrices magiques et les matrices de Hilbert consulter l’aide en ligne. Fonctions matricielles Il existe de nombreuses fonctions matricielles utilisables sous Matlab. Nous nous contentons d’en donner les plus courantes: det(A) : renvoie le déterminant de la matrice carrée A. eig(A) : renvoie les valeurs propres (eigenvalues) de la matrice carrée A. [V,D] = EIG(A) renvoie une matrice diagonale D formée des valeurs propres de A et une matrice V dont les vecteurs colonnes sont les vecteurs propres correspondant. poly(A) : renvoie les coefficients du polynôme caractéristique associé à la matrice carrée A. Attention à l’ordre dans lequel sont rangés les coefficients: le premier élément du vecteur est le coefficient du monome de plus haut degré. >> A = [1 2 3 ; 4 5 6 ; 7 8 0]; >> p = poly(A) p = 1 -6 -72 -27 inv(A) : renvoie l’inverse de la matrice carrée A. rank(A) : renvoie le rang de la matrice carrée A. norm(A) : renvoie la norme 2 de la matrice A. norm(A,2) : même chose que norm(A) . norm(A,1) : norme 1 de la matrice A = max(sum(abs((A)))). norm(A,inf) : norme infini de la matrice A = max(sum(abs((A’)))). norm(A,’fro’) : norme de Frobenius de la matrice A = sqrt(sum(diag(A’*A))). trace(A) : renvoie la trace de la matrice A. Manipulation de matrices Il existe des commandes Matlab permettant de manipuler facilement des matrices: La commande diag - permet de créer une matrice de diagonale fixée: si v est un vecteur de dimension n, A=diag(v) est la matrice diagonale dont la diagonale est v - permet d’extraire la diagonale d’une matrice: si A est une matrice, v=diag(A) est le vecteur composé des éléments diagonaux de A. >> A=eye(3) A = 1 0 0 0 1 0 0 0 1 >> diag(A) ans = 1 1 1 >> v=[1:3] v = 1 2 3 >> diag(v) ans = 1 0 0 0 2 0 0 0 3 La commande tril - permet d’obtenir la partie triangulaire inférieure (l pour lower) d’une matrice. La commande triu - permet d’obtenir la partie triangulaire supérieure (u pour upper) d’une matrice. >> A = [ 2 1 1 ; -1 2 1 ; -1 -1 2] A = 2 1 1 -1 2 1 -1 -1 2 >> triu(A) ans = 2 1 1 0 2 1 0 0 2 >> tril(A) ans = 2 0 0 -1 2 0 -1 -1 2 Systèmes d’équations Pour résoudre un système linéaire A x = b par la méthode de Gauss, il existe la commande Matlab \ (Backslash). >> A=[1 2 ;3 4]; b=[1 1]’; >> x= A\b x = -1 1 >> A*x ans = 1 1 Programmer sous Matlab Scripts et fonctions Il est possible d’enregistrer une suite d’instructions dans un fichier (appelé un "M-file") et de les faire exécuter par Matlab. Un tel fichier doit avoir une extension de la forme ".m" (d’où le nom M-file). On distingue 2 type de M-file, les fichiers de scripts et les fichiers de fonctions. Script Un script est formé d’une suite d’instructions Matlab. Il est souvent utilisé comme "programme principal" ou comme pour construire des données. Si le script est écrit dans un fichier ayant pour nom nom.m on l’execute dans une session uploads/Industriel/ cours-matlab.pdf
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 05, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.0508MB