Sunteți pe pagina 1din 38

MATLAB.MATLAB.

TUTORIAL.TUTORIAL.

MATLAB. MATLAB. TUTORIAL. TUTORIAL. Februarie, 2009 Prelucrare după: Huda Arnaout Yeran Soukiassian

Februarie, 2009 Prelucrare după: Huda Arnaout Yeran Soukiassian

Conţinut.
Conţinut.

Introducere.

Mediu MATLAB.

Utilizarea help-ului.

Declararea variabilelor.

Vectori, Matrice şi Algebră Lineară.

Funcţii Matematice şi Aplicaţii.

Grafică MATLAB.

Programare MATLAB.

M-fişiere.

Utilizarea funcţiilor predefinite.

Introducere. – LAB1
Introducere. – LAB1

MATLAB-prezentare

MATLAB este un pachet de programe care combină capacităţi puternice de calcul cu un mediu grafic adecvat şi care realizează 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

reprezentări grafice 2-D şi 3-D.

controlul şi dezvoltarea fişierelor MATLAB.

Ferestre grafice.
Ferestre grafice.

Fereastra Grafică

Afişează grafice.

Afişează rezultate în urma comenzilor date de utilizator.

Editorul MATLAB

Creează şi editează scripturi necesare implementării unor m-fişiere.

Utilizarea HELP-ului.
Utilizarea HELP-ului.

Lansarea help-ului se va face tastând în fereastra de lucru una din comenzile:

help – listează conţinutul help-ului

help cuvânt – lansează help-ul pentru cuvânt.

help comandă– lansează help-ul pentru comandă

help help – oferă informaţii asupra utilizării help-ului

helpwin – deschide o fereastră separată pentru a lucra în mediul window .

lookfor keyword – Caută toate M-fişierele pentru keyword

Declararea variabilelor.
Declararea variabilelor.

Numele unei variabile:

Trebuie să înceapă cu o literă

Poate conţine numai litere, cifre, şi simbolul “_”

Matlab distinge majusculele, adică one & One sunt variabile diferite.

Matlab recunoaşte primele 31 de caractere din numele variabilei.

Valoarea unei variabile:

Variabilă = număr;

Variabilă = expresie;

Exemple:

>> tutorial = 1234; >> tutorial = 1234 tutorial =

1234

NOTE: dacă asociem ”;” la sfârşitul liniei de

comandă, rezultatul nu mai este afişat.

Definirea variabilelor (cont.)
Definirea variabilelor (cont.)

Variabile speciale:

ans : nume dat implicit variabilei rezultat

pi: = 3.1415926…………

eps:

Inf sau inf : , infinit

NaN sau nan: not-a-number

= 2.2204e-016, zeroul maşinii

Comenzi pentru testarea variabilelor:

who: listează numele variabilelor definite

whos: listează numele şi dimensiunile variabilelor definite

clear: şterge toate variabilele declarate,şterge valorile implicite ale variabilelor speciale.

clear nume: şterge variabila nume

clc: şterge fereastra comenzilor

clf: şterge figura curentă.

Vectori, Matrice şi Algebră Lineară.
Vectori, Matrice şi Algebră Lineară.

Vectori.

Operaţii cu celule. Matrice.

Soluţionarea Sistemelor de ecuaţii liniare.

Vectori
Vectori

Un vector linie este creat în MATLAB prin tastarea succesivă,paranteza dreaptă din stânga, valorile separate prin spaţiu sau virgule şi paranteza dreaptă din dreapta. Pentru a introduce 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 =

0

0.7854

1.5708

2.3562

3.1416

x is a row vector.

y is a column vector.

Vectori (continuare)
Vectori (continuare)

Poziţia unui element al vectorului – Se stabileşte asociind întregul închis într-o paranteză rotundă.

Exemplu:

>> x(3)

ans =

1.5708 3 lea element din vectorul x

Notarea bloc facilitează testarea vectorului.Notarea bloc se realizează prin:

(indicele destart : increment : indicele de capăt)

Forma scurtă (start:stop) implică un increment 1.

Example:

>> x(1:3)

ans =

0

0.7854

