Vous êtes sur la page 1sur 44

Introduction a MATLAB

Master 1 Genie-Civil
Universite Saad Dahlab 2017-2018

Dr N Bessaih 1
1. Introduction
Matlab (MATrix LABoratory) est un logiciel pour le calcul scientque, orient
vers les vecteurs et les listes de donnes. Matlab est un langage interprt,
chaque ligne dun programme Matlab est lue, interprte et excute.
Lancement de Matlab:
Une fois Maltlab est lance, on obtient diffrentes fentres.

Dr N Bessaih 2
1. Introduction
The Command Window
The Command History
The Workspace
The Current Directory
The Help Browser

Dr N Bessaih 3
1.1 Command Window
Cette fentre c est pour faire enterrer des variables, excuter
des fonctions et M-files

Dr N Bessaih 4
1.2 Command History
Dans cette fentre, nous pouvons afficher des fonctions prcdemment
utilises et copier et excuter des lignes slectionnes.

Dr N Bessaih 5
1.3 Workspace (Espace de travail)
Lespace de travail MATLAB est constitu de lensemble des variables cr
lors dune session MATLAB et stocks dans la mmoire.

Dr N Bessaih 6
1.4 Current Directory
Oprations sur les fichiers MATLAB utilisent le rpertoire en
cours.
Nimporte quel fichier que vous souhaitez excuter doit tre
dans le rpertoire en cours.

Dr N Bessaih 7
1.5 Help Browser
Matlab ore une aide en ligne trs complte.

Dr N Bessaih 8
Dr N Bessaih 9
2.0 Matlab comme une Calculatrice
>> 1+2*3 >> x = 1+2*3 >>4*x
ans = 7 x=7 ans=28
Operateur de base
Symbol Opration Exemple
+ Addition 1+2
- Soustraction 3-1
* Multiplication 2*3
/ Division 5/2

Pour quitter Matlab:


Taper Quit dans la fentre command window
File Exit

Dr N Bessaih 10
3. Manipulation de variables
MATLAB gre les nombres entiers, rels, complexes, les chanes de caractres ainsi
que les tableaux de nombres de faon transparente. Il n'est pas utile de dclarer le
type de la variable que l'on manipule, y compris les tableaux. Par ailleurs, toutes
les variables utilises restent prsentes en mmoire et peuvent tre rappeles.
Ainsi les instructions suivantes, dclarent les variables lors de leur affectation :

Dr N Bessaih 11
3. Manipulation de variables
Remplacer les variables:

Message derreur:

Dr N Bessaih 12
3. Manipulation de variables
Hirarchie des oprations:
>> 1+2*3
ans =
7
>> (1+2)*3
ans =
9
Ajouter les parenthses donne diffrents rsultats.

Hirarchie des oprateurs mathematiques

Precedence Operateurs Mathematiques


Premier Le contenu des parentheses est calcule en premier
Deuxieme Les exponentielles, de gauche vers la droite
Troisieme Les multiplications et les divisions, de gauche vers la droite
Quatrieme Les additions et les soustractions, de gauche vers la droite

Dr N Bessaih 13
3. Manipulation de variables
1 4 6
2
+
2+3 5 7
Sur Matlab, on crit:
>> 1/(2+3^2)+4/5*6/7
ans =
0.7766
>> 1/(2+3^2)+(4/5)*(6/7)
ans =
0.7766

Si on omet les parenthses


> 1/2+3^2+4/5*6/7
ans =
10.1857

>> 1/2+(3^2)+(4/5)*(6/7)
ans =
10.1857

Dr N Bessaih 14
3. Manipulation de variables
Grer Le Workspace
Le contenu du workspace persiste entre plusieurs executions. Il est possible
que les resultats dun probleme affecte les resultats dun autre. Il serait donc
recommende dutiliser la commande clear au debut de chaque calcul
idependent.
Entrees multiples
Il est possible dentrer des entres multiples par ligne. On utilise (;) ou (,).
>> a=7;b=cos(a),c=cosh(a)

b=
0.7539
c=
548.3170

Pour effacer le Command Window on utilise


>>clc

Dr N Bessaih 15
5. Fonctions Mathematiques
Il existe dans Matlab plusieurs fonctions prdfinies pour des calculs techniques.
help elfun et help specfun donne la liste des fonctions built-in dans Matlab.
Le Tableau suivant donne quelques fonctions couramment utilises. x et y peuvent tre des nombres , des
vecteurs ou des matrices.

