Académique Documents
Professionnel Documents
Culture Documents
Matlab SMP S5GG
Matlab SMP S5GG
A. BOUMEZZOUGH
10/11/2012
INTRODUCTION
MATrix LABoratory Logiciel qui permet, de manire interactive : de faire des calculs matriciels ; d analyser les donnes ; de visualiser les rsultats en 2D et 3D ... Langage de programmation Toolboxes : ensemble de fonctions (fichiers.m) dveloppes pour des domaines dapplications spcifiques SIMULINK : interface graphique interactive de MATLAB
10/11/2012
Introduction (2)
10/11/2012
Fonctionnement
Mode interactif : Les instructions sont excutes au fur et mesure quelles sont entres par l utilisateur Mode programme : MATLAB excute, ligne par ligne, les instructions d un fichier .m Type de variables : unique : la matrice
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 4
10/11/2012
10/11/2012
10/11/2012
ou lettre +
>> help nom de commande fournit de l aide sur l utilisation de la commande (et les rubriques connexes). >> lookfor mot-cl fournit la liste des fonctions contenant le mot-cl.
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 10
Plan
1. Vecteurs et matrices 2. La programmation MATLAB 3. Les graphiques 4. Les polynmes et l analyse numrique 5. Limport/export de donnes
10/11/2012
11
VECTEURS ET MATRICES
Scalaires et oprations scalaires Vecteurs et oprations vectorielles Matrices et oprations matricielles
10/11/2012
12
10/11/2012
13
10/11/2012
15
10/11/2012
16
-7
17
10/11/2012
20
10/11/2012
24
10/11/2012
25
10/11/2012
26
10/11/2012
27
10/11/2012
28
10/11/2012
30
LA PROGRAMMATION MATLAB
Les oprateurs logiques Les chanes de caractres Les commandes structures Les scripts et les fonctions La programmation
10/11/2012
32
Oprateurs logiques
== ~= <( <=) >( >=) & ~ | xor Exemple : >> a = [1 0 0 1] ; >> b = [1 1 0 1] ; >> a | b ans = 1 1
10/11/2012
galit diffrence infrieur (ou gal) suprieur (ou gal) ET logique (AND) NON logique (NOT) OU logique (OR) OU exclusif (XOR)
1
33
10/11/2012
34
10/11/2012
36
La boucle WHILE
tant que . . . faire syntaxe : while expression instructions .......... instructions end exemple: calculer le plus petit entier n tel que 2n soit suprieur un rel a donn. >> max =2002 ; n=1; >> while (2^n <max);n=n+1;end; >> n n= 11
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 37
L instruction IF (1)
La squence d instructions intrieure est excute si expression est vrai (=1 logique). syntaxe if expression instruction ........ instruction end expression peut tre simple ou compose. exemple if (a<0 & b<0) disp( a et b ngatifs ) end
10/11/2012
38
L instruction IF (2)
Permet de choisir entre deux options. syntaxe : if expression instructions 1 else instructions 2 end si expression n est pas vrifier alors les instructions 2 sont excutes
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 39
L instruction IF (3)
Permet une slection multiple. syntaxe : if expression1 instructions 1 elseif expression2 instructions 2 elseif expression3 instructions 3 ........... else expressionN instructions N end
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 40
Script (1)
Fichier (nom.m par exemple) contenant une suite d instructions matlab. Excut squentiellement dans l espace de travail, il accde aux variables (locales) qui s y trouvent. Pour crire un script, utiliser lditeur. >> edit
10/11/2012
41
Script (2)
Lextension classique dun fichier MATLAB est .m. On peut trouver 2 types de fichiers m : les fichiers de fonctions et les fichiers de script qui sont un ensemble de commandes pouvant senchaner. Lutilisation de fichiers script permet de sauvegarder vos commandes dune session Matlab une autre. Pour ouvrir un fichier script : - soit vous tapez la commande edit, - soit vous cliquez : file new M-file, - soit vous cliquez directement sur licne reprsentant une page blanche.
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 42
Fonctions (1)
Fichier (trouve.m par exemple) contenant une suite dinstructions matlab. Commence par le mot rserv function. Reoit un (ou plusieurs) paramtre(s) d entre. Peut renvoyer un (ou plusieurs) paramtre(s) en sortie ou n en renvoyer aucun.
Fonctions (2)
Sous fonctions un fichier .m peut contenir plusieurs fonctions la premire est la fonction primaire les suivantes sont des sous fonctions accessible la fonction primaire et aux autres sous fonctions du fichier .m
10/11/2012
44
45
Programmation (1)
Forme gnrale d une application MATLAB
10/11/2012
46
Programmation (2)
Quelques recommandations Choisir des noms significatifs pour les variables et les fonctions Documenter les fonctions (help) Vrifier le nombre d arguments d entre (nargin) et de sortie (nargout) des fonctions Eviter (autant que possible !) les boucles for et while Dimensionner les variables
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 47
Programmation (3)
Mesure de complexit algorithmique temps d excution (en secondes) : >> A = rand(200); >> tic ; inv(A *A) ; toc elapsed_time = 12.4100 Le profiler ( >> help profile ) >> profile report temps d excution total (en secondes) >> profile report N N lignes demandant le plus de temps d excution (en % du temps total) Les messages derreur : ??? Index exceeds matrix dimensions. Error in ==> C:\MATLAB\bin\test.m On line 2 ==> x(4)
10/11/2012
48
Programmation (4)
Boucles et programmation matricielle >> A = rand(200) ; >> x = 0 ; >> tic >> for i = 1 : 200 for j = 1 : 200 x = x + A(i,j) ; end end >> toc elapsed_time = 4.5000 >> tic ; sum(A(:)) ; toc elapsed_time = 0.0600
10/11/2012
49
LES GRAPHIQUES
Les graphes en 2D Les graphes en 3D L exportation de graphes
10/11/2012
50
10/11/2012
51
10/11/2012
52
10/11/2012
54
10/11/2012
56
10/11/2012
57
10/11/2012
58
Histogrammes
Tracs l aide de la commande hist >> y = randn(1000,1) ; >> hist (y, 50) >> title( distribution normale : rpartition en 50 classes )
10/11/2012
59
Courbes paramtres
Exprimer x et y en fonction de t exemple : courbe de Lissajous >> t =0:0.1:2*pi; >> x = cos(3*t) ; >> y = sin(t) ; >> plot(x, y)
10/11/2012
60
10/11/2012
61
Orienter un graphe 3D
rotate3D + bouton gauche ou view(azimut, lvation) exemple : >>subplot(121), surf(X,Y,Z), view(0,0) >>subplot(122), surf(X,Y,Z), view(0,90)
10/11/2012
64
10/11/2012
65
Les polynmes
Vecteur ligne Vecteur ligne ensemble de donnes polynme de degr n p(x) = anxn + an-1xn-1 + ... + a1x + a0 >> p =[anxn an-1 ... a1 a0] ; >> length(p) ans = n+1 >> p1 =[1 0 2] ; %p1(x) = x2 + 2 >> p2 =[2 4 0] ; %p2(x) = 2x2 +4x coefficients disposs suivant les puissances dcroissantes de x
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 66
Oprations polynomiales
Multiplication de 2 polynmes >> p3 =conv(p1, p2) p3 = 2 4 4 8 0 p3(x) = 2x4 + 4x3 + 4x2 + 8x Extension n polynmes p4(x) = x(x + 2)(2x - 3) >> p4 =conv([1 0],conv([1 2],[2 -3])) p4 = 2 1 -6 0 Division de polynmes >> p1 = deconv(p3, p2) p1 = 1 0 2 Dr. A. BOUMEZZOUGH
10/11/2012 Facult Polydisciplinaire Beni mellal
67
Fonctions polynomiales
L instruction polyval permet d valuer les variations d une fonction polynomiale sur un intervalle x. >> f =[-1 -5 1 0] ; %f(x)=- x3 - 5x2 +x >> x =-10 :10 ; >> y =polyval(f, x) ; >> plot(x,y)
10/11/2012
68
Interpolation (1)
Interpolation polynomiale au sens des moindres carrs : >> p=polyfit(x, y, ordre) ; Importance de l ordre du polynme d interpolation :
%fonction sigmode bruite x = -5:0.1:5 ; mes=1./(1+exp(-x))+0.05*randn(1,length(x)) ; %interpolation d'ordre 1 p = polyfit(x, mes, 1) ; res = polyval(p,x) ; plot(x,mes,'b+',x, res,'r',x,mes - res, 'g') %interpolation d'ordre 5 p = polyfit(x, mes, 5) res = polyval(p,x) ; plot(x,mes,'b+',x, res,'r',x,mes -_res, 'g')
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 69
Interpolation (2)
Ordre 1 : erreur = 0.0113
10/11/2012
70
Interpolation (3)
Relier des points (ensemble de donnes) exprimentaux par une courbe forme de segments de droite ou de courbes polynomiales syntaxe : interp1(x,y,z, type) type : linear interpolation linaire spline interpolation par splines cubic interpolation cubique >> x =0:10 ; >> y = cos(x) ; >> z = 0:0.1:10 ; %pas de z < pas de x >> f =interp1(x,y,z) ; %par dfaut : linear >> plot(x,y, bo ,z,f, r+ )
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 71
Interpolation (4)
Rgression linaire
Dtermination du modle linaire y=f(x) reliant deux sries de mesure x et y. yi = axi + b vecteur optimal (au sens des moindres carrs) construction de la matrice : >> phi =[x ones(length(x),1)] ; dtermination de : >> teta =nnls(phi,y) ;
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 73
>> fzero(foncnl ,0.5) ans = 0.2826 >> fsolve(foncnl ,0 : 2) ans = 0.2826 0.9505
10/11/2012 Dr. A. BOUMEZZOUGH Facult Polydisciplinaire Beni mellal 75
>> minxy =fminsearch(fonc2 ,[0 0]) minxy = 0.2500 -0.5000 >> minf =fonc2(minxy) minf = 7.5053 valeur minimale de la fonction
10/11/2012
77