Vous êtes sur la page 1sur 14

TP 

: outils logiciels
CIP2

TP 0 : Initiations a Matlab

1- Intoduction
« Matlab » est un logiciel conçu pour les calculs numériques. Le nom « Matlab » est l’abréviation
des deux mots «  Matrix Laboratory » .Comme ce nom indique, Matlab est basé sur le traitement des
matrices. Autrement dit,Matlab manipule les données,les variables,les image,… comme étant des
matrices. Ce logiciel est developpé par la société américainne « mathworks » ( le site
www.mathworks.com). Le logiciel Matlab permet d’analyser les données , de developper les
algorithmes,de faire les calculs mathématiques , de faire des simulations et des modélisations des
différents systémes et de representer graphiquement les résultats obtenus.

Matlab est un logiciel permettant d’´ecrire des programmes. Il sera utilisé tout au long de
votre formation, soit pour exécuter des programmes déjà écrits par d’autres, ou bien pour réaliser des
prototypes de programmes. Quelle que soit l’utilisation que vous en aurez, il est important de savoir
manipuler ce logiciel afin qu’il soit une aide `a votre futur travail plutôt qu’un obstacle. L’objectif de ce
TP est de vous familiariser avec les bases de Matlab : présentation de l’interface, ´écriture de lignes de
code tr`es simples, et création de vos premiers programmes.

Lors de ce TP, que vous devez lire attentivement, vous devez écrire dans Matlab toutes
les lignes de code qui vous sont données afin de les tester, réaliser toutes les opérations demandées
ou suggérées, et répondre `a chaque question qui est posée.

2- Démarrage du « Matlab »

Pour démarrer «Matlab » il suffit un double clik sur l’icone Matlab . Une fenétre
appelée « fênetre de commandes » ( anglais : command window) apparait(figure 1).

TP préparé par Beji Mohamed Page 1


TP  : outils logiciels
CIP2

Figure 1. Fênetre de commandes

Le menu rassemble les principales fonctionnalités de Matlab, comme enregistrer le fichier,


ouvrir un fichier, voir les préférences, etc.

L’explorateur de fichiers permet de se déplacer sur le disque dur pour éditer ou exécuter
des programmes écrits en Matlab.

La zone de commande est la zone la plus importante : elle permet d’´ecrire des
commandes `a Matlab, et de visualiser leurs résultats.

L’historique permet de visualiser l’intégralités des commandes Matlab écrites depuis un


certain temps, afin d’y retrouver des éléments que l’on aurait oubli´es.

La zone des variables rassemble toutes les variables actuellement en mémoire de Matlab, et
permet de visualiser leur type, leur taille et leur contenu.

Le détail des fichiers affiche des d´etails sur le script sélectionné . C’est la zone la moins
importante. Si par accident vous fermiez une des zones, ou modifiez l’interface de Matlab et que vous
n’en étiez pas satisfait, vous pouvez revenir à la pésentation par défaut. Pour ce faire dans le menu
en haut, cliquez sur le bouton Layout, puis sur Default.

TP préparé par Beji Mohamed Page 2


TP  : outils logiciels
CIP2

Pour quitter Matlab, vous pouvez taper « quit » ou bien «  exit » mais il est conseillé d’eviter de
quitter Matlab directement par le boutton .

3- Opérations arithmétiques.
Matlab permet de faire les différentes opérations arithmétiques telles que l’addition, la
soustraction, la multiplication et la division.
Exemples :
Tapez :
» 2+3  <entrée>
ans =

On remarque que Matlab fait le calcul est affiche le résultat qui est automatiquement affecté à la
variable spécifique « ans ». On appel l’écriture « 2+3  » une commande ou une expression Matlab.
Essayer de taper les commandes suivantes et indiquer le rôle de chaque commande.
» 3-2 <entrée>
ans =

1
» 3*2 <entrée>
ans =

6
» 1/2 <entrée>
ans =

