Introduction à MATLAB pour ingénieurs
Introduction à MATLAB pour ingénieurs
1
Introduction
MATLAB est utilisé pour résoudre un problème qui peut être idéalement représenté par des matrices,
par l’utilisation des opérations de l'algèbre matricielle linéaire et de la représentation relativement
simple des graphiques en deux et trois dimensions.
Le calcul de la solution d'équations linéaires, la présentation, la manipulation et l'affichage des
données d'ingénierie sont peut-être les meilleurs exemples de problèmes pour lesquels MATLAB est
idéalement adapté.
• l’outil Simulink, pour modéliser et simuler des systèmes en utilisant des schémas-blocs,
3
I. Présentation et prise en main de Matlab
On clique sur l’icone Matlab pour le démarrer, la fenêtre de commandes (command Windows)
apparait.
Interface de Matlab
4
Sous fenêtre Fonctionnalités
Cette fenêtre représente le centre d’intérêt et le volet le plus
importante dans Matlab, permettant aux utilisateurs la saisie directe
Fenêtre de Commande et l’exécution des commandes (instructions) avec l’affichage des
(Command Window) résultats.
La présence d’un Curseur >> indique que Matlab est prêt pour
l’exécution d’une nouvelle Commande.
Cette partie de la fenêtre principale présente (affiche) l’ensemble
Espace de travail des variables en cous d’utilisation par Matlab :
(Workspace) - Une colonne « Name » indique le nom de la variable (identifiant).
- Une colonne « Value » indique sa valeur.
Permet l’affichage du dossier courant avec la liste des dossiers et
fichiers où doit se situer vos programmes (fichiers *.m).
Dossier en cours Il est possible de modifier le dossier en cours en navigant
(Current Folder) simplement a l’intérieur de cette fenêtre.
Astuce : modifier le dossier en cours a l’aide de la commande CD
dans la fenetre de Commande
5
Fonctionnalités basiques de MATLAB
Matlab offre différentes fenêtres dont une fenêtre principale « fenêtre de commande » (Command Window)
avec le prompt (symbole) >>
Cette fenêtre permet d’introduire les commandes a Matlab. Toutes les commandes sont en minuscules et en
Anglais, le résultat de chaque commande est affiché systématiquement après la validation (touche Entrée)
dans cette même fenêtre.
1. Démarrage de MATLAB : Pour l’exécution du logiciel Matlab sous Windows : Utilisez les raccourcis de
lancement MATLAB dans le bureau de Windows ou bien dans le menu Démarrer > Tous les
programmes...
2. Quitter Matlab : utilisez la commande “exit“ ou “quit“ dans la fenêtre de commande (>>) afin de fermer
et quitter Matlab.
6
Répertoire de travail de base
Il s’agit du répertoire (dossier) dans lequel Matlab se place directement lors du lancement. Il est
important de spécifier un répertoire propre à vos travaux pratiques (TP’s) afin d’effectuer des
sauvegardes à la fin de chaque séance. Pour cela, utilisez le gestionnaire de chemins dans la sous
fenêtre « Current Folder » et placez vous dans votre répertoire de travail.
7
Outils d'aide et d'information
Dans l’apprentissage de Matlab la commande « help » est importante afin d’avoir la syntaxe
exacte et la description des fonctions prédéfinies du langage Matlab. Le résultat de la commande
help est un aperçu des commandes disponibles :
8
La commande help section permet d’obtenir des informations sur une section particulières :
9
Pour avoir l’aide d’une commande particulière, entrez : help commande
10
Pour faire une recherche par mot-clé dans l'aide MATLAB, utilisez : lookfor mot
- Vous pouvez à tout moment accéder a l’aide via la fenêtre principale et les onglets index et recherche.
- Pour exécuter une commande il faut appuyer sur la touche clavier Entrée.
- Toutes les commandes Matlab sont en Minuscules et en Anglais. 11
II. Manipulation de variables
Introduction
Matlab propose une gestion transparente et typage dynamique des variables, aucune distinction entre
variable entière, réelle, complexe, chaîne de caractères. Ainsi les types de variables et dimension de
variables n’ont pas a être déclarés préalablement avant leur utilisation et manipulation, même pour
les tableaux et les matrices. Il suffit simplement d’affecter ( = ) une valeur au nom de la variable
depuis la fenêtre de command. Par la suite, Matlab crée automatiquement la variable correspondante
avec un espace mémoire nécessaire dans le Workspace. Dans le cas où la variable existe déjà,
Matlab modifie son contenu et, si nécessaire, effectue une allocation d’espace mémoire selon le
besoin (exemple : redimensionnement d’un tableau de variables). La création et la manipulation de
variables est basée sur des expressions.
12
Un nom (identifiant) de variable valide doit respecter les conditions suivantes :
Remarque :
Matlab est sensible à la casse. Une distinction à faire entre les minuscules et les majuscules. La
variable MAX_A est différente de la variable max_A
13
Calculs élémentaires
Dans la sous-fenêtre commande de Matlab, on écrit le calcul désiré en mode commande, ci-
dessous un ensemble d’exercices corrigés sous forme de Commandes :
Commande 1
>> x = 2+1
→ Validez la commande avec la touche « Entrée » du clavier :
Résultat
x=3
La réponse de Matlab à une commande de ce type est le nom de la variable avec son contenue.
Toutes les variables utilisées restent présentes en mémoire et peuvent être réutilisées. Ces
variables sont affichées dans la sous-fenêtre espace de travail (Workspace).
14
Généralement, les commandes utilisées en Matlab affectent des valeurs à des variables. Dans le
cas contraire, le résultat de la commande est automatiquement affecté à la variable ans (answer) :
Commande 2
>> 3+7
Résultat
ans = 10
15
Commande 3
>> (14+6)/4
Résultat
ans = 5
→ Ainsi, la nouvelle commande écrasera l’ancienne valeur (=10) de la variable ans par la
nouvelle valeur (= 5).
Commande 6
>> a = 21; b = 8, c = 9
Résultat
b=8c=9
→ Matlab affiche les deux variables b et c seulement, la valeur de la variable « a » n’est pas
affichée en présence d’un (;) point-virgule après la commande. Mais on peut remarquer que
Matlab a exécuté l’opération en créant la nouvelle variable « a » qui vaut 21 dans la sous
fenêtre Worksapce.
17
Toutes les variables crées sont affichées dans la fenêtre Workspace de l’interface Matlab et
conservées en permanence en mémoire. La commande who permet d’afficher la liste de ces
variables en mode texte :
Commande 7
>> who
18
La commande whos donne la liste des variables présente dans l’espace de travail ainsi que
leurs propriétés :
Commande 8
>> whos
19
La commande clear a permet de supprimer seulement la variable (a) du Workspace.
Commande 9
>> clear a
>> who
Your variables are:
ans b c x y
Remarque :
Avant chaque exercice (TP’s), commencez par nettoyer l’espace de travail (Workspace) a l’aide
de la Commande « clear ». La commande « clc » permet d’effacer l’écran (fenêtre de
commande) de Matlab.
20
Les types de variables
Une des caractéristiques de Matlab est que toute variable quelque soit son type est considérée
comme une matrice. Les scalaires sont des matrices (1 × 1), les vecteurs lignes sont des
matrices (1 × n), les vecteurs colonnes sont des matrices (n× 1).
Matlab permet la construction explicite des vecteurs et des matrices en entrant leurs
coefficients directement dans la fenêtre de commande :
• Les types relatifs aux nombres : Matlab stocke par défaut tous les nombres (entiers et réels)
en "double précision" (8 octets par nombre, donc 64 bits). La saisie des nombres réels en
notation décimale standard (si nécessaire en notation scientifique (e) avec affichage de la
puissance de 10).
21
Exemple (corrigés)
>>c=2.16*10^(-6) %expression_1
c = 2.1600e-06
22
• Le type complexe : dans Matlab, un nombre complexe est de la forme : z = a + bi . Stocké de
façon interne sur 2x 8 octets, respectivement pour la partie réelle et la partie imaginaire. Les
fonctions usuelles de manipulation des nombres complexes sont prédéfinies dans Matlab (real(z)
, imag(z), abs(z), arg(z) et conj(z)).
Exemple (corrigés)
Exemple (corrigés):
>> x= true
x=1
>> y= false
y=0
• Le type chaine de caractères : ce type de variables se manipule comme des vecteurs lignes.
pour créer une chaîne de caractères il faut la déclarée avec des guillemets simples ( ’ ) au
début et à la fin.
Exemple (corrigés):
>> S='Matlab' %Créer une chaîne de caractères
S = Matlab
Exemple (corrigés):
>> v = [1 2 3] % vecteur ligne avec des espaces au milieu
v=123
25
• Matrices : une matrice se déclare comme les vecteurs, en séparant les colonnes par espace et
les lignes par point- virgule.
Exemple (corrigés):
Dans les chapitres suivants, nous allons voir en détails comment accéder aux valeurs des
matrices et vecteurs (en lecture et écriture) ainsi des commandes (fonctions Matlab) pour créer
des matrices et vecteurs de manière automatique.
26
Exercice (avec solution) :
Le type d'une variable est déterminé de manière automatique à partir de l'expression
mathématique ou de la valeur affectée à la variable.
La commande suivante :
>> a=45 ; b=‘Hello’ ; c=a+5i ; d=true;
27
Opérateurs et priorités
• Les opérateurs arithmétiques : Avec Matlab, vous pouvez effectuer des opérations sur vos
variables en respectant les règles classiques de priorités. Il est possible de modifier cet ordre
de priorité en intégrant les parenthèses ( ).
28
Exercices :
Calculez l’expression :
Solution :
Calculez l’expression :
Solution :
30
Exercices : Le but de cette démonstration est d’utiliser les opérateurs relationnels et logiques afin de
comprendre leurs fonctionnements. Nous considérons les deux variables A et B définies comme suit :
31
>> (A<10)&(B=2) %Erreur B=2 est une affectation et non pas relation
(A<10)&(B=2)
↑
Error:
32
Variables et Expressions sous Matlab
Objectifs
Le but principal : la manipulation des variables et la définition d’expressions de calculs simples. La
gestion des types d’affichage et les variables prédéfinies de Matlab et finalement la procédure de
sauvegarde des variables dans un fichier pour une utilisation ultérieure.
Format d’affichage
Matlab fonctionne toujours de façon interne en précision maximum (double précision). Par contre le
format d'affichage des nombres dans la fenêtre "Command Window" est configurable à l'aide de la
commande « format » :
33
Variables Spéciales (prédéfinies)
Matlab possède des variables prédéfinie (constantes), ces variables existent même si elles ne sont
pas présentes dans le Workspace :
Remarque : si l’utilisateur déclare une variable « pi =4 » avec Matlab va utiliser cette nouvelle
valeur pour toutes utilisation de « pi » jusqu’au prochain redémarrage de Matlab. 34
Sauvegarde des variables
Dans Matlab toutes les variables du Workspace sont effacées à la fermeture du logiciel, ainsi toutes
les variables sont perdues. Afin de sauvegarder les variables dans un fichier avec l’extension «
.mat » il est nécessaire d’utiliser la commande « save ».
Le fichier crée : mes_variables.mat dans le dossier courant contient toutes les variables (X, S, Y,
Z). Par contre le fichier variables_X.mat contient seulement la variable spécifiée en paramètre
(X).
35
Lors du démarrage d’une nouvelle session de Matlab ou après une suppression en utilisant la
commande « clear », le Workspace est toujours vide et ne contient aucunes variables. La
commande « load » permet de charger des variables sauvegardées dans un fichier.
Il est aussi possible de charger qu’une seule variable depuis un fichier en indiquant le nom de la
variable après le nom du fichier : >> load(’mes_variables’,’X’)
36
III. Les Fonctions Prédéfinies
Introduction
Les bibliothèques et librairies Matlab sont très riches et diversifiées en matière de fonctions
mathématiques utilisées sur des vecteurs ou matrices. Matlab compte des milliers de fonctions,
dans les prochains chapitres nous allons voir les fonctions générales et opérateurs arithmétiques
relatifs au calcul matriciel et des fonctions pour la visualisation.
Les principales fonctions mathématiques disponibles sous MATLAB sont les suivantes :
Fonctions Description
sin(var), asin(var), cos(var), acos(var), Fonctions trigonométriques (angle en radian) : sinus,
tan(var) , atan(var), cot(var), acot(var) arc sinus, cosinus …
asin(var), asind(var), acos(var), Fonctions inverses des fonctions sin, sind, cos, cosd,
acosd(var), atan(var), atand(var) tan et tand respectivement
sqrt(var) Racine carrée de var.
log(var) Logarithme naturel de var (de base e), respectivement
log10(var) de base 10,
log2(var) et de base 2 37
exp(var) Exponentielle de var
38
Exercices corrigés
>> x=90;
>> acosd(cosd(x)) % Calculer l’inverse du cosinus
ans = 90
39
>> log(exp(1)) % Calculer Logarithme de base e
ans = 1
>> ceil(3.7) %Le plus grand entier qui est inférieur ou égal
ans =4
40
Fonctions générales relatives aux chaînes de caractères
Fonctions Description
length(string) Retourne le nombre de caractères de la
chaîne string
41
Exercices corrigés
ans = tpfnctmatlab
Pour l’affectation d’une chaîne de caractères à une variable, la chaîne doit être délimitée par des
apostrophes (‘). Si la chaîne contient elle-même des apostrophes, le mécanisme d'échappement
consiste à dédoubler les apostrophes dans la chaîne.
Exemple :
43
Matrices et Vecteurs sous Matlab
Introduction
En mathématique, une matrice est un ensemble de valeurs organisées dans un tableau de « n »
lignes et de « m » colonnes. Les coefficients de la matrice sont situés entre deux parenthèses. Une
matrice est caractérisée par sa Dimension= (n x m).
Un élément de la matrice A est repéré par le couple d’indices (i,j) : (numéro de la ligne, numéro
de la colonne).
44
Propriétés et caractéristiques
- Les vecteurs (ligne ou colonnes) : Matlab ne fait pas vraiment de différence entre un scalaire, un
vecteur, une matrice ou un tableau à N-dimensions, ces objets pouvant être redimensionnés
dynamiquement. Ainsi, un vecteur n'est donc qu'une matrice (n x m) dégénérée d'une seule ligne
(1xm) ou une seule colonne (nx1).
• Une matrice ligne est une matrice d’ordre 1 appelée vecteur ligne.
Exemple de vecteur ligne (1x3) : M = (1.5 4 -3)
• Une matrice colonne est une matrice d’ordre 1 appelée vecteur colonne.
4
Exemple de vecteur colonne (3x1) : M = 9
11
45
- Les Matrices : Une matrice Matlab est un tableau à deux dimensions de (nxm) éléments de
types nombres réels ou complexes ou de caractères.
• Une matrice carrée est caractérisée par le fait d’avoir le même le nombre de lignes et le
nombre de colonnes (n=m).
Exemple de matrice carrée (4x4) :
46
• Addition A+B de deux matrices de mêmes dimensions : le résultat est une matrice C de même
dimension.
Exemple :
Exemple :
Exemple :
47
• Multiplication d’une matrice par un scalaire : il suffit de multiplier tous les éléments de la
matrice par le scalaire en question.
• Transposition : il s’agit d’une matrice notée 𝐴𝑇 de dimensions (MxN) obtenue en échangeant les
lignes et les colonnes d’une matrice initiale A de dimensions (NxM).
Exemple :
• La Diagonale d’une matrice : il s’agit de l’ensemble des éléments d’une matrice carrée qui se
situent du coins haut gauche vers le coin bas droit.
48
• Matrice Diagonale : il s’agit d’une matrice carrée où tous les éléments qui n’appartiennent pas la
diagonale sont nuls (=0) et les éléments de la diagonale peuvent être nuls.
Exemple :
• Matrice identité : il s’agit d’une matrice diagonale dont tous les éléments de la diagonale =1.
Exemple :
Remarque : Dans Matlab, les éléments d’un vecteur sont numérotés par des entiers débutant par la valeur 1.
Le même principe pour les matrices, les indices de ligne et de colonne sont des valeurs entières débutant par 1
(et non pas 0, comme dans la plupart des autres langages de programmation).
49
Manipulation de Matrices sous Matlab
Les descriptions suivantes résumant les principales commandes couramment utilisées (affectation
par l’usage des crochets [ ], adressage des éléments par les parenthèses ( ), fonctions d'initialisation
spéciales liées aux matrices…) :
Les vecteurs
Fonctions Description Exemples
Créer un vecteur ligne V contenant des valeurs >> v1 = [ 1 3 0 -1 5 ] %vecteur 1*5
V= [val1 val2 val3 ...] (val), des variables (var), ou expressions (expr)
spécifiées. Il faut délimitées les éléments par >> v2 = [ 2, 4, 8, -3, 7, -2, 1]
des espace, virgules (,) %vecteur ligne
V=[val ; var ; expr ...] Créer un vecteur colonne V. il faut délimitées >> v4 = [ 2 ;4 ;8 ;-3 ;7 ;-2 ;1]
les éléments par des points virgules ( ;) %vecteur colonne
V =[var val var val ...]' Une autre méthode, consiste à définir un vecteur
ligne et à le transposer lors de l’affectation a V.
V’ Permet de transposer un vecteur V. Vecteur
ligne devient un vecteur colonne et vice-versa
50
Fonctions Description Exemples
V(indices) Pour accéder aux éléments d'un vecteur avec v =10 9 8 7 6 5 4 3 2 1
la variable « indices » qui est un vecteur >> v(2) ans =9
(ligne ou colonne)
V = n:m Créer un vecteur ligne V suite (série) >> v = 1 : 5 % incrément 1 par défaut
d'indices allant de n à m par pas de 1 v =1 2 3 4 5
V = val0:p:val1 : Créer un vecteur ligne V (suite) dont le >> v = 1 : 0.5 : 4
premier élément est Val0 et le dernier v =1 1.5 2 2.5 3 3.5 4
élément Valf et le pas= p >> v = 10 : -1 : 1
v =10 9 8 7 6 5 4 3 2 1
v(i1:i2)=[] supprimer les coordonnées i1 à i2 de v >> v(3:6)=[]
v =10 9 4 3 2 1
length(V) Renvoie le nombre d’élément (taille) du >> length(v)
vecteur V (ligne ou colonne). ans =6
51
Fonctions Description Exemples
A = linspace(V0,Vf,n) Créer un vecteur de suite arithmétique en >> j=linspace(7,55,3)
précisant : le premier terme V0, le dernier j = 7 31 55
terme Vf et le nombre de termes n.
Matlab calcule automatiquement le pas (La
raison=(Vf-V0)/(n-1))
diag(Vecteur) A partir d’un Vecteur ligne ou colonne, la >> a=[1 2 3];
fonction retourne une matrice carrée dont la >> diag(a)
diagonale principale porte les éléments du ans =
vecteur et les autres éléments sont égaux à 1 0 0
"0" 0 2 0
0 0 3
[x,y] concaténer les vecteurs x et y >> x=[1 2 3];y=[4 5];
>> Z=[x -y] %Création de vecteurs à
partir d’autres vecteurs
Z = 1 2 3 -4 -5
52
Matrices
Fonctions Description Exemples
Créer une Matrice Mat de dimension (nxm) >> M=[1 2 3;4 5 6;7 8 9]
avec les éléments vij. Les éléments d'une M =
ligne sont séparés par des espace ou virgules, 1 2 3
les différentes lignes sont délimitées par des 4 5 6
(;) points virgules 7 8 9
Il est aussi possible de définir une matrice >> M1=[1 2 3]; M2=[4 5 6];
Mat=[Vco1 Vco2 ...] Mat par concaténation de vecteurs colonnes M4=[7;8;9]; M5=[-1;0;7];
Vcoi ou de vecteurs ligne Vlii . >> Ma=[M1;M2]
Mat=[Vli1 ; Vli2 ; ...] Ma =
Les séparateurs entre les vecteurs colonnes 1 2 3
est l'espace, et celui entre les vecteurs lignes 4 5 6
est le (;) points-virgules. >> Mb=[M4 M5]
Mb =
7 -1
8 0
9 7
53
Fonctions Description Exemples
ones(n,m) Créer une matrice numérique de n lignes et >> ones(3) >> zeros(3)
m colonnes dont tous les éléments sont mis à ans = ans =
zeros(n,m) la valeur 1 pour ones et à 0 pour zeros. 1 1 1 0 0 0
Si m n’est pas mentionner, la matrice crée 1 1 1 0 0 0
est une matrice carrée de dimension (n x n). 1 1 1 0 0 0
eye(n,m) Créer une matrice identité de dimension (n x >> eye(3,4)
m) avec la diagonale=1, et les autres ans =
éléments à 0. Si m n’est pas mentionner, la 1 0 0 0
matrice crée est une matrice carrée de 0 1 0 0
dimension (n x n). 0 0 1 0
diag(Matrice) Appliquée à une Matrice (carré ou pas), elle >> diag(M)
retourne un vecteur-colonne formé à partir ans =
des éléments de la diagonale de cette 1
matrice. 5
9
[n m]=size(Var) nombre de lignes et de colonnes de A >> [n m]=size(M)
n= 3
m=3
54
Fonctions Description Exemples
length(Mat) Calculer le nombre de lignes et le nombre de >> length(Ma)
colonnes de Mat puis renvoie le plus grand ans = 3
de ces deux valeurs.
numel(Mat) Retourne le nombre d'éléments de la matrice >> numel(M)
Mat ans = 9
M(i,j) élément ligne i et colonne j de M >> M(2,2)
ans = 5
M(i) coefficient d’ordre i dans l’indexation >> M(5)
linéaire ans = 5
M(i1:i2,:) =[] supprimer les lignes i1 à i2 de M >> M(1:2,:) =[]
M=
7 8 9
M(:,j1:j2)=[] supprimer les colonnes j1 à j2 de M >> M(:,1:2)=[]
M=
3
6
9
55
On peut créer des matrices à partir d’autres matrices.
v=
7 6
2 3
1 4
Il faut faire attention à la taille des matrices afin de créer une matrice à partir d’autre matrice.
56
Manipulation de vecteurs sous Matlab (TP)
Objectifs
Matlab ne nécessite pas l’étape de déclaration des variables comme la plupart des langages de
programmation (C/C++,…), ainsi toutes les variables et les identifiants de variables n’ont pas a
être déclarés. Il suffit de définir la variable avec une valeur, ensuite Matlab va créer cette nouvelle
variable ou bien il modifie l’ancienne si la variable est déjà créée. Avec Matlab il n’y a aucune
différence entre variables ‘entière’, variables ‘réelle’ ou variables ‘complexe’, le système
d’allocation dynamique s’en charge de l’opération.
Le but est de maitriser la création de vecteurs et le calcul arithmétique sur les vecteurs.
57
Exercices corrigés
59
>> A = 1:5 ; B= 6:10 ; ADD = A + B , SOUS = A – B %Opérations sur les vecteurs
ADD = 7.00 9.00 11.00 13.00 15.00
SOUS = -5.00 -5.00 -5.00 -5.00 -5.00
>> W= V([1 3 6]) %Manipuler Plusieurs éléments Non consécutifs d’un vecteur
W = -3.00 1.00 -3.00
61
>> V(5) = []; %Suppression du 5ème élément du vecteur V
V = -3 1 1 1 -3
62
Manipulation de Matrices sous Matlab (TP)
Objectifs
Le calcul matriciel est le point fort de Matlab. La déclaration des matrices est très simple sous
Matlab des matrices. Une matrice est un tableau à deux dimensions avec (n) lignes et (m)
colonnes et contenant des éléments de même type.
63
Exercices corrigés
C2 = 3 3
3 3
C=1 0 3 3
0 1 3 3
>> C ([2 3],[1 3]) %Extraction des éléments des lignes 2, 3 et les colonnes 1,3
ans = 0 3
22 44
65
>> C([2 3],1:2) %Commentez le résultat ?
ans = 0 1
22 33
>> C([2 3],:) %Extraction des éléments des lignes 2, 3 et toutes les colonnes
ans = 0 1 3 3
22 33 44 55
>> C([2 3],end) %Extraction des éléments des lignes 2, 3 de la dernière colonne
ans = 3
55
66
>> C(:) %Extraction des éléments de façon continue Colonne après Colonne
ans = 1
0
22
0
1
33
3
3
44
3
3
55
67
>> C( 2 , 1 ) = 11 %Modifier l’élément de la ligne 2 et colonne 1
C=1 0 3 3
11 1 3 3
22 33 44 55
>> C ([1,3] , [1,3] ) = [-2 -5 ; -22 -44] %Modifier les éléments (1,1), (1,3), (3,1) et (3,3)
C = -2 1 -5 -3
11 1 3 3
-22 33 -44 55
68
>> A= reshape(A,[2,3]) %Créer une matrice à partir du vecteur
A=3 5 7
4 6 8
ans = 3 4
5 6
7 8
ans = 3 2
70
Opérations arithmétiques – Matrices
Pour mettre au carré chaque élément de A, utilisez l'opérateur élément par élément .^
>> A.^2
ans =
1 4 9
16 25 36
49 64 81
>> A^2
ans =
30 36 42
A^2 = A * A 66 81 96
102 126 150
72
Les opérations entre matrices
>> A=[1 2 3;4 5 6;7 8 9] >> B=[1 1 1;2 2 2;3 3 3]
A= B=
1 2 3 1 1 1
4 5 6 2 2 2
7 8 9 3 3 3
1 2 3 1 1 1 14 14 14
4 5 6 2 2 2 = 32 32 32
A*B
7 8 9 3 3 3 50 50 50
11 21 31 1 2 3
A.^B 2
4 5 2
62 = 16 25 36
73 83 93 343 512 729
74
Les Systèmes d’Equations Linéaires
Un système d’équations linéaires a soit une seule solution, soit une infinité de solution soit aucune
solution. Dans Matlab, ce système d’équation s’écrit sous format matriciel :
75
𝑨∗𝑿=𝑩
Si la matrice A n’est pas inversible (Déterminant(A) = 0), alors le système a aucune solution soit
une infinité de solution ;
𝑿 = 𝑨−𝟏 𝑩
76
Exercices corrigés
77
Solution :
Matlab est un logiciel très puissant pour les graphiques (2D et 3D) avec de nombreuses fonctions
pour gérer et personnaliser les axes en ajoutant des labels, légendes et titres.
Différents types de représentations sont possibles, dans ce chapitre nous présentons que les
graphiques de type courbes, mais il existe d’autres fonctions pour réaliser des histogrammes, des
barres ou des camemberts suivant le type de données que l'on désire représenter (statistiques,
proportionnelles…).
Les graphiques MATLAB sont affichés dans des fenêtres de graphiques spécifiques appelées
"figures", crée a l’aide des commandes figure ou subplot, ou automatiquement lors de toute
commande produisant un tracé (graphique 2D ou 3D).
79
Les principales fonctions pour représenter un ensemble de points (x(i), y(i)) sont :
Fonction Description
plot(x,y, ’s’) Représentation de points dans le plan. Tracé d’une courbe ou d’un
nuage de points.
Le paramètre ‘s’ est facultatif, constitué d’une chaîne de caractères
pour spécifie le type de tracé (couleur, pointillés, symboles…).
hold on La commande permet de superposer les prochains tracés à ceux
déjà affichés.
hold off Lors du prochain tracé, le contenu de la fenêtre graphique active
sera effacé.
clf Permet d’effacer le contenu de la fenêtre graphique active.
figure(n) Activer (afficher) la fenêtre graphique numéro « n ».
close Fermer la fenêtre graphique active.
close all Fermer toutes les fenêtres graphiques.
axis([xmin xmax ymin ymax]) Permet de définir les échelles des axes.
grid('on | off') Activation/désactivation de l'affichage du quadrillage (grid).80
Fonction Description
title(’titre’) Définir un titre de graphique qui est placé au-dessus de la zone
affichée.
xlabel(’titre_X’) Afficher une légende (étiquettes) pour l’axe des Abscisses.
ylabel(’titre_Y’) Afficher une légende (étiquettes) pour l’axe des ordonnées.
legend(’titre1’,’titre2’,...) Définir une légende pour chaque courbe du graphique.
text(x,y,’texte’) a la position (x, y) Placer une annotation (texte explicatif) dans le graphique à la
position (x, y) spécifiée.
Sous Matlab, il est possible de sauvegarder une figure (graphique) sous plusieurs formats. Le format
propre a Matlab avec l’extension « .fig ». Pour cela, il suffit d’utiliser le sous menu Save as du menu
File de la fenêtre graphique et par la suite donner un nom au fichier. Une visualisation ultérieure de
ce fichier est possible en utilisant la commande Open du même menu.
81
Exemple :
>> x=-4:.1:4;
>> y=x.*sin(x).*cos(x);
>> plot(x,y)
Avec la commande hold off toute nouvelle figure efface la précédente. C’est le mode par défaut.
Lorsqu’on tape seulement hold on passe d’un mode à un autre, i.e. on passe de hold on à hold off et
vice versa. 84
Exercices corrigés
Tracez les courbes correspondant à la fonction Sinus et Cosinus : 𝑦1 = sin(𝑥) , 𝑦2 = cos(𝑥) 𝑎𝑣𝑒𝑐 𝑥 ∈ [0 ; 5𝜋]
Solution :
>> x=0:0.1:5*pi; %Définir le domaine de la variable x (Abscisses)
>> y1=sin(x); y2=cos(x); %Calculer les valeurs des Ordonnées
>> % Tracer les deux courbes avec motifs
>> %Sinus : ligne pointillée en bleu avec petit disque rempli
>> %Cosinus : ligne continue en rouge avec des cercles
>> plot(x,y1,’b :.’,x,y2, ‘r-o’);
>> grid('on'); %Afficher le quadrillage dans le graphique
>> axis([0 15 -1 1]); % Graphique selon les limites données des axes x et y
86
Exemple :
tracer la fonction 𝑦 = 𝑠𝑖𝑛(𝑥) avec 𝑥 ∈ [0 … 2𝜋] avec un 𝑝𝑎𝑠 = 𝜋⁄6 . En changeant le marqueur
(Tableau )
>> x=0:pi/6:2*pi;
>> y=sin(x);
87
Exemple complet de courbes multiples légendées.
Les courbes représentent les polynômes de Tchebychev
Tn(x) = cos (n arccos x) , x ∈ [−1, 1], n = 0, 1, 2, 3.
>> x=-1:.01:1;
>> y0=ones(size(x)); y1=cos(acos(x));
>> y2=cos(2*acos(x)); y3=cos(3*acos(x));
>> plot(x,y0,’:’,x,y1,’-.’,x,y2,’--’,x,y3,’-’)
>> xlabel(’x’)
>> ylabel(’y=T_n(x)’)
>> title(’Polynomes de Tchebytchev’)
>> legend(’n=0’,’n=1’,’n=2’,’n=3’)
88
Décomposition de la fenêtre en sous-fenêtres
subplot(m,n,p)
où
m est le nombre de sous-fenêtres verticales;
n est le nombre de sous-fenêtres horizontales;
p est la position de la sous-fenêtre de la figure à tracer.
89
Exemple avec les polynômes de Tchebychev tracés dans des sous-fenêtres séparées.
>> x=-1:.01:1;
>> y1=cos(acos(x));
>> subplot(2,2,1) % 1ere sous-fenetre
>> plot(x,y1)
>> title(’Polyn\^ome de Tchebychev T_1(x)=cos(acos(x))’)
>> xlabel(’x’)
>> ylabel(’y=T_1(x)’)
>> subplot(2,2,2) % 2eme sous-fenetre
>> y2=cos(2*acos(x));
>> plot(x,y2)
>> title(’Polyn\^ome de Tchebychev T_2(x)=cos(2 acos(x))’)
>> ylabel(’y=T_2(x)’)
>> xlabel(’x’)
90
>> subplot(2,2,3) % 3eme sous-fenetre
>> y3=cos(3*acos(x));
>> plot(x,y3)
>> title(’Polyn\^ome de Tchebychev T_3(x)=cos(3acos(x))’)
>> xlabel(’x’)
>> ylabel(’y=T_3(x)’)
>> subplot(2,2,4) % 4eme sous-fenetre
>> y4=cos(4*acos(x));
>> plot(x,y4)
>> title(’Polyn\^ome de Tchebychev T_4(x)=cos(4acos(x))’)
>> ylabel(’y=T_4(x)’)
>> xlabel(’x’)
91
92
Visualisation 3D
Pour la visualisation 3D, il convient de distinguer les courbes 3D (plus faciles à tracer) des
surfaces. Et pour les surfaces, il convient de distinguer celles définies de manière analytique
(i.e. par une fonction) des surfaces définies par un ensemble de points de l’espace.
Courbes 3D
La commande plot3 permet de tracer une courbe 3D. La syntaxe est
plot3(x,y,z)
où x, y et z peuvent être des matrices ou des vecteurs de même taille. Dans le cas ou les
arguments x, y et z sont des vecteurs, la commande génère une ligne 3D qui passe par les points
(xi , yi , zi). Le bout de code suivant a permis de générer une courbe 3D
>> t=0:pi/50:10*pi;
>> x=(1+sin(t)).*cos(t);y=(1+sin(t)).*sin(t); z=t;
>> plot3(x,y,z)
>> xlabel(’x’),ylabel(’y’),zlabel(’z’)
93
Courbe 3D définie par ((1 + sin t) cost,(1 + sin t) sin t, t), pour t ∈ [0, 10π].
94
Exemple :
>> x = 1:5;
>> y = [0 -2 4 11 3];
>> z = [Link];
>> plot3(x,y,z,'k*')
>> grid
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> title('3D Plot')
95
Pour la fonction bar3, les vecteurs y et z sont passés et la fonction affiche des barres 3D
comme illustré, dans l’exemple suivant et la Figure
Exemple :
y = 1:6;
z = [33 11 5 9 22 30];
bar3(y,z)
xlabel('x')
ylabel('y')
zlabel('z')
title('3D Bar')
96
D'autres types de courbes 3D intéressants incluent mesh et surf. La fonction mesh dessine un
maillage filaire de points 3D, tandis que la fonction surf crée un tracé de surface en utilisant la
couleur pour afficher les surfaces paramétriques définies par les points.
MATLAB a plusieurs fonctions qui créeront les matrices utilisées pour les coordonnées (x, y, z)
pour les formes spécifiées (par exemple, sphère (exemple 1 et 2) et cylindre).
Exemple 1 : Exemple 2:
[x,y,z] = sphere(15); [x,y,z] = sphere(15);
size(x) surf(x,y,z)
mesh(x,y,z) title('Surf of sphere')
title('Mesh of sphere') colorbar
97
Graphes spécifiques :
MATLAB dispose de plusieurs routines permettant de tracer des graphes spécifiques (Tableau)
Fonctions de graphes signification
bar barres
errorbar Barre d’erreur
hist Histogramme
polar Coordonnées polaires
rose Histogramme angulaire
stairs Marche d’escalier
Exemples x=linspace(0,1,1000); >> x=linspace(0,8*pi,1000);
>> polar(sin(8.*x.*pi), cos(12.*x.*pi),'oy') >> rose(x.*x,20)
98
>> x=linspace(0,4*pi,20); >> x=linspace(0,4*pi,20);
>> errorbar(x,sin(x),0.1*sin(x)) >> bar(x,sin(x))
99
- Si les arguments x, y et z sont des matrices de même dimension, plot3 trace une courbe 3D pour
chaque colonne des matrices. La surface de la figure (1) a été générée à l’aide du bout de code :
>> [x,y]=meshgrid(-2:.1:2); %Créez une grille 2D avec des coordonnées x et y espacées par dans
l'intervalle [-2,2].
>> z=x.*exp(-x.^2-y.^2);
>> plot3(x,y,z)
- Il suffit alors de tracer des courbes 3D suivant les lignes de x, y et z pour avoir la surface de la
figure (2) Pour cela, on rajoute les lignes de codes.
>> hold on
>> plot3(x’,y’,z’)
100
FIGURE 1: Commande plot3(x,y,z) avec x, y et FIGURE 2: Surface tracée avec plot3 sur les
z des matrices avec la fonction colonnes, puis sur les lignes avec la fonction
−𝑥 2 −𝑦 2 −𝑥 2 −𝑦 2
𝑧 = 𝑥𝑒 𝑧 = 𝑥𝑒
101
La surface avec mesh(x,y,z) (surface fil de fer) ou avec surf(x,y,z)
[x,y] = meshgrid(x_min:hx:x_max,y_min:hy:y_max)
où hx est la raison de la subdivision sur l’axe des x et hy celle sur l’axe des y. Les arguments
résultats x et y sont des matrices de même taille. Les lignes de x sont des copies du vecteur
x_min:hx:x_max et les colonnes de y sont des copies du vecteur x_min:hx:x_max. Si les
subdivisions en x et y sont identiques, on utilise la forme abrégée
[x,y] = meshgrid(x_min:h:x_max)
102
𝟐 −𝒚𝟐
Exemple de 𝒇 𝒙, 𝒚 = 𝒙𝒆−𝒙
Ensuite, il faut évaluer la fonction f aux noeuds de la grille pour avoir la troisième matrice z.
Finalement on trace la surface avec mesh(x,y,z) (surface fil de fer) ou avec surf(x,y,z) (surface à
facettes).
>> [x,y]=meshgrid(-2:.1:2);
>> z=x.*exp(-x.^2-y.^2);
>> mesh(x,y,z)
103
Pour pouvoir apprécier une surface, il faut pouvoir la voir sous tous les angles! Avec MATLAB
cela se fait soit avec la souris soit avec la commande view dont la syntaxe est
view(az,el)
Les valeurs par défaut sont az=-37.5 et el=30. L’angle de vue par défaut s’obtient en tapant
simplement view(3). A noter que view(2) donne l’angle de vision par défaut en 2D, à savoir az=0 et
el=90. On regarde alors la surface à la verticale.
104
La figure représente la surface précédente avec view(30,60).
105