1.5708

Al 1 lea până la al 3 lea element al vectorului x

NOTĂ: MATLAB lansează startul cu 1.

Vectori (continuare)
Vectori (continuare)

Comenzi utile

x

= start:stop

Creează vectorul linie x începând cu start, indexând cu unu, până la stop.

x = start:increment:stop

Creează un vector linie x începând cu start, incrementând cu increment până la stop.

linspace(start,stop,număr)

Creează un vector linie x începând cu start, sfârşind cu stop având un număr de elemente.

length(x)

Întoarce lungimea vectorului x

y

= x’

Vectorul x transpus

dot (x, y)

Întoarce produsul scalar al vectorilor x şi y.

Operaţii cu celule.
Operaţii cu celule.

Operaţii celulă-scalar. Pentru adunare,scădere,înmulţire sau împărţire scalarul acţionează asupra fiecărui element al celulei. Example:

>> f = [ 1 2; 3 4] f =

1

2

3

4

>> g = 2*f – 1 g =

1

3

5

7

Fiecare element din celulă este

multiplicat cu 2 şi apoi se extrage1.

Operaţii cu celule. (continuare)
Operaţii cu celule. (continuare)

Operaţii element cu element.

Operaţie

Forma algebrică

MATLAB

Adunare

a + b

a + b

Scădere

a – b

a – b

Înmulţire

a x b

a .* b

Împărţire

a b

a ./ b

Exponenţiere

a

b

a .^ b

Exemplu:

>> x = [ 1 2 3 ]; >> y = [ 4 5 6 ]; >> z = x .* y z =

4

10

18

Fiecare element din x este multiplicat cu corespunzătorul din y

Matrice
Matrice

O matrice este o celulă 2-dimensională, având mai multe linii şi mai multe coloane. Înscrierea unei matrici se face astfel:

Marcarea începutului se face prin [, şi se sfârşeşte cu ]

Separarea elementelor dintr-o linie se face prin spaţiu sau virgulă.

Punct şi virgulă sau enter separă elementelor dintr-o coloană.

A o matrice m x n.

separă elementelor dintr-o coloană. A o matrice m x n. Diagonala principală •Example: >> f =

Diagonala

principală

•Example:

>> f = [ 1 2 3; 4 5 6] f =

1

2

3

4

5

6

>> h = [ 2 4 6 1 3 5] h =

2 4

6

1 3

5

Matrice (continuare)
Matrice (continuare)

Selectarea elementelor unei matrici:

-- numematrice(linie, coloană) -- un bloc de selecţie poate fi utilizat pentru a selecta mai multe linii sau coloane.

Exemplu:

>> f(2,3)

ans =

6

Date:

f =

1 2 3 4 5 6
1 2
3
4
5
6

h =

>> h(:,1)

 Exemplu: >> f(2,3) ans = 6 Date: f = 1 2 3 4 5 6

2 4

ans =

2

1

1 3

6

5

Matrice (continuare)
Matrice (continuare)

Comenzi uzuale:

zeros(n)

Întoarce o matrice n x n cu elemente nule

zeros(m,n)

Întoarce o matrice m x n cu elemente nule.

ones(n)

Întoarce o matrice n x n cu elemente unitate

ones(m,n)

Întoarce o matrice m x n cu elemente unitate

size (A)

Pentru matricea A cu dimensiunea m x n, întoarce un vector linie [m,n] ce conţine numărul de linii şi coloane.

length(A)

Întoarce valoarea maximă dintre numărul de linii şi coloane ale lui A.

Matrice (continuare)
Matrice (continuare)

Comenzi uzuale

Transpunerea

B

= A’

Matricea identitate

eye(n) întoarce matricea identitate de ordin n eye(m,n) întoarce o matrice m x n cu unu pe prima diagonală şi zero în rest.

Adunarea şi scăderea

C

= A + B

C

= A – B

Multiplicarea scalară

B

= *A, unde

este un scalar .

Înmulţirea matricială

C

= A*B

Matricea inversă

B

= inv(A), A trebui să fie pătrată.

rank (A) întoarce rangul matricei A.

Ridicarea la putere