0.5000
» 2^3 <entrée>
ans =

8
» 2\1 <entrée>
ans =

0.5000
Que remarquez-vous pour ce qui concerne les commandes suivantes ?

TP préparé par Beji Mohamed Page 3


TP  : outils logiciels
CIP2
» 0/1 <entrée>
ans =

0
» 1/0 <entrée>
ans =

Inf
» 0/0 <entrée>
ans =

NaN
Pour la première commande, on remarque que le résultat est 0. Dans la deuxième le résultat est Inf
(infini) et pour la troisième expression le résultat est NaN qui signifie Not-a-Number ( c’est pas un
nombre).

4- Manipulation des variables


Lorsque nous avons tapé la commande 2+3, nous avons vu que Matlab affecte le résultat
automatiquement à la variable spécifique « ans ».  
Maintenaient taper la commande
» a=2+3  <entrée>
a=
5
Cette commande affecte le résultat de 2+3 à la variable a.
Exemple
» a=a+5  <entrée>
a=
10
» a=a*3  <entrée>
a=

30
- tapez la commande suivante :
» b=3 ;  <entrée>

»b <entrée>
b=

3
Quel est le rôle du « ; » ?
»c = a+b; <entrée>

»d = c/2; <entrée>

»who <entrée>
Your variables are:

a ans b c d
»whos <entrée>

Name Size Bytes Class Attributes

a 1x1 8 double
ans 1x1 8 double
b 1x1 8 double

TP préparé par Beji Mohamed Page 4


TP  : outils logiciels
CIP2
c 1x1 8 double
d 1x1 8 double

»clear b <entrée>

»who <entrée>
Your variables are:

a ans c d
La commande « who » est utilisé pour afficher les variables stocké dans le Workspace (espace de
travail)). La fonction « whos » donne plus de détails sur ces variables. La fonction « clear » sert pour
effacer une variable. Lorsqu’on tape « clear b » puis on tape « who », on remarque que la variable « b »
disparait car elle est effacée.

5- Les variables spécifiques


Certaines variables existent déjà sous MATLAB et il est fortement déconseillé de les utiliser
comme des variables quelconques.ces variables sont : pi, eps, i, j.
» pi   <entrée>
ans =
3.1416
» eps  <entrée>
ans =
2.2204e-16
» i  <entrée>
ans =
0.0000 + 1.0000i
» j  <entrée>
ans =
0.0000 + 1.0000i
»realmax  <entrée>
ans =
1.7977e+308
»realmin  <entrée>
ans =
2.2251e-308

6- L’affichage
» x=2/3 ; <entrée>

» disp(x)  <entrée>
0.6667
» format long  <entrée>

» disp(x)  <entrée>
0.666666666666667
» format short <entrée>

»x     <entrée>
x=

0.6667
» format bank <entrée>

TP préparé par Beji Mohamed Page 5


TP  : outils logiciels
CIP2
»x     <entrée>
x=

0.67
» format rat <entrée>

» disp(x)  <entrée>
2/3

7- Les fonctions mathématiques


Matlab contient les fonctions mathématiques usuelles telles que cos, sin, log,…etc.
Exemples :
»cos( pi)   <entrée>
ans =

-1
» sin(pi)   <entrée>
ans =

1/8165619676597685
» tan(pi)   <entrée>
ans =

-1/8165619676597685
» log(2)   <entrée>
ans =

1588/2291
» exp(pi)   <entrée>
ans =

2431/329
» sqrt(4)   <entrée>
ans =

2
» gcd(6,9)   <entrée>
ans =

3
» lcm(4,3)   <entrée>
ans =

12
Pour savoir le rôle et comment utiliser une fonction, on utilise la fonction « help ».
Exemple
» help sqrt <entrée>
sqrt Square root.
sqrt(X) is the square root of the elements of X. Complex
results are produced if X is not positive.

See also sqrtm, realsqrt, hypot.

Overloaded methods:

TP préparé par Beji Mohamed Page 6


TP  : outils logiciels
CIP2
codistributed/sqrt
gpuArray/sqrt

Reference page in Help browser


doc sqrt
» help sinh <entrée>
sinh Hyperbolic sine.
sinh(X) is the hyperbolic sine of the elements of X.

See also asinh.

Overloaded methods:
codistributed/sinh
gpuArray/sinh

Reference page in Help browser


doc sinh
» help gcd <entrée>
gcd Greatest common divisor.
G = gcd(A,B) is the greatest common divisor of corresponding elements
of A and B. The arrays A and B must contain integer values and must be
the same size (or either can be scalar). gcd(0,0) is 0 by convention;
all other GCDs are positive integers.

[G,C,D] = gcd(A,B) also returns C and D so that G = A.*C + B.*D.


These are useful for solving Diophantine equations and computing
Hermite transformations.

Class support for inputs A,B:


float: double, single
integer: uint8, int8, uint16, int16, uint32, int32, uint64, int64

See also lcm.

Overloaded methods:
sym/gcd

Reference page in Help browser


doc gcd

8- Calcul complexe
Matlab manipule les variables complexes facilement :
Exemple :
» z1=2+3*i <entrée>
z1 =
2 + 3i
» z2=3+sqrt (-1)*5 <entrée>
z2 =
3 + 5i
Toutes les opérations arithmétiques vues précédemment s’appliquent normalement sur les
variables complexes.
» sqrt(z1) <entrée>
ans =
2312/1381 + 646/721i
» exp(i*pi) <entrée>

TP préparé par Beji Mohamed Page 7


TP  : outils logiciels
CIP2
ans =
-1 + 1/8165619676597685i
Cependant, il existe des fonctions spécifiques pour faire les calculs complexes, par exemple :
» real(z1) <entrée>
ans =
2
» imag(z2) <entrée>
ans =
5
» conj(z1) <entrée>
ans =
2 - 3i
Un nombre complexe peut être représenté par ses coordonnées polaires (z= r eiθ)
» abs(z2) <entrée> % le module de z2
ans =
2449/420
» angle(z2) <entrée> % la phase de z2
ans =
848/823

9- Les vecteurs :
Création de vecteurs par les commandes suivantes :
» v1 = [ 1 3 0 -1 5 ] <entrée>
v1 =

1 3 0 -1 5
» v2 = [ 2,4,8,-3,7,-2,1] <entrée>
v2 =

2 4 8 -3 7 -2 1
» v3 = [ ] <entrée>
v3 =

[]
» v4 = [ 1 ;3 ;0 ;-1; 5 ] <entrée>
v4 =

1
3
0
-1
5
» v5 = [2 4 8 -3 7 -2 1] <entrée>
v5 =

2
4
8
-3
7
-2
1

TP préparé par Beji Mohamed Page 8


TP  : outils logiciels
CIP2

Création de vecteurs à partir d’autres vecteurs :


» a = [1 2 3]; <entrée>

» b = [4 5]; <entrée>

» c = [a -b] <entrée>
Error using -
Matrix dimensions must agree.
» a = [ a 0 -1] <entrée>
a=

1 2 3 0 -1

Noter ces deux règles importantes :


 Les éléments du vecteurs sont cités entre deux crochet et non pas des parenthèses.
 Ces éléments sont séparés par un espace ou par une virgule.
Création de vecteurs en utilisant les deux points « : » :
Exemple :
» x = 1 : 10 <entrée>
x=

Columns 1 through 8

1 2 3 4 5 6 7 8

Columns 9 through 10

9 10
» x = 1 : 0.5 : 4 <entrée>
x=

1 3/2 2 5/2 3 7/2 4


» x = 10 : -1 : 1 <entrée>
x=

Columns 1 through 8

10 9 8 7 6 5 4 3

Columns 9 through 10

2 1
»x= 5:1 <entrée>
x=

