Pr.
Omar IKEN
ESTM A.U 2022-2023
MATLAB® (pour MATrix LABoratory) est un logiciel scientifique de
calcul numérique créé en 1984 par Mathworks. MATLAB c’est :
Un environnement puissant, complet et facile à utiliser destiné
au calcul scientifique et à sa visualisation graphique ;
Plusieurs centaines de fonctions mathématiques, scientifiques et
techniques regroupées en Toolboxes (ou « Boites à Outils ») ;
Simulink, un environnement puissant de modélisation par
schémas-blocs et de simulation de systèmes linéaires ou non,
continus ou discrets.
Des bibliothèques de blocs Simulink spécialisés (BlockSets)
dans divers domaines.
Actuellement, Matlab recouvre d'autres
domaines d'applications de l'informatique
scientifique :
visualisation graphique 2D et 3D
résolution d'équations aux dérivées partielles
optimisation
traitement du signal
traitement de l'image
réseaux de neurones
…
La fenêtre de commande (ou ligne de commande) :
c’est l’outil de base de Matlab. Elle permet entre autre de faire n’importe quelle
opération, de définir et affecter les variables d’environnement, d’utiliser les
toolboxes via leurs fonctions, …
La fenêtre d’historique de commande :
permet de répéter les commandes précédentes en double-cliquant sur la
commande concernée dans cette fenêtre. On peut obtenir le même résultat en
ligne de commande par l’appui répétitif sur la touche « fléche haut » du pavé
numérique.
La fenêtre d’espace de travail :
Cette fenêtre permet de visualiser les différentes variables existantes, en
affichant leur nom, leur contenu (ou leur dimension) ainsi que le min et le max
des données qu’elle contient. On peut obtenir la liste des variables ainsi que
leurs dimensions en ligne de commande en tapant la commande « whos ».
La fenêtre de répertoire courant :
Cette fenêtre permet de visualiser le repertoire
de travail dans lequel vous êtes. C’est ici que
sont chargés/enregistrés les scripts, les
modèles ou les données.
INSTRUCTION DE BASE
8
variable temporaire choisie
>>8/10 «Entrée» par Matlab
ans =
0.8000 4 décimales par omission
>>r = 8/10 «Entrée»
r=
0.8000 variable choisie par
l’utilisateur
>>r «Entrée»
r=
0.8000 r conserve la dernière valeur
calculée
9
valeur de r retenue
>>s=10*r «Entrée»
s= fonction dans Matlab
8
>>v=sin(s) «Entrée»
v=
; ne pas imprimer la
0.9894
réponse
>>u=[0:.1:10]; «Entrée»
>>z=sin(u);
>>u(7) «Entrée» faire varier u de 0 à
ans = 10 par saut de 0.1
0.6000
u est une variable indicée
dont on veut la 7ième
valeur 10
>>x=[0:.01:10];
>>y=sin(2*x);
>>plot(x,y),xlabel(‘x’),ylabel(‘sin(2x)’)
1
0.8
0.6
0.4
0.2
sin(2x)
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7 8 9 10
x 11
Opérations de base
Vecteurs
Matrices
12
Opérateurs arithmétiques :
Symbole Opération Forme Matlab
^ exponentiation : ab a^b
* multiplication : ab a*b
/ div. vers la droite : a/b a/b
\ div. vers la gauche : a\b a\b
+ addition : a + b a+b
- soustraction : a – b a-b
13
Variables spéciales :
ans variable temporaire contenant la réponse
la plus récente
eps spécifie la précision d’un nombre
i, j le nombre imaginaire (-1)1/2
Inf l’infini
NaN indique un résultat numérique non défini
pi le nombre
14
Commandes pour la gestion d’une session :
clc nettoie la fenêtre dite Command
clear enlève les variables de la mémoire
exist (‘nom’) détermine si un fichier existant ou
une variable a le nom ‘nom’
help nom recherche l’aide pour le mot-clé nom
lookfor nom recherche en ligne pour le sujet nom
quit arrête Matlab
who énumère les variables courantes en
mémoire
whos énumère les variables actuelles et
leur dimension 15
Création de vecteurs et de matrices
Vecteurs :
>>r = [2,4,10] «Entrée»
r=
2.0000 4.0000 10.0000 Crochets carrés
>>s = [2 4 10] «Entrée»
s=
2.0000 4.0000 10.0000 Séparateurs
vecteurs lignes
16
Vecteurs colonnes Vecteurs (suite)
>>g = [3;7;9] «Entrée»
g=
3
7 Séparateur pour les
9 lignes
ou
>>g = [3,7,9]´ «Entrée»
g=
3 Transposée
7
9
17
Création d’une matrice :
>>A = [2,4,10;16,3,7] «Entrée»
A=
2 4 10 Séparateurs
16 3 7
>>a = [1,3,5]; «Entrée»
>>b = [7,9,11]; «Entrée»
vecteur
>>c = [a b] «Entrée»
c=
2 vecteurs séparés par ,
1 3 5 7 9 11
ou un espace
>>D = [a;b] «Entrée»
D=
1 3 5 2 vecteurs lignes avec
7 9 11 séparateur de lignes 18
Transposée d’une matrice :
Matrice transposée : matrice dont on remplace les
lignes par les colonnes
2 6
A
3 5
T 2 3
A
6 5
>>A= [-2,6;-3,5]’ apostrophe
A=
-2 -3
6 5
19
Jeu des indices :
v(:) tous les éléments du vecteur v
v(2:5) du 2e au 5e élément
A(:, 3) tous les éléments de la 3e colonne
A(:,2:5) tous les éléments de la 2e à la 5e colonne
A(2:3,1:3) tous les éléments dans la 2e et 3e ligne et qui
sont aussi dans la 1ère à la 3e colonne
A( [1 4] ) = [ ] élimine les colonnes 1 et 4
20
Commandes pour les vecteurs et matrices :
find(x) Fournir une variable indicée contenant les
indices des éléments non nuls de x
[u, v, w] = find (A) Fournir des variables indicées contenant
les indices des lignes et colonnes des
éléments non nuls de la matrice A
length(A) Fournir le nombre d’éléments de A si A est un vecteur
ou la valeur max de m ou n si A est une matrice m x n
max(A) Fournir l’élément ayant la valeur algébrique max
si A est un vecteur ou un vecteur contenant l’élément
max dans chaque colonne de la matrice A
[x, k] = max(A) Même définition que max(A) sauf que le stockage
des valeurs max s’effectue dans le vecteur ligne
x et leurs indices dans le vecteur ligne k
... suite à la diapositive suivante 21
Commandes pour les vecteurs et matrices :
(... suite)
min(A) Même signification sauf qu’il s’agit des valeurs
[x, k] = min(A) min
size(A) Fournir un vecteur ligne contenant les dimensions
m x n de la variable indicée A
sort(A) Classer chaque colonne de la variable indicée A par
ordre croissant des grandeurs et fournir une variable
indicée ayant les mêmes dimensions que A
sum(A) Effectuer la somme des éléments de chaque colonne
de A et fournir le résultat dans un vecteur ligne
(Fin)
22
Opérations élément par élément :
Définitions à l’aide d’un exemple :
>>A = [6 , 3];
>>B = [4 , 8];
>>c = 2;
addition d’un scalaire
>>d = 5
>>A + c
ans
8 5 soustraction d’un scalaire
>>A – d
ans
1 -2
23
(... suite à la diapositive suivante)
(... suite)
>>A + B addition matricielle
ans
10 11
>>A – B soustraction matricielle
ans
2 -5
>>A .* B
ans
multiplication élément par élément
24 24
>>A ./ B
ans
6/4 3/8 division par la droite
(... suite à la diapositive suivante)
24
(... suite)
>>A .\ B
ans division par la gauche
0.6667 2.6667
>>A .^ c
ans
36 9
exponentiation
(Fin)
25
Opérations matricielles (multiplication) :
Posons que
A : matrice m x p
B : matrice p x n
Produit matriciel C = AB C = matrice m x n
IMPORTANT :
Nombre de colonnes de A = nombre de lignes de B
(... suite à la diapositive suivante)
26
(... suite)
Multiplication de 2 vecteurs :
>>u = [1, 2];
>>v = [-2, -1];
>>w = u * v’ 1 x n par n x 1
w=
-4 vecteur colonne
vecteur ligne
scalaire produit scalaire
ou produit intérieur
(... suite à la diapositive suivante)
27
(... suite)
>>y = u’ * v produit extérieur
y vecteur ligne 1 x n
-2 -1
-4 -2 vecteur colonne n x 1
matrice n x n
(Fin)
28
Création de matrices spéciales :
Commande Description
eye(n) Créer une matrice identité I n x n
eye(size(A)) Créer une matrice I de même dimension que A
ones(n) Créer une matrice n x n remplie de 1
ones(m,n) Créer une matrice m x n remplie de 1
ones(size(A)) Créer une matrice remplie de 1 et de
même dimension que A
zeros(n) Créer une matrice n x n remplie de 0
zeros(m,n) Même signification qu’avec ones(m,n)
zeros(size(A)) et ones(size(A)) sauf 1 remplacé par 0
29
Programmer sous
MATLAB
30
Programmer sous MATLAB
Scripts et fonctions.
Opérateurs de comparaison.
Opérateurs logiques.
Instructions de contrôle.
Scripts et fonctions :
Un script est un ensemble d’instruction
MATLAB qui joue le rôle de programme
principal. Si le script est écrit dans le fichier
de nom nom.m on l’exécute dans la fenêtre
MATLAB en tapant après « >> » nom .
32
Fonctions
function [vars1 ,…,varsm] = fonc(vare1,…varen)
Séquence d’instructions
Où : vars1 ,…,varsm sont les variables de sortie
de la fonction
vare1,…varen sont les variables d’entrée de la
fonction
Séquence d’instructions est le corps de la fonction.
33
Scripts et fonctions
Il est impératif que la fonction ayant pour nom
fonc soit enregistrée dans un fichier de nom
fonc.m sans quoi cette fonction ne sera pas
« visible » par MATLAB.
34
Opérateurs de comparaison
Les opérateurs de comparaison sont :
1. = = : égal à (x= =y)
2. > : stictement plus grand que (x>y)
3. < : strictement plus petit que (x<y)
4. >= : plus grand ou égal à (x>=y)
5. <= : plus petit ou égal à (x<=y)
6. ~ = : différent de (x~ =y)
35
Opérateurs logiques
Les opérateurs logiques sont :
1. & : et (x & y)
2. | : ou (x | y)
3. ~ : non (~ x)
36
Graphisme 2D
la commande plot
La commande plot permet de tracer un
ensemble de points de coordonnées (xi , yi),
i=1,…,N.
La syntaxe est plot(x,y) où x est le vecteur
contenant les valeurs xi en abscisse et y est
le vecteur contenant les valeurs yi en
ordonnée.
37
Graphisme 2D
la commande plot
Les vecteurs x et y doivent être de même
dimension mais il peut s'agir de vecteurs
lignes ou colonnes.
Par défaut, les points (xi , yi) sont reliés
entre eux par des segments de droites.
38
Graphisme 2D
la commande plot
Pour tracer le graphe de la fonction
h(x)=x sin(x)
>> x=[-2*pi:0.01:2*pi]; y = x.*sin(x);
>> plot(x,y)
>> x=[-2*pi:1:2*pi]; y = x.*sin(x);
>> plot(x,y)
39
Graphisme 2D
la commande plot
On peut spécifier la couleur d'une courbe, le
style de trait et/ou le symbole à chaque point
(xi , yi).
On donne un troisième paramètre d'entrée à la
commande plot qui est une chaîne de 3
caractères de la forme 'cst' :
c désignant la couleur du trait
s le symbole du point
t le type de trait.
40
Graphisme 2D
la commande plot
y -jaune . point - trait plein
m magenta o cercle : pointillé court
c cyan x marque x - pointillé long
r rouge + plus -. pointillé mixte
g vert * étoile < triangle (gauche)
b bleu s carré > triangle (droit)
w blanc d losange p pentagone
k Noir v triangle (bas) ^ triangle (haut)41
Graphisme 2D
la commande plot
Les valeurs par défaut sont c = b, s = . et t = -
ce qui correspond à:
Un trait plein
Bleu
Il n'est pas obligatoire de spécifier chacun des
trois caractères
La commande grid permet d'obtenir un
quadrillage de la figure
42
Graphisme 2D
la commande plot
Il est possible de tracer plusieurs courbes sur
la même figure en spécifiant plusieurs
tableaux x1, y1, x2, y2, ..., comme
paramètres de la commande plot.
Si l'on souhaite que les courbes aient une
apparence différente, on utilisera des options
de couleurs et/ou de styles de traits distincts
après chaque couple de vecteurs x, y.
43
Graphisme 2D
la commande plot
On trace sur l'intervalle [-5, 5] la fonction
x² cos(x) en trait plein bleu et la fonction x
cos(x) en trait pointillé rouge.
>> x = [-5:0.01:5];
>> y = x.^2.*cos(x); z = x.*cos(x);
>> plot(x,y,'b-',x,z,'r:');
44
Graphisme 2D
la commande loglog
la commande loglog(x,y) permet d'afficher le
vecteur log(x) contre le vecteur log(y).
La commande loglog s'utilise de la même
manière que la commande plot.
>> x = [Link]; y = x.^3;
>> loglog(x,y)
45
Améliorer la lisibilité d'une figure
Maquillage (habillage, légendes)
d’une figure :
La commande xlabel permet de mettre un
texte en légende sous l'axe des abscisses.
>>xlabel(' légende ')
La commande ylabel fait de même pour l'axe
des ordonnées. La commande title permet de
donner un titre à la figure.
>> title('le titre')
46
Améliorer la lisibilité d'une figure
On peut écrire un texte donné à une position
précise sur la figure grâce à la commande text.
text(posx , posy,' un texte ')
posx et posy sont les coordonnées du point.
La commande gtext permet quant à elle de
placer le texte à une position choisie sur la
figure à l'aide de la souris.
gtext('un texte ')
47
Améliorer la lisibilité d'une figure
>> P = 5;
>> t = [0:.01:2];
>> c = 12*exp(-2*t) - 8*exp(-6*t);
>> plot(t,c); grid
>> xlabel('temps en minutes')
>> ylabel('concentation en gramme par litre')
>> title(['evolution de la concentration du
produit ', num2str(P), ... ' au cours du
temps '])
>> gtext('concentration maximale')
48
Afficher plusieurs courbes
dans une même fenêtre
la commande hold on permet d'afficher
plusieurs courbes dans une même fenêtre
Pour rétablir la situation antérieure (le résultat
d'une nouvelle instruction graphique
remplace dans la fenêtre graphique le dessin
précédent) on tapera hold off.
49
Afficher plusieurs courbes dans
une même fenêtre
>> e = exp(1);
>> figure
>> hold on
>> fplot('exp',[-1 1])
>> fplot('log',[1/e e])
>> plot([-1:0.01:e],[-1:0.01:e])
>> grid
>> hold off 50
Afficher plusieurs courbes
dans une même fenêtre
la commande subplot. décompose une fenêtre
en sous-fenêtres et permet d'afficher une
figure différente sur chacune de ces sous-
fenêtres
>>subplot(m , n , i)
où
m est le nombre de sous-fenêtres verticalement
n est le nombre de sous-fenêtres
horizontalement;
i sert à spécifier dans quelle sous-fenêtre doit
s'effectuer l'affichage. 51
Afficher plusieurs courbes
dans une même fenêtre
>> figure
>> subplot(2,3,1), fplot('cos',[0 4*pi]),
title('cosinus'), grid
>> subplot(2,3,2), fplot('sin',[0 4*pi]), title('sinus'),
grid
>> subplot(2,3,3), fplot('tan',[-pi/3 pi/3]),
title('tangente'), grid
>> subplot(2,3,4), fplot('acos',[-1 1]), title('arc-
cosinus'), grid
>> subplot(2,3,5), fplot('asin',[-1 1]),
title('arc-sinus'), grid
>> subplot(2,3,6), fplot('atan',[-sqrt(3) sqrt(3)]),
title('arc-tangente'), grid
52
Any Questions?
53