Dr N Bessaih 16
5. Fonctions Mathmatiques

Exemple: y = sin + 10 avec a=5;x=2 et y=8


>> a=5;x=2;y=8;
>> y=exp(-a)*sin(x)+10*sqrt(y)
y=
28.2904
Remarque: i et j sont pre-definis comme -1, mais i et j sont souvent utilises
dans les boucles. Pour eviter toute confusion , il est recommande dutiliser ii
et jj.

Dr N Bessaih 17
5. Graphique 2D
Une courbe 2D est reprsent par une srie dabscisses et une srie
dordonnes. La fonction Matlab sappelle plot.
Linstruction Plot.
Lutilisation la plus simple de linstruction plot est la suivante
Plot (vecteur d abscisses, vecteur dordonnes).
Les vecteurs peuvent tre indiffremment ligne ou colonne, lessentile ils
doivent tre du mme type et dimension.

Exemple:
>> x=[1 2 3 4 5 6];
>> y= [3 -1 2 4 5 1 ];
>> plot(x,y)
>>

Dr N Bessaih 18
5. Graphique 2D
Superposer plusieurs courbes.
>> x=[1 2 3 4 5 6 7 8 9];
>> y=[1 6 8 12 14 16 20 15 16];
>> z=[9 4 12 3 15 2 7 22 5];
>> plot(x,y,x,z)

Dr N Bessaih 19
5. Graphique 2D
Attribut des Courbes:
Matlab attribut les couleurs par dfaut. Il est possible de modifier la couleur, le
style du tarit et des points, en spcifiant aprs chaque couple (abscisse,
ordonne) une chaine de caractres (entre ) pouvant contenir les codes suivant:

>>plot(x,y,'rd',x,z,'bs')

Dr N Bessaih 20
5. Graphique 2D
Titre:
>> plot(x,y,x,z)
>>title(Graphe 1)
Labels:
>> plot(x,y,x,z)
>>xlabel(Abscisse)
>>ylabel(Ordonee)

Legendes:
>> plot(x,y,x,z)
>>legend(y,z)

Dr N Bessaih 21
6 Matrices
6.1 Introduction
Une matrice m lignes et n colonnes est un tableau rectangulaire de m n
nombres, rangs ligne par ligne. Il y a m lignes, et dans chaque ligne n
nombres.
La disposition gnrale des coefficients d'une matrice A de taille (m,n) est
la suivante.

Les coefficients a i , j avec i = j sont dits diagonaux, ceux avec i j sont dits
extra-diagonaux.

Dr N Bessaih 22
6 Matrices
6.2 Dclarer et Manipuler des Matrices:

6.2.1 Vecteurs:
Un vecteur ligne se dclare entre crochet en sparant les lments avec des
espaces ou des virgules.
>> v=[1 2 4]
v=
1 2 4
>> w=[1,2,4]
w=
1 2 4
Pour un vecteur colonne le sparateur est le point virgule.
>> z=[1;2;4]
z=
1
2
4

Dr N Bessaih 23
6 Matrices
6.2 Dclarer et Manipuler des Matrices:
6.2.1 Vecteurs:
Un vecteur ligne est converti en vecteur colonne en utilisant loperateur transpos
dnot par lapostrophe ().
>> v=[1 2 4]'
v=
1
2
4

Pour crer un vecteur dune manire automatique, en utilise deux points (:).

>> v=1:4
v=
1 2 3 4
>> v=1:2:10
v=
1 3 5 7 9

Dr N Bessaih 24
6 Matrices
6.2.2 Matrices:
Les matrices se dclarent comme les vecteurs, en sparant les colonnes par espaces
et les lignes par point-virgule.
>> A=[1 2 5;3 6 8;4 7 9]
A=
1 2 5
3 6 8
4 7 9
Une fois la matrice entree , elle est stocke automatiquement dans le Workspace.

Si on veut afficher un element particulier de la matrice , par exemple deuxieme ligne


premiere colonne , on ecrit:
>> A(2,1)
ans =
3

