Vous êtes sur la page 1sur 42

Ecole Nationale Des Sciences Applique de Khouribga

Initiation au logiciel Matlab

Pr. Abdelkabir LAHRECH

Anne 2011-2012
1

MATLAB
MATLAB signifie MATrix LABoratory. Cest un logiciel de calcul numrique cr en 1984. Il permet de faon interactive de faire des calculs matriciels; de simuler des systmes; danalyser des donnes; de visualiser les rsultats en 2D et 3D MATLAB inclut un ensemble de fonctions (fichiers .m) Plusieurs fonctions prdfinies pour analyser et reprsenter des donnes MATLAB peut tre intgr avec du code C ou FORTRAN ;
2

MATLAB
En MATLAB, il existe deux modes de fonctionnement : mode interactif : MATLAB excute les instructions au fur et mesure quelles sont donnes par lutilisateur mode excutif : MATLAB excute ligne par ligne un programme en langage MATLAB crit dans un fichier .m Fichiers .m : ce sont des programmes ( en langage MATLAB (crits par lutilisateur) ; Fichiers .dat : ce sont des fichiers de donnes en langage MATLAB Un programme est une suite dinstructions Les instructions contiennent des oprateurs, des mots-clefs ou des fonctions

Dmarrer MATLAB
cliquer sur licne Matlab sur le bureau ou dans le groupe Matlab du menu Dmarrer/Programmes. voici ce que vous devez voir apparatre

Se reprer dans lenvironnement de travail de MATLAB


dossier travail

Donnes

fentre de commande ou espace de travail

Les instructions sont excutes au fur et mesure quelles sont entres par l utilisateur Historique des commandes soit sous forme de squences dexpressions ou scripts enregistres dans des fichiers-texte appels m-files et excutes depuis la fentre de commande ;
5

Commandes systme
pwd : nom du rpertoire courant cd : changer de rpertoire dir, ls : contenu du rpertoire courant mkdir : crer un nouveau rpertoire delete : effacer un fichier copyfile : copier un fichier

Aide en ligne sous MATLAB


INSTRUCTION HELP help " nom de la fonction " donne des renseignements sur l'utilisation de la fonction. Exemple
Tapez : help cos
>> COS Cosine. COS(X) is the cosine of the elements of X.

Tapez : y= cos(pi) >>cos(pi) y= -1


7

Variables utilises par MATLAB(1)


1. Variables spciales
Tapez : eps % (lerreur de la machine (epsilon) )
>> ans = 2.2204e-16

Tapez : i ou j

>> i = 0 + 1.0000 i

Tapez realmax % ( le plus grand nombre positif )


>> realmax = 1.7977e+308

Tapez realmin % (le plus petit nombre positif )


>> realmin = 2.2251e-308

Remarque : En MATLAB il ny a pas dinstructions pour dclarer une variable. Une nouvelle variable est dfinie en donnant son nom 8 et sa valeur numrique

Variables utilises par MATLAB(2)


2. Scalaire : une matrice 1x1
Tapez : s = 8
>> s = 8

% nombre rel positif

Tapez : s = 2.5 + i*8.06


>> s = 2.5000 + 8.0600i

% nombre complexe

Tapez : s
>> s =

% son conjugu complexe

2.5000 - 8.0600i
9

Variables utilises par MATLAB(3)


3. vecteurs et matrices
Tapez : A = [1 2 3 4]
>> A 1 2 3 4

% vecteur ligne

Tapez : A = [1 ; 2 ; 3 ; 4]
>> A = 1 2 3 4

% vecteur colonne

Tapez : A (4)
>> ans 4

% on accde la composante 4
10

Variables utilises par MATLAB(4)


Tapez : A = [1 2 3 ; 6 5 7] % matrice 2x3
>> A 1 6 2 3 5 7

Tapez : size(A)
>> ans 2 3

% dimensions de la matrice A

Tapez : A
>> ans 1 2 3

% matrice transpos de A
6 5 7

11

Variables utilises par MATLAB (5)


4. Matrices prdfinies Matrice identit : eye( nlin ,ncol) Tapez : Id = eye( 2,2) % matrice identit dordre 2
>> Id 1 0 0 1

Matrice Unit : ones(nlin ,ncol) (tous les lments valent 1) Tapez : unite = ones( 2,2)
>> unite 1 1 1 1
12

Variables utilises par MATLAB (6)


Matrice nulle : zeros( nlin,ncol) Tapez : Id = zeros( 2,2)
>> Id 0 0 0 0

Matrice alatoire randn(nlin,ncol) (moyenne =0, cart type =1) Tapez : y = randn( 1000,1) % matrice remplie % alatoirement

13

Fonctions mathmatiques dans MATLAB (1)


Fonction trigonomtriques
sin : sinus cos : cosinus tan : tangente asin : sinus inverse (arcsin) acos : cosinus inverse (arccos) atan : tangente inverse (arctan) asinh : sinus hyperbolique inverse sinh : sinus hyperbolique (sh) cosh : cosinus hyperbolique (ch) acosh : cosinus hyperbolique inverse tanh : tangente hyperbolique (th) atanh : tangente hyperbolique inverse
14

Fonctions mathmatiques dans MATLAB (2)


Fonction mathmatiques de base
exp : exponentielle log10 : logarithme base 10 log : logarithme base e sqrt : racine carre abs : valeur absolue, module (nb. complexe) real : partie relle imag : partie imaginaire angle: argument (nb. complexe) round: arrondir
15

Fonctions portant sur les Matrices (1)


det(A) : renvoie le dterminant de la matrice carre A eig(A) : renvoi les valeurs propre (eigenvalues) de la matrice carre A

inv(A) : renvoie linverse de la matrice carre A trace(A) : renvoie trace de la matrice carre A rank(A) : renvoie le rang de la matrice carre A

16

Fonctions portant sur les Matrices (2)


norm(A) : norme 2 de la matrice A norm(A,2) : mme chose que norm(A)
A = AA tels que
T

(A ) = max
i = 1, n

et i , les valeurs propres de A

norm(A, 1) : norme 1 de la matrice A

A 1 = max
j

a
i =1
n

ij

norm(A, inf) : norme infini de la matrice A

A = max
i

a
j =1

ij

17

Manipulation de matrices
Extraction de sous -matrices
A ( 2 , 5 ) Extraction dun lment A (: , 5 ) Extraction dune colonne

A (1: 3 , 5) Extraction dune sous colonne A (1,:) Extraction dune ligne

diag(A) Extraction de la diagonale

18

Polynmes sous MATLAB


Les polynmes dans MATLAB sont dcrits par des vecteurs lignes dont les lments sont gaux aux coefficients par puissance dcroissante. Par exemple, pour entrer le polynme P(x) = x3 + 4x2 + 2x+ 3, Tapez P = [1 4 2 3]. Ce polynme peut tre valu en utilisant la commande polyval. Par exemple pour calculer le polynme P en x =2, on crit : polyval(P,2) roots(P) racines de P polyval(P,x) valuation de P en x conv(P1,P2) multiplication polynomiale deconv(P1,P2) division polynomiale
19

Oprateurs arithmtiques (1)


Matlab peut effectuer plusieurs oprations entre matrices. Les oprations fondamentales peuvent tre partages en deux catgories

1) Oprations matricielles
Les oprations matricielles usuelles sont dfinies par : + - * / ^