B = A.^2 ridică la pătrat fiecare element din A

C = A * A calculează A*A, A pătrată.

Determinant

det (A), A pătrată.

 

A, B, C sunt matrice, şi m, n, scalari.

Soluţionarea sistemelor liniare. – LAB 2
Soluţionarea sistemelor liniare. – LAB 2

Exemplu: fie sistemul algebric în necunoscutele (x 1 , x 2 , x 3 ):

3x 1 + 2x 2

-x 1 + 3x 2 + 2x 3 =

x 3 = 10

5

x 3 = -1

x 1

x 2

Fie :

A =

3 2 1 x 1 1 3 2 x = x 1 2 1 1
3
2
1
x
1
1
3
2
x =
x
1
2
1
1
x
3

Sistemul este descris de:

Ax = b

10

b = 5

 

1

Soluţia sistemului de ecuaţii liniare (continuare)

Soluţia sistemului de ecuaţii liniare (continuare)  Soluţionare prin inversă: Ax = b A - 1

Soluţionare prin inversă:

Ax = b

A -1 Ax = A -1 b

x = A -1 b

Soluţionare prin diviziune matricială:

Soluţia ecuaţiei

Ax = b

Poate fi calculată utilizând diviziunea la dreapta.

MATLAB:

>> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = inv(A)*b

x

=

-2.0000

5.0000

-6.0000

Rezultat:

x 1 = -2, x 2 = 5, x 3 = -6

NOTĂ:

Diviziunea la stânga: A\b b A

MATLAB:

>> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = A\b x =

-2.0000

5.0000

-6.0000

Rezultat:

x 1 = -2, x 2 = 5, x 3 = -6

diviziune la dreapta: x/y x y

Funcţii matematice şi aplicaţii.
Funcţii matematice şi aplicaţii.

Reprezentarea şi prelucrarea semnalelor.

Polinoame.

Descompunerea în fracţii elementare.

Reprezentare şi procesarea semnalelor.

Reprezentare şi procesarea semnalelor.  Semnale sinusoidale: x ( t ) 2 cos 2 =  
Reprezentare şi procesarea semnalelor.  Semnale sinusoidale: x ( t ) 2 cos 2 =  

Semnale sinusoidale:

x

(

t

) 2 cos 2

=

 

t

y

(

t

) 2 cos[ 2 (

=

t

0. 125)]

z

( t

) 2 sin 2

=

t

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);

Polinoame.
Polinoame.

În MATLAB polinoamele sunt reprezentate prin vectorul coeficienţilor.

Considerăm următorul polinomul:

A(s) = s 3 + 3s 2 + 3s + 1

Dacă s este scalar: utilizăm operaţia scalară

A = s^3 + 3*s^2 + 3*s + 1;

Dacă s este vector sau matrice: utilizăm operaţii element cu element.

A = s.^3 + 3*s.^2 + 3.*s + 1;

funcţia polyval(a,s): evaluează polinomul cu coeficienţi în vectorul a pentru valori ale lui s.

Polnoame (continuare)
Polnoame (continuare)
 A(s) = s 3 + 3s 2 + 3s + 1
A(s) = s 3 + 3s 2 + 3s + 1

Example:

>> s = linspace (-5, 5, 100); >> coeff = [ 1 3 3 1]; >> A = polyval (coeff, s); >> plot (s, A), >> xlabel ('s') >> ylabel ('A(s)')

Polinoame (continuare)
Polinoame (continuare)

Operaţii

Comenzi MATLAB

Descriere

Adunare

c

= a + b

Suma polinoamelor (a,b au aceeaşi dimensiune)

Multiplicare cu scalar

b

= 3*a

Multiplică polinomul a cu 3

Multiplicare

c

= conv(a,b)

Întoarce vectorul polinomului produs.

polinomială

 

Împărţirea

[q,r] = deconv(a,b)

Întoarce coeficienţii polinomului cât q şi vectorul coeficienţilor rest

polinoamelor

r.

Derivata

polyder(a)

Întoarce coeficienţii polinomului derivat

polyder(a, b)

Întoarce coeficienţii polinomului obţinut prin derivarea produsului polinoamelor a şi b.

