Cours de Matlab

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 34

Introduction à MATLAB

Pr. Mamouni Ebi


[email protected]
Introduction

Le nom MATLAB est la contraction du terme anglais matrix


laboratory . Ce logiciel est spécialement conçu pour le calcul
scientifique et la manipulation de vecteurs et de matrices.
Le langage ne nécessite pas de compilation, puisqu’il est interprété.
Il est donc traduit en langage machine à l’exécution.
MATLAB est plus qu’un langage de programmation, puisqu’il s’agit
d’une console d’exécution. Il permet d’exécuter des fonctions,
d’attribuer des valeurs à des variables, etc. Il permet d’effectuer des
opérations mathématiques, de manipuler des matrices, de faire des
graphiques, etc.

Pr. Mamouni Ebi


Matlab est un logiciel de calcul numérique.
Matlab est développé et commercialisé par la
société américaine The MathWorks.

Pr. Mamouni Ebi


Environnement de développement

Eléments principaux :
 Command Window: Permet d’exécuter des commandes en dehors
de programme et affiche les résultats.
 Command History:Permet de visualiser les dernières commandes
exécutées.
 Workspace: Affiche l’ensemble des variables utilisés.
 Current Directory:Contenu du répertoire courant où doit se situer
vos programmes.
 Help extrêmement utile ! :Aide sur une commande :

Pr. Mamouni Ebi


·) MA TI AO �@(8]

.. x
>> I

, ->: -,

, -2 -, •, 1
,
' ,,
I ,,,.- .....
' , _�. ,I
,
-
'- ,
' .. ,
<
Cut,ont Olroctof"y Wo ..
>

r�
• 4
'
�:
,' --
_ ,'
,
_

Pr. Mamouni Ebi


Les variables

Toutes les variables sont des matrices . La logique


de l’indexation est (ligne x colonne).
Séparateurs :
 de ligne : point virgule ou return
 de colonne : virgule ou espace blanc.

Pr. Mamouni Ebi


Les variables sont déclarées lorsqu’elles sont
initialisées :

Pr. Mamouni Ebi


Pr. Mamouni Ebi
La variable « ans »

La variable ans contient la valeur du dernier calcul


si celui-ci n’a pas été attribué à une autre variable
(ne jamais l’utiliser !) :

Pr. Mamouni Ebi


Types numériques

 Dans MATLAB, la déclaration de types est


facultative. Les types sont déterminés lorsque les
variables sont initialisées. Ainsi, par défaut, toute
variable numérique est à virgule flottante de double
précision et les textes sont des chaînes de
caractères

Pr. Mamouni Ebi


Opérateurs mathématiques

Pr. Mamouni Ebi


Affichage

Attention, on ne voit que 4 chiffres après la virgule lorsque la


valeur d’une variable est affichée. Mais il y en a en réalité 16
par défaut . Pour changer cet affichage, on utilise la
commande format. Exemples avec π:

Pr. Mamouni Ebi


Les vecteurs

Pour accéder aux éléments d’un vecteur, il faut indiquer


l’index de leur emplacement entre parenthèses :

Pr. Mamouni Ebi


Si nous désirons accéder à plusieurs éléments pour travailler
sur un sous-vecteur, les deux points ( : ) sont utilisés de cette
manière :

Pr. Mamouni Ebi


La fonction size() permet de connaître la taille d’un vecteur ou
d’une matrice, selon les deux dimensions :

Puisque les vecteurs n’ont qu’une dimension, la fonction


length() est plus simple, car elle retourne la plus longue
dimension :

Pr. Mamouni Ebi


Les chaînes de caractères
Il est possible de concaténer des mots à l'aide des
parenthèses carrées :

Il n’est pas possible de mélanger directement les variables


numériques et les variables textes. Pour afficher une valeur
numérique dans un texte, il est nécessaire de la transformer
en texte (string) à l’aide de la fonction num2str() :

Pr. Mamouni Ebi


Le Workspace

Quelques commandes générales sur les variables :

Pr. Mamouni Ebi