A+B : addition

[aij + bij ]

A - B : soustraction [ aij bij ]

A*B : multiplication [ aik * bkj ]


k

A/ B : division

[ A * B 1 ]

A^ 3 : puissance A * A * A seulement pour matrices carres


20

Oprateurs arithmtiques (2)


2) Oprations lment par lment
Pour excuter des oprations entre matrices lment par lment il faut faire prcder loprateur dun point . Les oprateurs lment par lment sont donc : .* ./ .^

A .* B : multiplication terme terme [aij * bij ] A ./ B : division terme terme

aij / bij

A .^ 3 : puissance terme terme a 3 ij


21

Oprateurs logiques et de relation


Oprateurs de comparaison

== ~= < > >= <= & | ~

gal (x==y) diffrent de (x~=y) strictement plus petit que (x <y) strictement plus grand que (x >y) plus grand ou gal (x >= y) plus petit ou gal (x <= y)

Oprateurs logique
et logique (x & y) ou logique (x |y) non logique (~y)
22

Exercices
Exercice 1
On note :

1 u1 = 2 , 3

5 u2 = 2 , 1

1 u3 = 3 7

Dfinir ces vecteurs sous matlab Calculer u1 + u2 , u1 + 3u 2 5u3 u3 / 3 Calculer u1


