Tech. Multimédia ISTIC Borj Cédria LFSI 3 Année Universitaire 2018-2019 1 TP No

Tech. Multimédia ISTIC Borj Cédria LFSI 3 Année Universitaire 2018-2019 1 TP No 0 Prise en main de Matlab Matlab est un logiciel permettant l’optimisation des calculs scientifiques. Développé au départ pour le calcul matriciel, d’où l’abréviation MATrix LABoratory, Matlab permet la résolution de problèmes grâce à des algorithmes, des graphiques, des simulations,… Matlab peut être considéré comme un langage de programmation au même titre que C, Pascal ou Basic. C’est un langage interprété, c'est-à-dire que les instructions sont exécutées immédiatement après avoir été tapées. Matlab est donc un environnement à commande en ligne permettant de faire du calcul numérique simplement : pas de déclaration préliminaire de variables, possibilité de faire de l’algorithmique (boucle, conditions,...) et de très nombreuses fonctions dans de nombreux domaines. Enfin, il est facile de présenter les résultats numériques sur des graphiques. Génération - Manipulation 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 >> 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 Taper who et whos. Quelle est la différence entre les deux commandes ? 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 : >> a = 3; b = 2, c = 4; Tech. Multimédia ISTIC Borj Cédria LFSI 3 Année Universitaire 2018-2019 2 Enfin, si une ligne de commande est trop longue, vous pouvez passez à la ligne suivante en tapant `...' puis « Entrée » : >> 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 - Calculer et comparer a+b * c et (a+b) * c Calculer et comparer a/b*c et (a/b) * c 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. On peut utiliser des virgules ou des blancs pour séparer les éléments d’un vecteur. Taper : >> v1 = [ 2 3 5 7 11 13 ] >> v1 = [ 2, 3, 5, 7, 11, 13 ] Les éléments d’un tableau sont identifiés par leurs indices (commençant à 1): >> v1(1) >> v1(2) >> length(v1) >> clear v1 Autre manière de définir le tableau, élément par élément : >> v1(1) = 2 >> v1(2) = 3 … >>v1(6) = 13 On peut réaliser des opérations d’addition et de soustraction entre tableaux de même taille : >> v2 = [ 1 2 3 4 5 6 ] >> v1 + v2 On définit les vecteurs x = [1 2 3 4 5] et y = [-1 2 1/2 3 -2]. Tester les commandes suivantes : x*y ; x . * y ; x*y ’ ; sum( x . *y ) ; x+1 ; y . / x Expliquer ce qu’elles renvoient? Tapez: >> x = [1 2 3 4 5] >> y = [ 1 , 2 , 3 , 4 , 5] >> z = [ 1 ; 2 ; 3 ; 4 ; 5 ] >> z ’ Quelle est la différence entre x et y ? et z et z’ ? Tech. Multimédia ISTIC Borj Cédria LFSI 3 Année Universitaire 2018-2019 3 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 '. Essayez >> vect1 + vect2 >> vect1 + vect2' >> (vect2 + i)' >> (vect2 + i).' Essayez : >> vect3 = 1:10 >> vect4 = 1:-0.5:-1 >> debut = 0; fin = 2*pi; pas = .1; vect5 = debut:pas:fin 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. existe si . 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). 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 Créer un tableau à intervalles réguliers entre les éléments : >> T1 = 1 : 2 : 11 >> T2 = 2 : 2 : 12 >> T3 = 1 : 6 % lorsqu’il s’agit d’une incrémentation de 1 >> inverse_T1 = 11 : -2 : 1 % incrémentation inverse >> T4 = 0 : 0.5 : 10 % incrémentation partiel Autres opérateurs : produit, division et puissance élément par élément >> T1 .* T2 >> T1 ./ T2 Tech. Multimédia ISTIC Borj Cédria LFSI 3 Année Universitaire 2018-2019 4 >> T1.^2 Beaucoup de fonctions intégrées à MATLAB peuvent être appliquées à un tableau : >> angle = [ 0 : 10 : 90] ; >> angle = pi*angle/180 ; >> sin(angle) 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 On peut juxtaposer des matrices pour en construire une plus grande, à condition que leur dimension commune soit la même. Taper: >> A = [ 10 11 12 ; 9 0 4 ; 13 12 11 ] ; >> B = [ 9 8 7 ; 6 5 4 ; 3 2 1 ] ; >> C= [ A B ] >> size(C) Quelle est la différence entre [ A ; B] et [A B] ? Exemple : construction d’une table >> angle = 0 : 10 : 90 >> sine = sin(pi*angle/180) >> [ angle’ sine’] Pour extraire une sous-matrice : >> A(1, : ) % extraire la première ligne >> A( : , 2) % extraire la seconde colonne >> A(1 :2, 1 :2) % extraire une sous-matrice Opérations élémentaires >> S = A+B >> D = A-B >> A*B >> C = [10 11 ; 12 13 ; 14 15] ; >> A*C >> A.^2 >> L = log10(A) Pour définir une matrice unitaire : >> [m, n] = size(A) ; ones(m,n) >> ones(size(A)) % la même commande mais simplifiée Indexation des matrices Tech. Multimédia ISTIC Borj Cédria LFSI 3 Année Universitaire 2018-2019 5 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 2ème ligne, 3ème colonne de la matrice A, on appelle a(2,3). >> A(2,3) Comment récupérer ainsi l'élément 0 dans la matrice A ? Afin de récupérer un sous bloc d'une matrice, il faut donner en indice non plus une valeur mais uploads/Industriel/ tpn-0-prise-en-main-de-matlab-generation-manipulation.pdf

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