Le langage

Fin de commande
Après chaque commande, il est nécessaire d’écrire un point-
virgule. Si le point-virgule est oublié, le script fonctionne, mais les
résultats de la commande sont affichés dans la fenêtre de
commandes :
L’instruction suivante :

affichera :

Pr. Mamouni Ebi


Alors que :

n’affiche rien. Ceci rend les programmes plus rapides et évite


de remplir inutilement la fenêtre de commande. Pour afficher
une valeur de manière propre, on préférera la commande
disp().

Pr. Mamouni Ebi


Les commentaires
Lorsque nous désirons écrire un commentaire dans
notre code, le signe de pourcentage (%) permet
d’écrire du texte que MATLAB ignorera à
l’exécution.

Pr. Mamouni Ebi


Opérateurs basiques

Les opérateurs basiques sont instinctifs. Ils s’utilisent autant


sur des variables scalaires que sur des matrices.

Pr. Mamouni Ebi


Lors d’une opération matricielle, les matrices doivent être de
dimensions cohérentes ! Les opérations éléments par
éléments seront étudiées plus tard. Pour transposer une
matrice ou un vecteur, l’opérateur ( ’ ) est utilisé :

Pr. Mamouni Ebi


Quelques exemples d’opérations sur les vecteurs :

Pr. Mamouni Ebi


Opérateur d'incrémentation

Le double point ( : ) est l'opérateur d'incrémentation dans


MATLAB [3].

Si le pas d’incrémentation n’est pas précisé, il est de 1


par défaut :

Pr. Mamouni Ebi


Les scripts
MATLAB permet d’écrire des programmes, que ce soit des scripts ou des fonctions
[2]. Nous nous limiterons présentement aux scripts. Un fichier script (script file) est
une suite de commandes MATLAB. Ces fichiers ont l’extension .m.
Pour créer un script : File > New > M-File.
Nous pouvons écrire dans un script toutes les commandes que nous désirons
exécuter
consécutivement, comme nous l’aurions fait dans l’invite de commandes.
Pour exécuter un script existant, il faut tout d’abord changer le répertoire courant en
sélectionnant le bon répertoire, puis taper le nom du script (sans extension) dans la
fenêtre de commande. Ou appuyer sur le bouton Run de l’Editeur.

Pr. Mamouni Ebi


Opérations et fonctions portant sur les scalaires

