matrices Objectif • Apprendre à manipuler, sous Matlab, les scalaires, les variables, les vecteurs et matrices et quelques fonctions de base associées.
• MATLAB (Matrix Laboratory) fonctionne essentiellement avec
un seul type d'objet qui est une matrice numérique rectangulaire dont les éléments sont réels ou complexes.
• Un scalaire est une matrice de taille 1x1, un vecteur est une
matrice à une colonne,…
• Matlab ne nécessite pas de déclaration pas les des variables.
Leur type (entier, réel, complexe, caractère, chaine de caractère,…) s'affecte automatiquement en fonction du calcul effectué. Recommandations
• Dans ce document, différentes notions sont introduites.
L’apprenant aura à taper les commandes fournies et à vérifier leurs fonctionnements.
• Deux petits exercices sont proposés à la fin du document.
• L’apprenant doit avoir suffisamment de curiosité et doit
manipuler librement afin d’assimiler ces notions et en découvrir d’autres. En effet, un langage de programmation tel que Matlab ne s’enseigne pas mais se découvre librement. Les scalaires • On peut manipuler les scalaires à sa guise : >> 5+3 >> Exp(2) >> log(10) >> log(abs(3^2+6/86))
• Remarque: si on omet le point-virgule à la fin de la
commande, la valeur de la variable ou du scalaire est affichée après. Les variables (1) • Une variable se déclare du moment qu’on lui affecte une valeur : >> a=1.2, par défaut elle se déclare en type double • On peut inclure cette variable dans de nouvelles expressions mathématiques, pour en créer de nouvelles : >> b = 5*a^2+a/2 %(^2 est l’opérateur de puissance 2) • On peut créer des expressions de plus en plus compliquées : >> x=3; >> y=6; >> z=86; >>U= log(abs(x^2+y/z)) • On peut aussi faire des calculs en complexe. On écrit indifféremment i ou j ou sqrt(-1) : >> a+ b*i %sqrt(.) est la racine carrée Les variables (2) • Les variables sont de plusieurs types : binaires, entières, réelles et ont des tailles différentes : 8 bits, 16 bits,…
• En tapant datatypes en mode ligne et en consultant le
premier bloc des informations fournies, il est possible de connaître les différents types disponibles. • Matlab fait la différence entre les minuscules et les majuscules. • Les noms de variables peuvent avoir une longueur quelconque et doivent commencer par une lettre. Ils ne doivent pas contenir d’espace (chaîne continue de caractères). • La commande clear permet d'effacer une partie ou toutes les variables utilisées jusque là. Par exemple, >> clear a Les variables (3) • Il est conseillé de placer la commande clear au début des fichiers de commandes (>> clear all), afin de supprimer les anciennes variables existantes dans l’espace de travail. • Il existe un certain nombre de variables pré-existantes (pi, eps (epsilon), inf (infini),…). Il est souhaitable de ne pas utiliser leurs appellations pour vos propres variables. C'est souvent le problème pour i et j que l'on utilise spontanément comme indices de boucles alors qu’elles traduisent la racine de -1. • Il existe également des fonctions pré-définies dont il ne faut pas utiliser le nom : sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, sqrt, log, log10, exp,… Les variables (4) • On peut accéder à toutes les variables dans la fenêtre du workspace Une fois créé, le vecteur x est listé dans cet espace Les variables (5) • On peut accéder aux informations sur une variable quelconque grâce à l’onglet open variables En cliquant sur open variables, la liste des variables (ici x et y) s’affiche et on peut choisir la variable sur laquelle on veut des informations Les variables (6) • On peut accéder aux informations sur une variable quelconque grâce à l’onglet open variables En choisissant x, on voit le contenu, le type et la taille de x Manipulations des vecteurs (1) • Un vecteur est défini en plaçant une séquence de nombres entre crochets. Exemple : v = [3 1 7 -16 6 -9] • La commande N=size(v) (ou bien length) permet de vérifier sa dimension. Dans cet exemple, v est un vecteur ligne. Il est toutefois possible de le convertir en vecteur colonne en appliquant l’opérateur de transposition : >> v = [3 1 7 -16 6 -9]’ ou >>v=[3;1;7;-16;6;-9] • Matlab offre la possibilité de créer un vecteur à valeurs répétitives ou ordonnées dans l’ordre croissant ou décroissant. Exemple : >> v = [1:8] ou >> v=12:-2.5:5 • On peut accéder à n’importe quel élément du vecteur : 1er élément : >> v(1), dernier élément: >> v(end), n’importe quel élément : >> v(2), une suite d’éléments : >> v(1:3), d’un élément au dernier : >> v(3 :end), … Manipulations des vecteurs (2) • On peut effectuer des opérations simples sur tout le vecteur à la fois: >> w=2*v, ou manipuler certains de ces éléments: >> x=v(1:3)-v(2:4) Attention : les données d’une opération entre vecteurs doivent avoir la même dimension : même nombre d’éléments et même type (ligne ou colonne).
• On peut manipuler 2 ou plusieurs vecteurs à la fois :
>> u=1:10; >> v=11:20; >> w=v+u >> w=v-u/2
• Remarque: les opérations sur les vecteurs ne sont possibles
que s’ils sont de même dimension. Par exemple: la commande u+v’ ne marche pas car, même si les 2 vecteurs sont de taille 10, u est un vecteur ligne (dimension 1x10) et v’ est un vecteur colonne (dimension 10x1). Manipulation des matrices (1) • Définir une matrice est similaire à définir un vecteur. Elle est créée par superposition de lignes qui doivent être séparées par un point virgule, les éléments d’une même ligne sont séparés par un espace : >> A=[ 1 2 3; 3 4 5; 6 7 8] • Vue comme une superposition de colonnes, on peut utiliser l’écriture suivante: >> B = [ [1 2 3]' [2 4 7]' [3 5 8]’] • Pour sélectionner un élément d’une matrice, on spécifie deux indices : la position en ligne et la position en colonne : >>A(2,3) %dont la valeur est 5 • Accéder à un élément de la matrice ou à plusieurs éléments se fait selon le même principe que le vecteur en considérant les deux indices de ligne et de colonne. • On peut aussi modifier un ou plusieurs éléments d’une matrice : >> A(2,2)=0 ou >>A(1:2,1)=1; Manipulation des matrices (2) • Pour connaître les variables déjà définies et disponibles dans l’espace de travail, leurs dimensions et types également, on utilise la commande whos. La commande who affiche uniquement les noms des variables. • Un point fort de Matlab est la facilité de manipulation des matrices et vecteurs. La multiplication d’un vecteur par une matrice est par exemple une opération très simple : >>v=[0:2:8]; >>y=A*v(1:3)’ • On peut également effectuer le produit (somme, différence, division) de deux matrices: >>C=A*B • On peut effectuer la multiplication (somme, différence, division) point par point des éléments de deux matrices (ayant les mêmes tailles dans ce cas): >>D=A.*B Manipulation des matrices (3) • Il existe des matrices pré-définies telles que : eye(M,N), eye(N), zeros(M,N), ones(M,N), rand(M,N)
• A l’aide de la commande Help, on peut comprendre ces
fonctions et les tester sur des exemples numériques de M et N.
• On peut les adapter pour qu’elles génèrent des vecteurs en
spécifiant la taille à (M,1) ou (1,N). Exercices
• Créer un vecteur de votre choix. Calculer sa moyenne,
son maximum et son minimum. Déterminer les positions des valeurs nulles du vecteur. Utiliser min, max, mean, find,… • Soit A une matrice carrée de taille 2x2. Construire une matrice diagonale B ayant la même diagonale que A. • Créer un vecteur b de taille 2x1, résoudre Ax=b en une seule ligne de code Matlab.