2

u2

u3

Exercice 2
On note :

2 3 A= 6 5 ,

Dfinir ces matrices sous matlab

2 3 4 B = 7 6 5 2 8 7

Calculer les dterminants, inverses, valeurs propres et vecteurs propres des matrices A et B

23

Gnration Automatique de nombres


Pour gnrer systmatiquement des vecteurs on utilise l'oprateur " : "
1. composantes espaces linairement d un pas constant syntaxe : c = dbut : pas : fin
Tapez : C= 0 : 0.5 : 3 >> C = 0

0.5000

1.000

1.500

2.000

2.5000

3.000

2. composantes espaces logarithmiquement (10debut 10fin ) syntaxe : c = logspace(log10(dbut), log10(fin), Npoints)


24

Formats daffichage
Il existe plusieurs types de format d'affichage dans Matlab. Voici ceux que l'on utilise le plus couramment.
format short % format par dfaut cinq chiffres format long % format long 15 chiffres

format short e % format court 5 chiffres avec

notation en virgule flottante


format long e % format long 15 chiffres avec notation en virgule flottante
25

Formats d affichage
Exemple
Suivant le format pi, scrira : format short format long format short e format long e 3.1416 3.14159265358979 3.1416e+000 3.141592653589793e+000
26

Commandes Graphiques(1)
Les donnes peuvent tre traces en utilisant des commandes graphiques puissantes. plot(x,y) : trac cartsien en coordonnes X-Y normal affiche le vecteur y en fonction du vecteur x semilogx(x,y) : trac en chelle semi-logarithmique (abscisse) semilogy(x,y) : trac en chelle semi-logarithmique (ordonne) stairs(x,y) : graphe en escalier stem(x,y) : graphe de raie bar(x,y) : graphe en barres
27

Commandes Graphiques (2)


title( ) : titre du graphique xlabel() : lgende pour labscisse ylabel( ) : lgende pour lordonne axis([ xmin xmax ymin ymax]) : dfinit lchelle des axes x et y ginput(n) : renvoie la position de la souris sur un graphique pour acqurir les coordonnes intressantes gtext() : placement de texte avec la souris grid : met une grille au graphe
28

Exemple
On veut tracer la courbe suivante :
Tapez le programme suivant : X= 0 : 10 : 100 ; Y= [ 4 4 6 9 13 17 22 30 37 51 56 ] ; figure(1) plot( X,Y); xlabel(Ouverture de la vanne (%)); ylabel(Dbit en m3/h); title(Caractristique dune vanne); grid

29

Graphique multiple
On peut tracer plusieurs graphiques dans la mme fentre en utilisant linstruction subplot pour diviser la fentre en plusieurs parties diviser la fentre en deux parties (2 x 1)

diviser la fentre en deux parties (1 x 2)

30

Exemple
On veut tracer la courbe suivante : Tapez le programme suivant : X= 0 : 10 : 100 ; Y= [ 4 4 6 9 13 17 22 30 37 51 56 ] ; figure(2) subplot(211), plot(X); subplot(212) plot(Y) ; grid

31

Exemple

figure1

figure2
32

Commandes Graphiques
Exercice 1
visualiser la courbe suivante : >> x = 0:pi/100:2*pi; >> y = sin(x); >> plot(x,y) >> xlabel(temps); ylabel(amplitude)

