8/8/2019 PI - Prezentare
1/38
MATLAB.MATLAB.TUTORIAL.TUTORIAL.
Februarie, 2009
Prelucrare dup: Huda ArnaoutYeran Soukiassian
8/8/2019 PI - Prezentare
2/38
Coninut. Introducere. Mediu MATLAB. Utilizarea help-ului. Declararea variabilelor. Vectori, Matrice i Algebr Linear. Funcii Matematice i Aplicaii. Grafic MATLAB. Programare MATLAB. M-fiiere. Utilizarea funciilor predefinite.
8/8/2019 PI - Prezentare
3/38
Introducere. LAB1
MATLAB-prezentare MATLAB este un pachet de programe care combin capaciti
puternice de calcul cu un mediu grafic adecvat i carerealizeaz o scul extrem de util inginerului i nu numai.
MATLAB este destinat pentru MATrix LABoratory. Sistemul a fost realizat n principal pentru a asigura algoritmi numeric stabili pentru lucru cu
matrice.
Mediul MATLAB asigur utilizatorului: controlul variabilelor importul i exportul datelor calcul performant reprezentri grafice 2-D i 3-D. controlul i dezvoltarea fiierelor MATLAB.
8/8/2019 PI - Prezentare
4/38
Ferestre grafice. Fereastra Grafic
Afieaz grafice.
Afieaz rezultate n urma comenzilor datede utilizator.
Editorul MATLAB Creeaz i editeaz scripturi necesare
implementrii unor m-fiiere.
8/8/2019 PI - Prezentare
5/38
Utilizarea HELP-ului.
Lansarea help-ului se va face tastnd n fereastra delucru una din comenzile: help listeaz coninutul help-ului helpcuvnt lanseaz help-ul pentru cuvnt. helpcomand lanseaz help-ul pentru comand
help help ofer informaii asupra utilizrii help-ului helpwin deschide o fereastr separat pentru a lucra n mediul
window . lookforkeyword Caut toate M-fiierele pentru keyword
8/8/2019 PI - Prezentare
6/38
Declararea variabilelor. Numele unei variabile:
Trebuie s nceap cu o liter Poate conine numai litere, cifre, i simbolul _ Matlab distinge majusculele, adic one & One sunt variabile
diferite. Matlab recunoate primele 31 de caractere din numele variabilei.
Valoarea unei variabile: Variabil = numr; Variabil = expresie;
Exemple:>> tutorial = 1234;>> tutorial = 1234tutorial =
1234
NOTE: dac asociem ;la sfritul liniei decomand, rezultatul numai este afiat.
8/8/2019 PI - Prezentare
7/38
Definirea variabilelor (cont.) Variabile speciale:
ans : nume dat implicit variabilei rezultat pi: = 3.1415926 eps: = 2.2204e-016, zeroul mainii
Infsau inf:
, infinit NaN sau nan: not-a-number
Comenzi pentru testarea variabilelor: who: listeaz numele variabilelor definite whos: listeaz numele i dimensiunile variabilelor definite
clear: terge toate variabilele declarate,terge valorile impliciteale variabilelor speciale. clearnume: terge variabila nume clc: terge fereastra comenzilor clf: terge figura curent.
8/8/2019 PI - Prezentare
8/38
Vectori, Matrice i Algebr Linear.
Vectori. Operaii cu celule.
Matrice. Soluionarea Sistemelor de ecuaii
liniare.
8/8/2019 PI - Prezentare
9/38
Vectori Un vector linie este creat n MATLAB prin tastarea succesiv,paranteza dreapt din
stnga, valorile separate prin spaiu sau virgule i paranteza dreapt din dreapta. Pentru aintroduce un vetor coloan valorile sunt separate prin punct i virgul.
Example:>> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi ]
x = 0 0.7854 1.5708 2.3562 3.1416>> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ]y =
00.7854
1.57082.35623.1416
x is a row vector.
y is a column vector.
8/8/2019 PI - Prezentare
10/38
Vectori (continuare) Poziia unui element al vectorului Se stabilete asociind ntregul nchis
ntr-o parantez rotund. Exemplu:
>> x(3)ans =
1.5708
Al 1lea pn la al 3lea element al vectorului x
Notarea bloc faciliteaz testarea vectorului.Notarea bloc se realizeaz prin:
(indicele destart : increment : indicele de capt)Forma scurt (start:stop) implic un increment 1.
Example:>> x(1:3)ans =
0 0.7854 1.5708
NOT: MATLAB lanseaz startul cu 1.
3lea element din vectorul x
8/8/2019 PI - Prezentare
11/38
Vectori (continuare)Comenzi utile
x = start:stop Creeaz vectorul linie x ncepnd cu start, indexndcu unu, pn la stop.
x = start:increment:stop Creeaz un vector linie x ncepnd cu start,
incrementnd cu increment pn la stop.linspace(start,stop,numr) Creeaz un vector linie x ncepnd cu start, sfrind
cu stop avnd un numr de elemente.
length(x) ntoarce lungimea vectorului x
y = x Vectorul x transpus
dot (x, y) ntoarce produsul scalar al vectorilor x i y.
8/8/2019 PI - Prezentare
12/38
Operaii cu celule.Operaii celul-scalar.
Pentru adunare,scdere,nmulire sau mprire scalarulacioneaz asupra fiecrui element al celulei.
Example:>> f = [ 1 2; 3 4]
f =1 23 4
>> g = 2*f 1g =
1 35 7
Fiecare element din celul estemultiplicat cu 2 i apoi se extrage1.
8/8/2019 PI - Prezentare
13/38
Operaii cu celule. (continuare) Operaii element cu element.
Operaie Forma algebric MATLAB
Adunare a + b a + b
Scdere a b a b
nmulire a x b a .* b
mprire a b a ./ b
Exponeniere ab a .^ b
Exemplu:>> x = [ 1 2 3 ];>> y = [ 4 5 6 ];>> z = x .* yz =
4 10 18
Fiecare element din x estemultiplicat cu corespunztorul din y
8/8/2019 PI - Prezentare
14/38
Matrice
A o matrice m x n.
O matrice este o celul 2-dimensional, avnd mai multe linii i mai multe coloane.nscrierea unei matrici se face astfel: Marcarea nceputului se face prin [, i se sfrete cu ] Separarea elementelor dintr-o linie se face prin spaiu sau virgul. Punct i virgul sau enter separ elementelor dintr-o coloan.
Example:>> f = [ 1 2 3; 4 5 6]f =
1 2 34 5 6
>> h = [ 2 4 61 3 5]h =
2 4 61 3 5Diagonala
principal
8/8/2019 PI - Prezentare
15/38
Matrice (continuare)
Selectarea elementelor unei matrici:-- numematrice(linie, coloan)-- un bloc de selecie poate fi utilizat pentru a selecta mai multe
linii sau coloane.
Date:f =
1 2 34 5 6
h =2 4 61 3 5
Exemplu:
>> f(2,3)
ans =
6
>> h(:,1)
ans =
2
1
8/8/2019 PI - Prezentare
16/38
Matrice (continuare)
Comenzi uzuale:
zeros(n)zeros(m,n)
ones(n)ones(m,n)
size (A)
length(A)
ntoarce o matrice n x n cu elemente nulentoarce o matrice m x n cu elemente nule.
ntoarce o matrice n x n cu elemente unitatentoarce o matrice m x n cu elemente unitate
Pentru matricea A cu dimensiunea m x n, ntoarceun vector linie [m,n] ce conine numrul de linii icoloane.
ntoarce valoarea maxim dintre numrul de liniii coloane ale lui A.
8/8/2019 PI - Prezentare
17/38
Matrice (continuare)
Transpunerea B = A
Matricea identitate eye(n) ntoarce matricea identitate de ordin neye(m,n) ntoarce o matrice m x n cu unu pe primadiagonal i zero n rest.
Adunarea i scderea C = A + BC = A B
Multiplicarea scalar B = *A, unde este un scalar .
nmulirea matricial C = A*B
Matricea invers B = inv(A), A trebui s fie ptrat.
rank (A) ntoarce rangul matricei A.Ridicarea la putere B = A.^2 ridic la ptrat fiecare element din A
C = A * A calculeaz A*A, A ptrat.
Determinant det (A), A ptrat.
Comenzi uzuale
A, B, C sunt matrice, i m, n, scalari.
8/8/2019 PI - Prezentare
18/38
Soluionarea sistemelor liniare. LAB 2
Exemplu: fie sistemul algebric n necunoscutele (x1, x2, x3):
3x1 + 2x2 x3 = 10
-x1+ 3x
2+ 2x
3= 5
x1 x2 x3 = -1
Sistemul este descris de:
Ax = b
=
111
231
123
A
=
3
2
1
x
x
x
x
=
1
5
10
b
Fie :
8/8/2019 PI - Prezentare
19/38
Soluia sistemului de ecuaii liniare(continuare)
Soluionare prin invers:Ax = bA-1Ax = A-1bx = A-1b
MATLAB:>> A = [ 3 2 -1; -1 3 2; 1 -1 -1];>> b = [ 10; 5; -1];>> x = inv(A)*bx =
-2.0000
5.0000-6.0000
Rezultat:x1 = -2, x2 = 5, x3 = -6
Soluionare prin diviziune matricial:Soluia ecuaiei
Ax = bPoate fi calculat utiliznd diviziunea ladreapta.
Rezultat:x1 = -2, x2 = 5, x3 = -6NOT:
Diviziunea la stnga: A\b b A diviziune la dreapta: x/y x y
MATLAB:>> A = [ 3 2 -1; -1 3 2; 1 -1 -1];>> b = [ 10; 5; -1];>> x = A\bx =
-2.00005.0000-6.0000
8/8/2019 PI - Prezentare
20/38
Funcii matematice i aplicaii. Reprezentarea i prelucrarea
semnalelor.
Polinoame. Descompunerea n fracii elementare.
8/8/2019 PI - Prezentare
21/38
Reprezentare i procesareasemnalelor.
Semnale sinusoidale:
ttz
tty
ttx
2sin2)(
)]125.0(2cos[2)(
2cos2)(
=
=
=
Exemple:t = linspace (-1, 1, 101);x = 2*cos(2*pi*t);
y = 2*cos(2*pi*(t-0.125));z = 2*sin(2*pi*t);
8/8/2019 PI - Prezentare
22/38
Polinoame.
n MATLAB polinoamele sunt reprezentate prin vectorulcoeficienilor.
Considerm urmtorul polinomul:A(s) = s3 + 3s2 + 3s + 1
Dac s este scalar: utilizm operaia scalar A = s^3 + 3*s^2 + 3*s + 1;
Dac s este vector sau matrice: utilizm operaii element cuelement. A = s.^3 + 3*s.^2 + 3.*s + 1;
funcia polyval(a,s): evalueaz polinomul cu coeficieni n vectorula pentru valori ale lui s.
8/8/2019 PI - Prezentare
23/38
Polnoame (continuare)
Example:>> s = linspace (-5, 5, 100);
>> coeff = [ 1 3 3 1];
>> A = polyval (coeff, s);>> plot (s, A),
>> xlabel ('s')
>> ylabel ('A(s)')
A(s) = s3 + 3s2 + 3s + 1
8/8/2019 PI - Prezentare
24/38
Polinoame (continuare)Operaii Comenzi MATLAB Descriere
Adunare c = a + b Suma polinoamelor (a,b au aceeai dimensiune)
Multiplicare cuscalar
b = 3*a Multiplic polinomul a cu 3
Multiplicare
polinomial
c = conv(a,b) ntoarce vectorul polinomului produs.
mprireapolinoamelor
[q,r] = deconv(a,b) ntoarce coeficienii polinomului ct q i vectorul coeficienilor restr.
Derivata polyder(a) ntoarce coeficienii polinomului derivat
polyder(a, b) ntoarce coeficienii polinomului obinut prin derivarea produsuluipolinoamelor a i b.
[n,d]=polyder(b,a) Deriveaz fracia raional b/a.
Determinarerdcinilor
roots(a) Determin rdcinile polinomului a
Find Polynomials poly(r) Determin polinomul cu rdcinile specificate n r.
8/8/2019 PI - Prezentare
25/38
Descompunerea n fraciielementeare.(DFE). LAB3
)(
)()(
sA
sBsH = , unde B(s) i A(s) sunt polinoame.
n
n
rs
c
rs
c
rs
csH
++
+
= ...)(
2
2
1
1
H(s) poate fi reprezentat n forma:
8/8/2019 PI - Prezentare
26/38
DFE (continuare)
MATLAB:>> b = [ 1 2];>> a = [ 1 4 3 0];>> [c,r] = residue (b, a)c =
-0.1667-0.5000
0.6667r =
-3-10
Exemplu (Rdcini reale i diferite):
3
3
2
2
1
123 034
2)(
rs
c
rs
c
rs
c
sss
ssH
+
+
=
+++
+=
NOT: ultimul zero reprezint coeficientulzero al polinomului
c1c2
c3
r1r2r3
ssssH
3/2
1
2/1
3
6/1)( ++
+
=
Rezultat:
8/8/2019 PI - Prezentare
27/38
Grafic MATLAB. LAB4 Pentru mai multe informaii , help graph2d Reprezentarea unui punct:
>> plot ( numevariabil, simbol)
funcia plot () creez o fereatsrdefinit ca figur.
Exemplu : Reprezentrea unui numr complex
>> z = 1 + 0.5j;>> plot (z, .)
Comenzi pentru axe:
comenzi descriere
axis ([xmin xmax ymin ymax]) Valori minime i maxime ale axelor
axis square Grafic n ptrat.
axis equal Scalare egal pe ambele axe.
axis normal Reconfigureaz axele n ptrat cu scalare identic
axis (auto) Fixare implicit
8/8/2019 PI - Prezentare
28/38
Grafic Matlab (continuare) Reprezentarea graficelor:
plot (x,y) genereaz dependena grafic y=f(x) semilogx (x,y) genereaz dependena grafic z=f(x) cu x marcat logaritmic iar y liniar. semilogy (x,y) genereaz dependena grafic z=f(x) cu x marcat liiar iar y logaritmic. loglog(x,y) traseaz graficul utiliznd o scalare logaritmic att pentru x ct i pentru y.
Reprezentri multiple: plot (x, y, w, z) putem reprezenta mai multe curbe pe un acelai grafic utiliznd argumente multiple n
linia de comand. Variabilele x, y, w, i z sunr vectori. Sunt trasate dou curbe: y vs. x, i z vs. w. legend (string1, string2,) permite prezentarea semnificaiei curbelor trasate.
exerciiu: tastai help legend pentru clarificri. Figuri multiple:
figure (n) utilizat pentru a crea mai multe ferestre grafice.Se introduce comanda nainte de comandaplot().
Close(nume)nchide fereastra nume. close all nchide toate ferestrele.
Subplots: subplot (m, n, p) mparte fereastra ntr-o reea m x n, p specific reprezentarea
curent.
8/8/2019 PI - Prezentare
29/38
Crafic MATLAB (continuare) Exemplu: (funcia polinomial)
Reprezentm funcia polinomial utiliznd scalare linear/linear, log/linear , scalarealinear/log i log/log :
y = 2x2 + 7x + 9
% Generate the polynomial:
x = linspace (0, 10, 100);
y = 2*x.^2 + 7*x + 9;
% plotting the polynomial:
figure (1);
subplot (2,2,1), plot (x,y);
title ('Polynomial, linear/linear scale');
ylabel ('y'), grid;
subplot (2,2,2), semilogx (x,y);
title ('Polynomial, log/linear scale');
ylabel ('y'), grid;subplot (2,2,3), semilogy (x,y);
title ('Polynomial, linear/log scale');
xlabel('x'), ylabel ('y'), grid;
subplot (2,2,4), loglog (x,y);
title ('Polynomial, log/log scale');
xlabel('x'), ylabel ('y'), grid;
8/8/2019 PI - Prezentare
30/38
Grafic MATLAB (continuare)
8/8/2019 PI - Prezentare
31/38
Grafic MATLAB (continuare) Adugarea de elemente noi pe un grafic existent: Comanda hold se utilizeaz pentru a aduga linii sau puncte pe un grafic.
hold on permite reprezentri noi peste graficele anterior trasate. Dup caz serealizeaz automat o rescalare.
hold off elimin posibilitatea suprapunerii graficelor (opiune implicit) Caroiaj i axe:
Command Description
grid on Adaug pe grafic o reea.
grid off Elimin reeaua (implicit)
grid Comut regimul grid
title (text) Reprezint titlul nscris n partea de sus a figurii
xlabel (text) Marcheaz axa orizontal.
ylabel (text) Marcheaz axa vertical.
text (x,y,text) Adaug coninutul textpe locaia (x,y) impus.
8/8/2019 PI - Prezentare
32/38
Comenzi suplimentare pentrureprezentri grafice.
Symbol Color
y yellow
m magentac cyan
r red
g green
b blue
w white
k black
Symbol Marker
.
o
x
+ +
*
s
d
v
^
h hexagram
Colorarea punctelor pe curb Markeri pentru puncte Stilul de linieSymbol Line Style
solid line
: dotted line. dash-dot line
dashed line
8/8/2019 PI - Prezentare
33/38
Programare MATLAB. Controlul condiionrilor Cicluri
8/8/2019 PI - Prezentare
34/38
Controlul condiionrilor. Sintaxa operatorului if:
ifexpresie logiccomenzi
end Exemplu:
if d d
b=0;end
end Exemplu: (else i elseif)
if temperatura > 100
disp (Napa funcionare proast.)elseif temperatura > 90disp (Funcionare bun.);
elsedisp (Frig oprete instalaia.)
end
8/8/2019 PI - Prezentare
35/38
Controlul condiionrilor.(continuare)
Sintaxa operatorului switch :switchexpresie logic
caserezultatul condiionrii 1comand
caserezultatul condiionrii 2comand
otherwisecomandend
Exemplu:switch interval < 1
case 1xinc = interval /10;
case 0xinc = 0.1;end
8/8/2019 PI - Prezentare
36/38
Cicluri.
Ciclu forforvariabila = expresie
comanda
end
Ciclu whilewhileexpresia
comanda
end
Exemplu (ciclu for):for t = 1:5000
y(t) = sin (2*pi*t/10);end
Exemplu (ciclu while):EPS = 1;while ( 1+EPS) >1
EPS = EPS/2;endEPS = 2*EPS
comanda breakbreak folosit pentru ieirea din ciclu.
8/8/2019 PI - Prezentare
37/38
M-Fiiere.
M-fiierele sunt fiiere text ce conin o succesiune
de comenzi Matlab. MATLAB poate deschide i executa fiierele exact
exact ca i cum ar fi introduse de la tastatur. Pentru a rula un fiier.m este suficient s
introducem numele fiierului n fereastra de lucru(asigurndu-ne c directorul este corect setat)Toate comenzile Matlab sunt m-fiiere.
Comenzile pot fi rulate n fereastra de lucru Matlab. Este cu mult maicomod de a elabora m-fiiere.
8/8/2019 PI - Prezentare
38/38
Fiiere funcie. Sintaxa unui fiier funcie:function [Variabile de ieire] = nume_funcie (variabile de intrare);
NOT: numele funciei este de
dorit s fie acelai cu numelefiierului pentru a evita confuzii.
Lansarea funciei dorite:-- funcia este lansat prin numele fiierului i nu al funcieidefinite.
-- n cadrul funciei pot utiliza numai funcii predefinite nscrise cam-fiiere. Comments:
-- Primele linii pot fi introduse comentarii care pot fi apelate prinhelp.