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
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.
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
>> 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
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
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.
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:
>>ones(3,2)
ans =
1 1
1 1
1 1
1
6
9
Dr N Bessaih 29
7. Operations sur les Matrices
Operations Arithmtiques:
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:
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 :
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:
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 .
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)
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