log(x):logarithme néperien de x,
log10(x):logarithme en base 10 de x,
exp(x):exponentielle de x,
sqrt(x):racine carrée de x (s'obtient aussi par x.^0.5),
abs(x):valeur absolue de x,
sign(x):fonction valant 1 si x est positif ou nul et 0 sinon.
round(x):entier le plus proche de x,
floor(x):arrondi par défaut,
ceil(x):arrondi par excès,
fix(x):arrondi par défaut un réel positif et par excès un réel négatif.
cos:cosinus,
acos:cosinus inverse (arccos),
sin:sinus,
asin:sinus inverse (arcsin),
tan:tangente,
Pr. Mamouni Ebi
atan:tangente inverse (arctan),
cosh:cosinus hyperbolique (ch),
acosh:cosinus hyperbolique inverse (argch),
sinh:sinus hyperbolique (sh),
asinh:sinus hyperbolique inverse (argsh),
tanh:tangente hyperbolique (th),
atanh:tangente hyperbolique inverse (argth).

Pr. Mamouni Ebi


Opérations et fonctions portant sur les vecteurs

Une particularité de MATLAB est de permettre d'effectuer des opérations de manière


globale sur les éléments d'un vecteur de type réel ou complexe sans avoir à manipuler
directement ses éléments. Si k est une variable scalaire et x un vecteur,
l'instruction k*x multiplie tous les éléments de x par k. Si x et y sont deux vecteurs de
longueur identique, l'instruction z = x+y (respectivement x-y) définit le vecteur z dont les
éléments sont z(i) = x(i) + y(i) (respectivement z(i) = x(i) - y(i)). On obtient un
vecteur z dont la i-eme composante est le produit (respectivement le quotient) de la i-
eme composante du vecteur x par la i-eme composante du vecteur y en effectuant
l'instruction z = x.*y (respectivement z = x./y). Attention à ne pas oublier le point!
La commande cross(x,y) permet de calculer le produit vectoriel des deux vecteurs x et y.
Il n'y a pas dans la version 5.1 de commande dédiée pour calculer le produit scalaire de
deux vecteurs. Il s'obtient grâce à l'instruction sum(x.*y). Dans les versions suivantes, la
commande dot(x,y) permet de calculer le produit scalaire des deux vecteurs x et y.

Pr. Mamouni Ebi


Il existe également quelques fonctions spécifiques aux vecteurs:
sum(x):somme des éléments du vecteur x,prod(x):produit des éléments du
vecteur x,max(x):plus grand élément du vecteur x,min(x):plus petit élément
du vecteur x,mean(x):moyenne des éléments du vecteur x,sort(x) :ordonne
les éléments du vecteur x par ordre croissant,fliplr(x):échange la position des
éléments du vecteur x.
>> x=[3 1 2];
>> sum(x)
ans =
6
>> prod(x)
ans =
6
>> max(x)
ans =
3

Pr. Mamouni Ebi


>> min(x)
ans =
1
>> sort(x)
ans =
1 2 3
>> fliplr(x)
ans =
2 1 3
>>
Citons enfin quelques fonctions logiques. Les commandes all et any servent
à tester si les éléments d'un vecteur sont nuls ou non. Si v est un vecteur de
valeurs numériques, all(v) retourne vrai (1) si tous les éléments du vecteur
sont différents de 0 et faux (0) si au moins un élément vaut 0. any(v) retourne
vrai (1) si au moins un élément du vecteur est différent de 0 et faux (0) si le
vecteur est composé exclusivement de 0.

Pr. Mamouni Ebi


Opérations et fonctions portant sur les matrices

Si les opérandes sont des matrices, les


opérations + (addition), (soustraction), * (multiplication), ^ (exponentiation),
sont alors les opérations matricielles usuelles. Ainsi A*B désigne le produit de
la matrice A par la matrice B, A+B désigne la somme de ces deux matrices
et A^2 le carré de la matrice A.
>> A=[1 2 3; 4 5 6]
A=
123
456
>> B = [1 1; 2 2; 3 3]
B=
11
22
33

Pr. Mamouni Ebi


>> C = A*B
C=
14 14
32 32
>> C^2
ans =
644 644
1472 1472
>>Si les dimensions des matrices A et B sont incompatibles avec l'opération matricielle,
MATLAB renvoi un message d'erreur:>> A+B

??? Error using ==> + Matrix dimensions must agree.


>>

Pr. Mamouni Ebi


Les fonctions matricielles les plus courantes sont:
det(A):renvoie le déterminant de la matrice carrée A.
eig(A):renvoie les valeurs propres (eigenvalues) de la matrice carrée A. Si l'on souhaite
également les vecteurs propres on exécutera [V,D] = eig(A) qui renvoie une matrice
diagonale D formée des valeurs propres de A et une matrice V dont les vecteurs
colonnes sont les vecteurs propres correspondant.
poly(A):renvoie les coefficients du polynôme caractéristique associé à la matrice
carrée A. On sera vigilant à l'ordre dans lequel sont rangés les coefficients: le premier
élément du vecteur est le coefficient du monôme de plus haut degré. Ainsi dans
l'exemple suivant il faut lire p(x) = x3 - 6 x2 - 72 x -27 , >> A = [1 2 3 ; 4 5 6 ; 7 8 0]; p =
poly(A)
p=
1 -6 -72 -27
inv(A):renvoie l'inverse de la matrice carrée A.
rank(A):renvoie le rang de la matrice carrée A.
trace(A):renvoie la trace de la matrice A.
expm(A):renvoie l'exponentielle matricielle de A.

Pr. Mamouni Ebi


34

Vous aimerez peut-être aussi