Dr N Bessaih 25
6 Matrices
Pour changer l lment A(3,3) on crit:
>> A(3,3)=0
A=
1 2 5
3 6 8
4 7 0
Pour extraire une ligne particuliere ou colonne particuliere on utilise:
A(m:n,k:l)...ligne m n et colonne k l.
>> A(:,2:3)
ans =
2 5
6 8
7 0

Dr N Bessaih 26
6 Matrices
>> A(2,:)
ans =
3 6 8
Pour extraire des sous matrices:
>> B=A([2 3],[1 2])
B=
3 6
4 7
Pour inter -changer la ligne 1 et 2.
>> C=A([2 1 3],:)
C=
3 6 8
1 2 5
4 7 0
Pour extraire la ligne 1 seulement:
>> A(1,:)
ans =
1 2 5
Dr N Bessaih 27
6 Matrices
Pour determiner la dimension dune matrice on utilze la commande size:
>> size(A)
ans =
3 3
On peut generer des matrices elementaires avec les commandes suivantes:

eye(m,n): Donne une matrice de dimension (m,n) avec 1 sur la diagonal.


>>eye(4,3)
ans =
1 0 0
0 1 0
0 0 1
0 0 0
Zeros (m,n): Donne une matrice (m,n) avec tous les elements egales a zero.
>> zeros(3,2)
ans =
0 0
0 0
0 0
Dr N Bessaih 28
6 Matrices
ones(m,n): Donne une matrice de dimension (m,n) avec tous les elements egales a 1.

>>ones(3,2)
ans =
1 1
1 1
1 1

Diag(A) Extrait la diagonale de la matrice A.

>> A=[1 2 5;3 6 8;4 7 9]


A=
1 2 5
3 6 8
4 7 9
>> diag(A)
ans =

1
6
9
Dr N Bessaih 29
7. Operations sur les Matrices
Operations Arithmtiques:

A+B=B+A: Addition de deux matrices, les deux matrices doivent tre


de mme dimension,
A*B: Multiplication de deux matrices, nombre de colonnes de A doit
tre gale aux nombre de lignes de B.
A^2: Matrice doit tre carre.
*A =A* multiplication de la matrice par un scalaire.
.*: multiplication lment par lment.
./: Division lment par lment.
.^:exponentiation lment par lment.

Dr N Bessaih 30
7. Operations sur les Matrices
>> C=A.*B
>> A=[1 2 3;4 5 6;7 8 9]
A=
C=
1 2 3
10 40 90
4 5 6
160 250 360
7 8 9
490 640 810
>> B=[10 20 30;40 50 60;70 80 90]

B=
>> D=A.^2
10 20 30
D=
40 50 60
70 80 90
1 4 9
16 25 36
49 64 81

Dr N Bessaih 31
8 Rsolution des systmes d quations
linaires
La rsolution des systmes linaires est 1. En utilisant la fonction matrice
frquemment rencontre en gnie civil. inverse (inv).
Ax=b peut tre crit comme x=A-1b. >> A=[1 2 3;4 5 6;7 8 0];
>> b=[1;1;1];
>> x=inv(A)*b
x=
-1.0000
1.0000
-0.0000
On peut aussi utiliser loperateur
backslash (\).
On peut rsoudre ce systme avec
Matlab en utilisant: >> x=A\b
x=
-1.0000
1.0000
-0.0000

Dr N Bessaih 32
9.0 Fonctions sur les Matrices

Dr N Bessaih 33
10 Programmer avec Matlab
M-File scripts
M-File Function
10.1 M-File Scripts
Un script est un fichier externe qui contient une squence dinstructions
Matlab. Les fichiers scripts ont une extension .m .
Les Fichiers M-Files peuvent tre des scripts qui simplement excute une
srie dinstructions Matlab, ou ils peuvent tre des Fonctions qui acceptent
des donns dentr (arguments) et qui produisent un ou plusieurs rsultats.
Exemple:
Rsoudre le systme d quations suivant:

Dr N Bessaih 34
10. Programmer avec Matlab
A partir de lediteur de Matlab:
Faire entrer les Lignes de Programmes Suivantes:

Sauvegarder le fichier; exemple1.m


Excuter le Fichier : Debug Run
Dans le command window:
>> exemple1
x=
-0.5000
1.5000
-0.5000
Apres excution du script, les variables (A,b et x) reste dans le workspace,
pour les voir on utilise whos

