TP 1 : Prise en Main de Matlab BUT DE TP Ce TP a pour but d'apprendre à utilise

TP 1 : Prise en Main de Matlab BUT DE TP Ce TP a pour but d'apprendre à utiliser le logiciel Matlab, et de manipuler les variables dans l'environnement de travail. Les différents types de visualisation des données en 2D et 3D sont aussi abordés. Enfin l'utilisation de scripts et de fonctions est présentée au travers d'exemples simples. Génération - Manipulation Cette partie fait un tour d'horizon des utilisations courantes des vecteurs et matrices, de la génération à l'indexation. On travaille dans cette partie à partir du prompt de l'espace de travail. Le prompt, dénoté par >>, signifie que vous avez la main et qu'une commande est attendue. Quelques commandes sont utiles, lorsque vous avez oublié quelles sont vos variables ou une commande ...  Les commandes who et whos vous indiquent les tailles et types de vos variables.  La commande help utilisée seule donne une liste et un bref descriptif des sujets contenant une aide,  La commande help nom_fonction donne un descriptif de la fonction sur les arguments nécessaires en entrée ainsi que les résultats donnés. Manipulations des vecteurs et scalaires Scalaires Dans un premier temps on génère trois variables scalaires a,b et c sur lesquelles on va par la suite effectuer quelques opérations. >> a = 2 a = 2 >> b = 3 b = 3 >> c = 4; >> Le caractère `;' sert à supprimer l'écho d'une ligne de commande, c'est-à-dire l'affichage des valeurs prises par les variables dans la ligne de commande. Pour connaître la valeur d'une variable, il suffit donc de taper son nom : >> c c = 4 Il est aussi possible de séparer 2 commandes sur la même ligne à l'aide d'une virgule `,' sans supprimer l'écho ou d'un point virgule `;'. Essayez : NASR KHOIDJA Med Ali 1/12 >> a = 3; b = 2, c = 4; Enfin, si une ligne de commande est trop longue, vous pouvez passer à la ligne suivante en tapant `...' puis ENTREE : >> a = ... 4 a = 4 Vous pouvez alors effectuer des opérations sur vos variables en respectant les règles classiques de priorités : * et / prioritaires devant + et - >> a+b * c ans = 16 >> (a+b) * c ans = 28 >> d = a/b*c, e = (a/b)*c d = 6 e = 6 Comparez alors l'effet des commandes who et whos. Vecteurs Les vecteurs peuvent être générés de manière manuelle ou automatique. Pour la génération manuelle, les délimiteurs sont :  `[' et `]' délimitent le début et la fin du vecteur,  un espace sépare 2 colonnes,  un point virgule `;' à l'intérieur de [ ] sépare 2 lignes. Générez ainsi un vecteur ligne et un vecteur colonne >> vect1 = [ a b c+b/2 ] ??? >> vect2 = [ c; b; a+b+c] ??? La transposition s'effectue à l'aide de l'apostrophe '. Attention, car elle effectue aussi l'opération de conjugaison si le nombre est complexe (c'est la transconjugaison), et la transposition réelle est en fait l'opérateur .'. Essayer >> vect1 + vect2 ??? >> vect1 + vect2' ??? >> (vect2 + i)' ??? >> (vect2 + i).' ??? La génération automatique d'un vecteur se fait de manière linéaire ou logarithmique. De manière linéaire, en définissant une valeur de début, un pas et une valeur de fin, chacun séparé par 2 points ` :'. Par défaut, c'est à dire s'il n'est pas spécifié, le pas vaut 1. Essayez : >> vect3 = 1:10 ??? >> vect4 = 1:-0.5:-1 ??? >> debut = 0; fin = 2*pi; pas = .1; vect5 = debut:pas:fin NASR KHOIDJA Med Ali 2/12 Essayez alors les fonctions linspace et logspace pour générer des vecteurs linéaires ou logarithmique (regardez l'aide sur ces fonctions pour savoir comment les utiliser). Les opérations +,-,*,^ sur les vecteurs se font alors comme pour les matrices et il est en plus possible de faire des opérations terme à terme en ajoutant un point devant l'opérateur (.* , ./ ,.^ , ...). Les principales règles sont rappelées  L'addition/soustraction de matrices est possible si et seulement si les matrices sont de même taille.  La multiplication de deux matrices est possible si et seulement si ces matrices ont une taille en commun. ) M , (N ) M , (N 2 2 1 1 B * A existe si 2 1 N M  . Le produit est alors effectué dans l'ordre classique ligne - colonne  La puissance n'a de sens que pour les matrices carrées.  Les opérations terme à terme ne sont possibles qu'entre des matrices de même taille.  La puissance et l'inverse terme à terme sont possibles sur toutes les matrices (pour l'inverse, il ne doit pas y avoir d'éléments nuls). L'utilisation des fonctions mathématiques courantes se fait comme dans une calculatrice scientifique. Une liste des fonctions les plus courantes est disponible dans l'aide en ligne par >>help elfun Essayez et commentez les opérations suivantes >> vect1 * vect2 >> vect2 * vect1 >> vect1 .* vect2' >> x = 0:pi/4:pi; >> sin(x),cos(x), 1/x ??? Manipulations des matrices Les matrices sont des tableaux à deux dimensions qui se génèrent comme les vecteurs. À l'intérieur des délimiteurs [ ], deux colonnes sont séparées par un espace et deux lignes par un point virgule `;'. Surveillez bien que toutes vos lignes aient toujours le même nombre de colonnes ! Un certain nombre de matrices prédéfinies existent (diagonales, nulles, remplies de 1, ...), et fonctions réalisent les opérations courantes sur les matrices (déterminant, trace, somme des lignes ou des colonnes, valeurs propres, ...). La liste est disponible dans l'aide : >> help elmat Générez la matrice ) 3 , 3 ( A donnée ci-dessous, recherchez son déterminant, son inverse, son carré, son inverse terme à terme. Vérifiez que ) 3 , 3 ( 1 * I A A   . Exemple de résolution de système linéaire NASR KHOIDJA Med Ali 3/12 Il est facile de résoudre un système linéaire sous Matlab, grâce aux fonctions divisions \ et /, respectivement dites à gauche et à droite. Il faut pour comprendre cela, rappeler un résultat essentiel de la multiplication de 2 matrices : Pour vous en convaincre, générez une matrice et comparez les résultats des multiplications et . L'écriture sous forme de produit matriciel d'un système d'équations linéaire respecte un certain ordre dans la multiplication. Ainsi le système : s'écrit : Y X A  * , où            z y x X et             1 0 1 Y (1.1) Dans ce cas là on a recours à la division à gauche car la matrice est située à gauche de l'inconnu. La solution du système sera donnée par A X  \Y, comme pour signifier que divise par la gauche. La division à droite est utilisée dans un système du type : A * X = Y. Résolvez le système proposé sous Matlab. Indexation des matrices Les manipulations fréquentes sur les matrices nécessitent souvent de ne récupérer qu'une partie d'une matrice (ligne ou colonne, sous matrice). L'indexation, ou appel des éléments se fait par rapport à leurs indices, numérotés de 1 au nombre total de ligne puis de 1 au nombre total de colonnes. L'ordre d'indexation est toujours ligne - colonne. Pour récupérer l'élément situé à la ligne, colonne de la matrice A, on appelle A(2,3). Récupérer ainsi l'élément 0 dans la matrice A. >> A(2,3) ans = 2 Afin de récupérer un sous bloc d'une matrice, il faut donner en indice non plus une valeur mais un vecteur de valeur. La récupération d'une ligne ou d'une colonne se fait en indiquant `:' comme indice. Le dernier élément d'une ligne ou d'une colonne peut être indexé par la variable end. Essayez et commentez >> A (1:2,1) >> A (1,:) >> A (:,1:3) NASR KHOIDJA Med Ali 4/12 >> A (1:2,2:3) >> A(end,end-1) Dans le cas où l'on ne veut récupérer que quelques éléments de la matrice, il faut avoir recours à un autre type d'indexation. Matlab indexe en effet les éléments de deux façons : soit en ligne - colonne, soit comme un vecteur, en comptant les éléments dans l'ordre ligne colonne. Pour la matrice , les éléments sont donc soit indexés de A(1,1) à A(3,3), soit de A(1) à A(9) dans l'ordre : ( lignes,colonnes )= ) 3 , 3 ( ) 2 , 3 ( ) 1 , 3 ( ) 3 , 2 ( ) 2 , 2 ( ) 1 , 2 ( ) 3 , 1 ( ) 2 , 1 ( ) 1 , 1 ( , soit (indices) = 9 6 3 8 5 2 7 4 1 (1.2) La conversion (ligne,colonne) vers (indice) se fait alors, pour une matrice ayant lignes et colonnes : Indice = N*(colonne – 1)+ligne Essayez avec les 2 types d'indexations de récupérer en une seule fois uploads/Industriel/ tp1-ts.pdf

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