[n,d]=polyder(b,a)

Derivează fracţia raţională b/a.

Determinare

roots(a)

Determină rădăcinile polinomului a

rîdăcinilor

Find Polynomials

poly(r)

Determină polinomul cu rădăcinile specificate în r.

Descompunerea în fracţii elementeare.(DFE). – LAB3

Descompunerea în fracţii elementeare.(DFE). – LAB3 ( ) H s = ( s ) B ,

( )

H s =

( s )

B , unde B(s) şi A(s) sunt polinoame.

A ( s )

H(s) poate fi reprezentat în forma:

H ( s ) =

c

1

s

r

1

+

c

2

s

r

2

+

+

c

n

s

r

n

DFE (continuare)
DFE (continuare)

Exemplu (Rădăcini reale şi diferite):

s + 2 c 1 c 2 c 3 H ( s ) = =
s + 2
c
1
c 2
c 3
H ( s ) =
=
+
+
3
2
s
+
4
s
+
3
s
+
0
s
r
s
r
s
r
1
2
3
MATLAB:
>> b = [ 1 2];
>> a = [ 1 4 3 0];
NOTĂ: ultimul zero reprezintă coeficientul
zero al polinomului
>> [c,r] = residue (b, a)

c

=

-0.1667

-0.5000

0.6667

r

=

-3

-1

0

c1c = -0.1667 -0.5000 0.6667 r = -3 -1 0 c2 c3 r1 r2 r3 Rezultat:

c2= -0.1667 -0.5000 0.6667 r = -3 -1 0 c1 c3 r1 r2 r3 Rezultat: H

c3

-0.1667 -0.5000 0.6667 r = -3 -1 0 c1 c2 c3 r1 r2 r3 Rezultat: H

-0.1667 -0.5000 0.6667 r = -3 -1 0 c1 c2 c3 r1 r2 r3 Rezultat: H

r1