Dr N Bessaih 35
10. Programmer avec Matlab
>> whos
Name Size Bytes Class Attributes

A 3x3 72 double
b 3x1 24 double
x 3x1 24 double
Inconvenient des scripts:
Toutes les variables crer dans le script sont ajoutes au workspace:
Les variables qui existent dj dans le worspace pourront tre remplaces.
L excution du script pourrait tre affecte par l tat des variables dans le
workspace.
Il est donc recommande dutiliser des fonctions M-file que des scripts.

Dr N Bessaih 36
10. Programmer avec Matlab
10.2 Fonctions:
Les fonctions sont des programmes (routines) qui acceptent des input arguments
et qui donnent des outputs arguments. Chaque fichier Fonction (M-file function)
a son propre espace dans le workspace de Matlab.
Syntaxe de La Fonction
La notion de fonction existe sous Matlab. Sa syntaxe est la suivante :

function [args1,args2,...] = nomfonction(arge1,arge2,...)


instructions

args1,args2,... sont les arguments de sortie de la fonction et peuvent tre de


n'importe quel type
arge1,arge2,... sont les arguments d'entre de la fonction et peuvent tre de
n'importe quel type
instructions est un bloc d'instructions quelconque devant affecter les arguments
de sortie args1,args2,...
Lorsqu'il n'y a qu'un seul argument de sortie, on peut utiliser la syntaxe plus
simple :
function args = nomfonction(arge1,arge2,...)
Dr N Bessaih 37
10. Programmer avec Matlab
Exemple:

Input pour un script:


Quand un script est excut, les variables utilise par les calculs doivent avoir
une valeur. Celles-ci peuvent tre donnes de trois manires.
1. La variable est dfinie dans le script.
2. La variable est dfinie dans le command prompt.
3. La variable est entr quand le script est excut.

Dr N Bessaih 38
10. Programmer avec Matlab
Input pour un script:
Pour la troisime manire on utilise la commande input.

Dr N Bessaih 39
10. Programmer avec Matlab
Output dun script:

Matlab affiche automatiquement les rsultats dans le commande window. En


plus de ca, il y a deux commandes qui peuvent tre utilises pour afficher les
rsultats.

Dr N Bessaih 40
11. Contrle de flux
Dans cette section, on indique les principales syntaxes permettant de contrler le flux d'excution d'une
application Matlab. On les utilise essentiellement en mode programmation .

5.1 Oprateurs boolens


Avant de dcrire la syntaxe du test sous Matlab, indiquons les principaux oprateurs de relation ainsi
que les oprateurs boolens qu'utilise Matlab.

< strictement infrieur


<= infrieur ou gal
> strictement suprieur
>= suprieur ou gal
== gal
~= diffrent de
& et logique (and)
| ou logique (or)
~ non logique (not)

Le rsultat d'un test est un boolen qui, sous Matlab, prend la valeur 1 pour vrai et 0 pour faux. Par
exemple, on a les rsultats suivants :
r=1<2
r= 1
r=~((1>2)|(0~=0)) (traduction Matlab de l'expression logique : non (1>2 ou 0 0))
r= 1

41
11. Contrle de flux
Syntaxe du test (if)

La fonction if peut tre utilise seule ou conjointement avec else


et else if

if expression boolenne if expression boolenne if expression boolenne

Instructions instructions instructions


end else elseif expression boolenne
instructions instructions
end else
instructions
end

42
11. Contrle de flux
5Syntaxe de boucle
Syntaxe for
La boucle for excute une instruction un certain nombre de fois. Si le pas nest
pas prcis, par dfaut il vaut 1.
La syntaxe est :
for indice=debut:pas:fin (si le pas n'est pas prcis, par dfaut il vaut 1)
instructions
end
Exemple:

for n = 2:6
x(n) = 2 * x(n - 1);
end

43
11. Contrle de flux
Syntax While
The while loop executes a statement or group of statements repeatedly as long as the
controlling expression is true (1). Its syntax is
La boucle while rpte l excution d une instruction ou un groupe dinstructions tant
que la condition est vrai.
while expression
instruction
end

n = 1;
while prod(1:n) < 1e100
n = n + 1;
end

Pour sortir d'un test ou d'une boucle, on utilise la commande break (voir l'aide en
ligne).

44