33

Commandes Graphiques
Exercice 2
visualiser les courbes : >> x = 0:pi/100:2*pi; >> y = sin(x); >> plot(x,y) >> xlabel(temps); ylabel(amplitude) >> t = 0:pi/100:2*pi; >> y1=sin(t); >> y2=sin(t+pi/2); >> plot(t,y1,t,y2) >> grid on
34

Commandes Graphiques
Exercice 3
visualiser les courbes : >> plot(sin(pi*(0:0.2:10))) >> plot(sin(pi*(0:0.2:10)),g) >> hold on >> plot(sin(pi*(0:0.2:10)),*r) >> title(cosinus); >> xlabel(temps); ylabel(amplitude)
35

Contrle de la fentre dcran


home : Repositionne le curseur en haut de l'cran load: Rcuprer des variables du disque save: Sauver des variables sur disque clear: Effacer des fonctions et des variables Exemple
Effacer l'cran en tapant home Retaper y et vous aurez le rsultat affich Enlevez de la mmoire les rsultats en tapant clear Retapez y et vous aurez : ??? Undefined function or variable y.
36

Scripts et fonction
On dfinit la fonction myfunction de la manire suivante: function [vars1 ,, varsn,]=myfunction(vare1,,varen) O : squence dinstructions

vars1,,varsn sont les variables de sortie de la fonction vare1,,varen sont les variables dentre de la fonction squence dinstructions est le corps de la fonction Il est impratif que la fonction ayant pour nom myfunction soit enregistre dans un fichier de nom myfunction.m On l'utilise sous Matlab en tapant : [vars1 ,, varsn,] = myfunction(vare1,,varen)
37

Boucle FOR : parcours dun intervalle


La boucle for parcourt un vecteur d'indices et effectue a chaque pas toutes les instructions dlimites par l'instruction end. Syntaxe : for indice = born_inf : born_sup squence dinstructions end O : born_inf est une variable appele lindice de la boucle born_sup et born_sup sont deux constantes relles (appeles paramtres de la boucle) squence dinstructions est le traitement effectuer pour les valeurs dindices variant entre born_inf et born_sup avec un incrment de 1 38

Boucle WHILE : tant que faire


La boucle while effectue une suite de commandes jusqu'a ce qu'une condition soit satisfaite. Syntaxe : While expression logique squence dinstructions end O : expression logique est une expression dont le rsultat peut tre vrai ou faux squence dinstruction est le traitement effectuer tant que expression logique est vraie
39

Instruction conditionne : IF
Linstruction conditionn a la forma suivante Syntaxe : if expression logique squence dinstructions 1 else squence dinstructions 2 O : end expression logique est une expression dont le rsultat peut tre vrai ou faux squence dinstruction 1 est le traitement effectuer si expression logique est vraie squence dinstruction 2 est le traitement effectuer si expression logique est faux
40

Instruction conditionne : switch


Une autre alternative lutilisation dune squence dinstructions conditionnes pour effectuer un choix. Il sagit de linstruction switch Syntaxe : switch expression (une variable numrique ou une variable chane de caractres) case value1 instructions 1 (instructions effectues si expression=value1) case value2 instructions 2 ... otherwise instructions 3 end
41

Exemple
On veut tracer la fonction suivante :

f ( x) = x 3 2 sin( x) + 1 dans l' intervalle [-1 , 1]


Pour tracer le graphe de f(x), il faut passer par les tapes suivantes : Dfinir la fonction f(x) : Dfinir un vecteur de points dans lintervalle donne >> x= -1 : 0.1 : 1 on a dfini un vecteur de 21 points equidistribus dans lintervalle donn avec un pas de 0.1 valuer la fonction dans lintervalle [-1 , 1] ( on peut utiliser la commande eval Tracer le graphe en utilisant la commende plot ; grid

Tracer le graphe des fonctions :

f1 ( x) = sin( 2 x) 1 + x et f 2 ( x) = x 3 sin( x) dans l' intervalle [-1 , 1] sur le mme graphe


42