Empty matrix: 1-by-0


Que remarquez-vous ? Expliquez ?
Création de vecteurs en utilisant la commande «linspace» :

TP préparé par Beji Mohamed Page 9


TP  : outils logiciels
CIP2
» linspace(0 , pi/2 ,10)
ans =

Columns 1 through 8

0 355/2034 355/1017 355/678 710/1017 1775/2034 355/339


551/451

Columns 9 through 10

1420/1017 355/226
Permet de créer un vecteur qui contient 10 éléments équidistants entre 0 et pi/2
La transposition « ‘ » :
» x = 1 : 5 <entrée>
x=

1 2 3 4 5

» x = x’ <entrée>
x = x’
|
Error: The input character is not valid in MATLAB statements or expressions.

» y = [ 1 4 8 0 -1 ]’ <entrée>
y = [ 1 4 8 0 -1 ]’
|
Error: The input character is not valid in MATLAB statements or expressions.

Les indices :
On peut repérer un élément d’un vecteur par son indice,
» r = [ 2 8 -5 6 -1 0 3] <entrée>
r=

2 8 -5 6 -1 0 3

» r (3) <entrée>
ans =
-5

Permet d’afficher le 3eme élément du vecteur r


» r (2 :4) <entrée>
ans =
8 -5 6
» r (1 :2 :7) <entrée>
ans =
2 -5 -1 3

» r ([ 1 7 2 6 ]) <entrée>
ans =
2 3 8 0
» r (2)=-7 <entrée>

TP préparé par Beji Mohamed Page 10


TP  : outils logiciels
CIP2
r=
2 -7 -5 6 -1 0 3
On peut utiliser le vecteur vide pour éliminer des éléments du vecteur, par exemple :
» r ([ 1 7 2 ]) = [ ] <entrée>
r=
-5 6 -1 0

Noter que :
 L’indice est toujours citer entre parenthèses et commence par 1
 L’indice est un scalaire ou un vecteur (x(1.7) est égale a x(1))
On peut aussi repérer un élément par la commande « find », exemple
» r = [ 2 8 -5 6 -1 0 3] <entrée>
r=
2 8 -5 6 -1 0 3
» find(r) <entrée>
ans =
1 2 3 4 5 7

» find(r>4) <entrée>
ans =
2 4

» find (r<1) <entrée>


ans =
3 5 6

Operations élément par élément  :


Matlab contient des commandes qui permettent de faire des calculs élément par élément. Ces
opérations sont :
 Produit élément par élément : « .* »
 division élément par élément : « ./ »
» v = [ 2 4 20 5] ; <entrée>

» w = [1 3 0 -4] ; <entrée>

» q=v*w <entrée>
Error using *
Inner matrix dimensions must agree.
» z=v*w’ <entrée>
z=v*w’
|
Error: The input character is not valid in MATLAB statements or expressions.
» p=v.*w  <entrée>
p=

2 12 0 -20
» d=v./w ; <entrée>

» d=v^2 ; <entrée>
Error using ^
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.
» d=v.^2 ; <entrée>

TP préparé par Beji Mohamed Page 11


TP  : outils logiciels
CIP2
Que remarquez – vous ? Expliquez ?

10- Les matrices :


Matlab permet de manipuler les matrices comme étant des variables. Les éléments de la même
ligne sont séparés par espace et les lignes sont séparées par des points virgules « ; ».
» a=[5 7 2; -6 8 -3] <entrée>
a=

5 7 2
-6 8 -3
» a=a’ <entrée>
a=a’
|
Error: The input character is not valid in MATLAB statements or expressions.
» x = 0 : 30 : 180 <entrée>
x=

0 30 60 90 120 150 180


» m = [ x’ sin(x*pi/180)] <entrée>
m = [ x’ sin(x*pi/180)]
|
Error: The input character is not valid in MATLAB statements or expressions.
On peut créer des matrices à partir d’autres matrices.
» a = [1 2; 3 4]; <entrée>

