Vous êtes sur la page 1sur 8
2 Matrices et opérations de base Matrices et opérations de base Données et manipulations des données dans Matlab Opérations scalaires - Généralités Matlab utilise les symboles standard + - * / * pour addition, la soustraction, la multiplication, la division et I'élévation & la puissance. Par exemple Doxe843*5 Un point-virgule a la fin de instruction supprime 'affichage a Iécran. Plusleurs opérations peuvent étre mises sur une méme ligne si elles sont séparées par une virgule boxed iy=6+x,x2y+7 as Si les Instructions écrites sur une méme ligne sont ts longues, on peut utiliser trois points pour retarder lexécution et oursulvre ces instructions sur la ligne suivante >>pommes=10 ;oranges=25 ;poires=12 ; >>fruits_achetes=pommes+oranges. +poires fruits_achetes= 7 Le symbole € désigne un commentaire, qui ne sera pas exécuté par Matlab oot ceci est un commentaire >oxe2+3«& cei aussi 5 Quand le nom de la variable n'est pas précisé, Matlab utilise le symbole ans comme variable temporaire contenant la réponse la plus récente 35243 5 Matiab propose différentes constantes spéciales ans variable temporaire contenant la réponse la plus récente eps précise la précision décimale ious Unité imaginaire, utilisée pour créer et représenter les nombres complexes Inf infri Nan indique un résultat numérique non defini (Not A Number) pi nombre x Préséance des opérations Puisque plusieurs opérations peuvent étre combinées dans une expression arithmétique, il est important de connaitre ordre dans lequel elles seront effectuées. La préséance dans Matlab est la méme qu'en algébre classique et l'expression se lit toujours de gauche a droite —Préséance ‘Opération T Parenthéses - evaluation de la paire la plus Interne lévation &la puissance 2 3 multiplication et division 4 addition et soustraction 2 = Matrices et opérations de base Manipulation des nombres complexes Matlab reconnait les nombres complexes par l'utlisation de 4 (ou 3) représentant v-1. Les operations entre complexes sont directement effectuées par Matlab dans larithmétique complexe 27 >ecle1-2i pour le complexe (On notera que lopérateur * n'est pas nécessaire entre i et le nombre alors qu'll est nécessaire dans d'autres cas comme poc2e5-iter Cette convention peut provoquer des erreurs si on n'y fait pas attention. Par exemple poyeT/2ei & pour y=(7/2) +i 3.54 peyeT/2i * pour y=7/(2i) “3.81 Le tableau suivant résume les opérations arithmétiques entre deux nombres complexes jpération Résultat _ cca Tartan Flor ba) cree (ar-az) +i(bs-b2) cea (araz-bib2) +1(arbe-aaby) ale ((aa2+biba) +fazby-arba)/(a2?-+b2%) ra fared ot are iby Si une opération est falte entre un réel et un complexe, Matlab considére que la partie imaginaire du nombre réel est nulle De plus, Matlab comprend plusieurs fonctions préprogrammées spécifiques des nombres complexes real (x) retourne la partie réelle d'un complexe imag (x) retourne la partie imaginaire d'un complexe conj (x) retourne le conjugué d'un complexe abs (x) retourne la valeur absolue (magnitude) d'un complexe angle (x) retourne l'angle de a valeur complexe de atanz (imag (x), real (x)), sur—n+m Génération de matrices Sous Matlab, le nom d'une matrice ou d'un vecteur doit commencer par une lettre pouvant étre suivie par nimporte quelle combinalson de lettres ou de chiffres (usqu’a 19 ou 31 caractéres selon les versions), Les lettres peuvent étre majuscules ou minuscules, Matlab faisant la différence entre les deux, Création d'un vecteur de données Pour créer un vecteur ligne, il suffit d'écrire les éléments a lintérieur de crochets en les séparant soit par un espace, soit par tune viegule por=[2,4,10] 2.0000 4.0000 10.0000 >>a=(2 4 10] 2.0000 4.0000 10.0000 pate (2, 4, 10] 2.0000 4.0000 10.0000 Pour créer un vecteur colonne, les éléments doivent @tre séparés par un point-virgule. On peut également créer un vecteur colonne & partir d'un vecteur ligne qui sera transposé a 'aide de 'opérateur ’ sors [2;4;10] 2 = Matrices et opérations de base >osa[2 4 10)’ PAS + Xtina Lal 2.2 213 14 25 26 2.7 18 1.9 2 écrite :X=1:10, cevient 4 cholsit un pas de |. La commande Linspace crée également un vecteur ligne lingairement espacé, mais c'est le nombre d'éléments qui est Par défaut, é précisé et non le pas comme précédemment >>Linspace (5,8,31) & équivalent a [5 :0.1 :8] La commande logspace (a,b, n) crée un vecteur ligne logarithmiquement espacé, oi n est le nombre de points entre 102 {et 10%. Sin n'est pas mentionné, le nombre de points par défaut est 50. Cette notation vectorelle sera trés utile pour calculer ou évaluer des fonctions sous Matlab. Il est alors inutile d'écrire une boucle : une fonction y recevant comme argument le vecteur x de dimension N, retournera un vecteur solution y de dimension N >> xe1:10 ; >> ya2"x ye 2 4 6 8 10 12 14 16 18 20 ‘Le gain sur le temps de calcul devient évident pour des vecteurs ou matrices de grandes dimensions. de mat 2s NN existe plusieurs méthodes pour créer une matrice. La plus simple, adaptée aux petites matrices, consiste a assigner un ‘ensemble de valeurs ala matrice A: p> Ae[1 3 5;1 0 1;5 0 9] 1 3 05 1 o 1 5 0 8 Dans cet exemple, on voit donc que + les matrices sont définies entre crochets {_] et par vecteurs lignes successifs © pour passer au vecteur ligne suivant & autre on utilise le symbole 7 Création de vecteurs et matrices plus complexes ATalde de ces vecteurs ou de ces matrices particuliéres, on peut générer & volonté des matrices plus complexes p> ze[:3 4:2:8 10:0.5:22] 1203 4 6 8 10 10.5 a1 >> Ce[2.3 4.970.9 3.11; >> De[C ones (size(C)) ;eye(size(c)) zeros (size(c))] 2.3 4.1 0.9 3. 2 Matrices et opérations de base ultidimensionnels Ensembles n Un ensemble tridimensionnel ala dimension mxnxg, a quatre dimensions manxgxr, etc... Les deux premiéres dimensions sont les lignes et colonnes comme pour une matrice, les autres dimensions sont les pages. Les éléments d'une matrice sont repérés par deux indices, trois seront nécessaires pour un ensemble ‘ridimensionnel, etc... On peut visualiser un ensemble tridimensionnel comme des couches de matrices: la premigre couche est la page 1, la seconde la page 2, etc. poRe[4 6 1;5 8 073 9 2) peA(2,:,2)2[6 2 9;0 3 1:4 7 5] >>A(z, 2,1) Alzyt)2 4 6 2 Se gol aad 3008 2 Matrices particuliéres Certaines matrices sont fréquemment utilisées et Matlab permet de les générer facilement ones (m,n) rmatrice mn de 2 ones (n) rmatrice men de 2 zeros (m,n) rmatrice mn de 0 eye (n) rmatrice identité nxn rand (m,n) rmatrice men de nombres aléatoires vander mmatrice de Vandermonde pascal (n) triangle de Pascal au dearé n magic (n) carré magique de taille = Si'on veut générer une matrice 3 de 1 de la méme talle qu'une matrice A déja existante, on peut utiliser instruction mes (size (A)) Manipulation des éléments d'une matrice Dans Matlab, les éléments d'une matrice peuvent étre manipulés individuellement ou en bloc. Lignes et colonnes peuvent donc {tre manipulées comme des entités complates. Par défaut, le premier indice de la matrice est. (On assigne un ensemble de valeurs a la matrice A > Ae[2 3.4.5 6;-4 -5 -6 -7 -8;35.791;2 4.68 10 2 3 4 5 6 “4-5 6-7-8 305 7 8 2 2 4 6 8 10 -2 0-2-4 5 +6 3 Ainsi B se compose des éléments des 1#s, 3é* et Sére lignes de la 2¢* colonne de A. >> CeACy, 2) ce ai area toee 305 7 8 2 ea eee ce [Ainsi © se compose des 1, 30 et Sts lignes de A. Llopérateur: indigue tous les éléments de la ligne (sur toutes les colonnes). 10 2 Matrices et opérations de base >> Dezeros (3); >> DU: 2)=A(v,2) D= aio 5 0 0 E30 0 Ici, D est initialement une matrice 3x3 de zéros. Dans la deuxiéme ligne de commande, on a remplacé tous les éléments de la premiére colonne de D par les 1=, 36 et Stme éléments de la 2ém* colonne de A. >> EeA(1:3,4:5) Ee 5 6 “7-8 9 2 Ici, E se compose des éléments des 1#*, 2ée et 38n* lignes de colonnes 4 et 5 de A. Commandes utiles pour la manipulation des ensembles/matrices Matlab propose plusieurs commandes qui permetient de travailler avec les ensembles cat (n,A,B,C,...) erée un nouvel ensemble en réunissant les ensembles A, B, C, etc... surla dimension n find (x) renyoie un ensemble contenant les indices des éléments non nuls de ensemble x [u,v,w]=£ind (A) — renvoie les ensembles u et v contenant les indices de lignes et colonnes des éléments non nls de la matrice A et un ensemble w contenant les valeurs non nulles correspondantes. length (A) renvole le nombre d'éléments de A si A est un vecteur ou la plus grande valeur m ou n si A est tune matrice mn max (A) renvole le plus grand élément de A si A est un vecteur, un vecteur ligne contenant les plus grands Gléments de chaque vecteur colonne si A est une matrice. Si les éléments sont complexes, max (A) renvole les éléments de plus grande magnitude. Loe, k] =max (A) Identique & la précédente commande mais stocke les valeurs maximales dans le vecteur x et leurs Indices dans le vecteur k renvoie le plus grand élément de A si A est un vecteur, un vecteur ligne min(a) Identique & max (A) mais renvoie les valeurs minimales (x, k] =min (A) Identique & x, k] =max (A) mals renvole les valeurs minimales size (a) Fenvole un vecteur ligne (tm n] contenant la tale de ensemble A mx sort (A) trie chaque colonne de ensemble A par ordre croissant et renvoie un ensemble de fa méme taille que sum(A) somme les éléments de chaque colonne de l'ensemble A et renvoie un vecteur ligne contenant les sommes. Opérations sur les matrices Sous Matlab, addition, la soustraction, la multiplication et la division de matrices pewent ére réalisées directement. Pour faire une opération sur les matrices A et B et assign le résultat a la matrice , on écrit © addition CaAeB © soustraction CeA-B © multiplication ASB Multiplication Pour que la multiplication soit valable, ll faut soit que l'une des deux variables soit un scalaire soit que les deux matrices alent tune dimension commune, Dans tous les cas, si la multiplication est incorrecte Matlab indiquera une erreur a 'exécution, p> As[1 2 3;4 5 6;7 8 91; >> Bef 1 1;2 2 2:3 3 31; >> C=AsB. 234 eh 10 11 12 >> C=A-B ce o12 234 456 M1 2 Matrices et opérations de base >> caa¥a 24 6 @ 10 12 14 16 18 >> CeA‘B c= 1414 14 32 32 32 50 50 50 >> CaB*A ce 12 15 18 24 30 36 36 45 54 >> well 21; >> C=ntw 27? Error using Inner matrix dimension must agree oevell 2031; >> Cavin, ce 30 36 42 >> Canty 22? Error using Inner matrix dimension must agree. Dans ce dernier exemple, on voit que Matlab renvoie une erreur concernant la dimension de la matrice A et du vecteur v. En effet, Bien quils solent tous les deux de dimension 3, le calcul revient a multiplier une matrice par un vecteur ligne. Pour que Vropération soit valabe, il faut que le vecteur v soit un vecteur colonne. Pour obtenir la transposée d'un vecteur ou d'une matrice, on utilise Nopérateur * >> C=AtY Sot "équation Ax=b, ol A est une matrice carrée et x et b des vecteurs. Si l'on souhaite résoudre ce systéme, on utilisera Vopérateur Matlab \ : x=A\b. Quand A, x et sont des scalaires, on utilise opérateur de division classique / : x=b/A. Pour indiquer une opération élément par élément, lopérateur doit étre précédé par un point. Par exemple, dans le cas d'une ‘multiplication, chaque élément de la matrice A sera multiplié par I'élément de mémes indices de la matrice B. Si ce point est fomis, Nopération se fera sur la totaité de la matrice ou du vecteur. Pour I'addition et la soustraction, le point n'est pas nécessaire dans la mesure oll ces deux opérations s'effectuent déja, levation & la élément par élément. En revanche, les résultats seront tr&s différents pour la multiplication, la division et I puissance. Les exemples suivants suffiront a expliquer la différence entre les deux notations, >> Ae(2 5 6] (3 sl; 12 2 = Matrices et opérations de base >> Ce 3*A , Da3.4A & multiplication par un scalaire c 6 15 18 D= 6 1s 18 % division par un scalaire >> Ce ASB, “3 multiplication de deux vecteurs lignes "22? Error using ==> * Inner matrix dimensions must agree. (faut écrire: Caa¥B’ — C=49) D: 415 30 % multiplication élément par élément 4 division de deux vecteurs lignes 4% division élément par élément o 0 0 & division gauche de deux vecteurs lignes oo ° 0.333 0.5 0.833 D: 1 0.6 0.833 # division gauche élément par élément >> Ce A‘2 ; DeA.*2 4 élévation a 1a puissance 22? Brror using ==> * Matrix must be square D: 425 36 >> C= ACB ; D=A.“B 22? Error using ==> Inner matrix dimensions must agree De 4125 7776 % élévation & la puissance élément par élément 13

Vous aimerez peut-être aussi