-0.5000 0.6667 r = -3 -1 0 c1 c2 c3 r1 r2 r3 Rezultat: H (

r2

r3-0.1667 -0.5000 0.6667 r = -3 -1 0 c1 c2 c3 r1 r2 Rezultat: H (

Rezultat:

H

( )

s

=

1 / 6

s

+ 3

1 / 2

s

+ 1

2 / 3

+

s

Grafică MATLAB. – LAB4
Grafică MATLAB. – LAB4

Pentru mai multe informaţii , help graph2d

Reprezentarea unui punct:

informaţii , help graph2d  Reprezentarea unui punct: funcţia plot () creeză o fereatsră definită ca

funcţia plot () creeză o fereatsră definită ca figură.

>> plot ( numevariabilă, ‘simbol’)

Exemplu : Reprezentrea unui număr 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 pătrat.

axis equal

Scalare egală pe ambele axe.

axis normal

Reconfigurează axele în pătrat cu scalare identică

axis (auto)

Fixare implicită

ambele axe. axis normal Reconfigurează axele în pătrat cu scalare identică axis (auto) Fixare implicită
Grafică Matlab (continuare)
Grafică Matlab (continuare)

Reprezentarea graficelor:

plot (x,y) – generează dependenţa grafică y=f(x)

semilogx (x,y) – generează dependenţa grafică z=f(x) cu x marcat logaritmic iar y liniar.

semilogy (x,y) – generează dependenţa grafică z=f(x) cu x marcat liiar iar y logaritmic.

loglog(x,y) – trasează graficul utilizând o scalare logaritmică atât pentru x cât şi pentru y.

Reprezentări multiple:

plot (x, y, w, z) – putem reprezenta mai multe curbe pe un acelaşi grafic utilizând 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 semnificaţiei curbelor trasate.

exerciţiu: tastaţi help legend pentru clarificări.

Figuri multiple:

figure (n) utilizat pentru a crea mai multe ferestre grafice.Se introduce comanda înainte de comanda plot().

Close(nume) –închide fereastra nume.

close all – închide toate ferestrele.

Subplots:

subplot (m, n, p) – împarte fereastra într-o reţea m x n, p specifică reprezentarea curentă.

Crafică MATLAB (continuare)
Crafică MATLAB (continuare)

Exemplu: (funcţia polinomială) Reprezentăm funcţia polinomială utilizând scalare linear/lineară, log/lineară , scalarea linear/log şi log/log :

y = 2x 2 + 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;

Grafică MATLAB (continuare)
Grafică MATLAB (continuare)
Grafică MATLAB (continuare)
Grafică MATLAB (continuare)
Grafică MATLAB (continuare)

Adăugarea de elemente noi pe un grafic existent:

Comanda hold se utilizează pentru a adăuga linii sau puncte pe un grafic.

hold on – permite reprezentări noi peste graficele anterior trasate. După caz se realizează automat o rescalare.

hold off – elimină posibilitatea suprapunerii graficelor (opţiune implicită)

Caroiaj şi axe:

Command

Description

grid on

Adaugă pe grafic o reţea.

grid off

Elimină reţeaua (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ă conţinutul text pe locaţia (x,y) impusă.

Comenzi suplimentare pentru reprezentări grafice.

Comenzi suplimentare pentru reprezentări grafice. Colorarea punctelor pe curbă Symbol Color y yellow m

Colorarea punctelor pe curbă

Symbol

Color

y

yellow

m

magenta

c

cyan

r

red

g

green

b

blue

w

white

k

black

Markeri pentru puncte

Stilul de linie

Symbol

Marker

Symbol

Line Style

.

solid line

o

:

dotted line

x

 

–.

dash-dot line

+

+

– –

dashed line

*

 

s

d

v

 

^

 

h

hexagram

Programare MATLAB.
Programare MATLAB.

Controlul condiţionărilor

Cicluri

Controlul condiţionărilor.
Controlul condiţionărilor.

Sintaxa operatorului if:

if expresie logică comenzi

end

Exemplu:

if d <50 contor = contor+ 1; disp(d); if b>d

b=0;

end

end

Exemplu: (else şi elseif) if temperatura > 100 disp (‘Naşpa – funcţionare proastă.’) elseif temperatura > 90 disp (‘Funcţionare bună.’);

else

disp (‘Frig – opreşte instalaţia.’)

end

Controlul condiţionărilor. (continuare)

Controlul condiţionărilor. (continuare)  Sintaxa operatorului switch : switch expresie logică case rezultatul

Sintaxa operatorului switch :

switch expresie logică case rezultatul condiţionării 1

comandă

case rezultatul condiţionării 2 comandă

otherwise

end

comandă

Exemplu:

switch interval < 1 case 1 xinc = interval /10; case 0 xinc = 0.1;

end

Cicluri.
Cicluri.

Ciclu for

for variabila = expresie

comanda

end

Ciclu while

while expresia 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;

end EPS = 2*EPS

comanda break break – folosită pentru ieşirea din ciclu.

M-Fişiere.
M-Fişiere.

Comenzile pot fi rulate în fereastra de lucru Matlab. Este cu mult mai comod de a elabora m-fişiere.

M-fişierele sunt fişiere text ce conţin o succesiune de comenzi Matlab.

MATLAB poate deschide şi executa fişierele exact exact ca şi cum ar fi introduse de la tastatură.

Pentru a rula un fişier.m este suficient să introducem numele fişierului în fereastra de lucru (asigurându-ne că directorul este corect setat) Toate comenzile Matlab sunt m-fişiere.

Fişiere funcţie.
Fişiere funcţie.

Sintaxa unui fişier funcţie:

function [Variabile de ieşire] = nume_funcţie (variabile de intrare);

Lansarea funcţiei dorite:

(variabile de intrare);  Lansarea funcţiei dorite: NOTĂ: numele funcţiei este de dorit să fie acelaşi

NOTĂ: numele funcţiei este de dorit să fie acelaşi cu numele fişierului pentru a evita confuzii.

-- funcţia este lansată prin numele fişierului şi nu al funcţiei definite. -- în cadrul funcţiei pot utiliza numai funcţii predefinite înscrise ca m-fişiere.

Comments:

-- Primele linii pot fi introduse comentarii care pot fi apelate prin help.