» x = [5 6]; <entrée>

» a = [a; x] <entrée>
a=

1 2
3 4
5 6
Pour créer une matrice à partir d’autre matrice il faut faire attention à la taille des matrices.
» a = [10 20 30 ; 31 41 51 ;4 8 12]; <entrée>

» x = [5 6]; <entrée>

» a = [a; x] <entrée>
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
Indexation des éléments d’une matrice
On peut repérer les différents éléments de la matrice en donnant sa position par rapport aux lignes
et sa position par rapport aux colonnes.
» a(3,3) <entrée>
ans =

12
» e= a(2,1) <entrée>
e=

31
» a(1,3)=-11 <entrée>
» a(2) <entrée>
» a(5) <entrée>

TP préparé par Beji Mohamed Page 12


TP  : outils logiciels
CIP2
» a(3,[1 2 3]) <entrée>
» a(3,1:1:3) <entrée>
» a(3,:) <entrée>
Comparer les trois dernières commandes.
» a(3,1:2:3) <entrée>
» a(:,1) <entrée>
» a(2:3,1) <entrée>
» a([3 2 1],1) <entrée>
» a(3:-1:1,1) <entrée>
» a([3 1 2],1) <entrée>
Extraction des sous-matrices à partir d’une matrice
Exemples :
» A = [10 11 12 13 ; -5 6 0 7 ; 3 9 4 2] <entrée>
» B = A(1:2,1:2) <entrée>
» C = A(1:3,2:3) <entrée>
» D = A(:,1:3) <entrée>
» D = A(:,3:-1 :1) <entrée>
Calcul matricielle
» a = [1 2 3;4 5 6; 7 8 9] <entrée>
» b = [ 7 9 ; 12 23] <entrée>
» c = a*b <entrée>
»d=[1 0; 3 4; 8 6] <entrée>
»a*d <entrée>
»a.*d <entrée>
» e=[11 22 33;1:3;9:-2:5] <entrée>
»a.*e <entrée>
» a./e <entrée>
Des commandes matricielles spécifiques
Exemple : (Utilisez la fonction help pour avoir l’aide sur une fonction)
» a = [10 20 30;40 50 60; 70 80 90] <entrée>
» b = [ 17 19 ; 12 23] <entrée>
» help size <entrée>
» size(a) <entrée>
» size(b) <entrée>
» length(a) <entrée>
» diag(a) <entrée>
» trace(a) <entrée>
» det(a) <entrée>
» sum(a) <entrée>
» max(a) <entrée>
» sort(a) <entrée>
» inv(a) <entrée>
» a*inv(a) <entrée>
Des matrices particulières :
» ones(3) <entrée>
» ones(2,4) <entrée>
» zeros(3,4) <entrée>
» eye(4) <entrée>
» diag([1 8 4]) <entrée>
» rand(3,2) <entrée>

11- Les opérateurs de comparaison et logiques :


MATLAB représente la constante logique "FAUX" par 0 et la constante "VRAIE par 1.
Exemple
» A= [1 -5 7 ; -3 8 2] <entrée>
» A>0 <entrée>
Les opérateurs de comparaison sont:
= : égal à (x == y)

TP préparé par Beji Mohamed Page 13


TP  : outils logiciels
CIP2

> : strictement plus grand que (x > y)
< : strictement plus petit que (x < y)
> plus grand ou égal à (x >= y)
:
=
< plus petit ou égal à (x <= y)
:
=
~ différent de (x ~ = y)
:

Les opérateurs logiques sont:  
& e
:
  t (x & y)
| o
:
  u (x | y)
~ n
:
on (~ x)
Exemples :
» v= [ 8 3 4 5 -2 0 7 -9]
» v (v==8) = 80
» v (v <= 1) = 2
» w= v (v ~= 2 & v > 6 )

TP préparé par Beji Mohamed Page 14