Sunteți pe pagina 1din 12

LUCRAREA 1

INTRODUCERE IN MATLAB

1. Introducere

MATLAB este un pachet de programe dedicat calcului numeric i reprezentrilor


grafice. Elementul de baz cu care opereaz este matricea, de aici provenind i numele
su: MATrix LABoratory. Resursele sale de calcul i reprezentare grafic sunt bogate,
permind operaii matematice fundamentale, analiza datelor, programare, reprezentri
grafice 2D i 3D, realizarea de interfee grafice etc. Din punct de vedere al construciei
sale, MATLAB este alctuit dintr-un nucleu de baz n jurul cruia sunt grupate
TOOLBOX-urile. Acestea reprezint nite aplicaii specifice, fiind de fapt colecii extinse
de funcii MATLAB care dezvolt mediul de programare de la o versiune la alta, pentru a
rezolva probleme din diverse domenii.
2. Comenzi i funcii principale n MATLAB

MATLAB opereaz cu dou tipuri de ferestre:


1. fereastra de comenzi;
2. fereastra pentru reprezentri grafice.
La deschiderea programului MATLAB va aprea pe ecranul calculatorului
fereastra de comenzi, avnd n partea de sus bara de meniuri aferent. Simbolul >>
reprezint prompterul MATLAB i se afl la nceputul fiecrei linii de comand din
fereastra de comenzi. Ferestrele pentru reprezentri grafice vor aprea atunci cnd se va
cere prin comenzi specifice afiarea unor grafice.
Atenie: Comenzile introduse anterior pot fi readuse n linia de comand prin folosirea
sgeilor de la tastatur, i (cutarea se face ca ntr-o list).
3. Funcii MATLAB de interes general

help furnizeaz informaii despre MATLAB i funciile acestuia.


Sintax:
help nume furnizeaz informaii despre nume (poate fi un nume de funcie sau un nume
de director).
Exemplu:
help fft furnizeaz informaii despre transformata Fourier discret.
who listeaz numele variabilelor din spaiul de lucru.
whos furnizeaz informaii suplimentare referitoare la variabilele din
spaiul de lucru (nume, dimensiune etc.).
format stabilete formatul extern de afiare al numerelor pe ecran.
Sintaxa:
format opiune parametrul opiune poate fi:
- short 5 cifre // formatul implicit
- long 15 cifre
- short e 5 cifre + exp (puteri ale lui 10)
- long e 15 cifre + exp (puteri ale lui 10)
etc.
Pentru mai multe informaii tastai help format.
Exemple:
format short
x=pi x =
3.1416
format long
xx=
3.14159265358979
S se verifice i celelalte tipuri de format folosind aceeai valoare x.
clear terge din memorie una sau mai multe variabile.
Sintaxe:
clear v terge din memorie variabila v.
clear v1 v2 terge din memorie variabilele v1 i v2 (sintaxa e valabil pentru oricte
variabile).
clear terge din memorie toate variabilele definite pn n acel moment.
lookfor listeaz toate numele de fiiere care au n prima linie a help-ului cuvintele
menionate ca argument, precum i prima linie din help.

4. Definirea variabilelor

Variabilelor li se atribuie valori numerice, tiprindu-se direct expresia numeric. De


exemplu
a=1+2
conduce la rezultatul:
a= 3
Rezultatul nu se afieaz dac se pune punct i virgul la sfritul expresiei, de exemplu
a=1+2;
n MATLAB se utilizeaz urmtorii operatori aritmetici:

Unei variabile i se poate atribui o formul ce utilizeaz operatorii menionai


anterior i una sau mai multe mrimi definite anterior chiar n cadrul comenzii curente.
De exemplu,
presupunnd c a este definit anterior:
b=3^a
va returna valoarea:
b=
27
Exist variabile predefinite:
i=sqrt(-1)
j=sqrt(-1)
pi=3,1416...
etc.
Exemplul 1
y=2*(1+4*j)
conduce la
y=
2.0000+8.0000i
Pentru definirea variabilelor exist un numr de funcii predefinite, dintre care,
cele mai uzuale pentru prelucrarea semnalelor, sunt prezentate n Tabelul 1.

Tabelul 1

De exemplu, cu y din exemplul anterior, comanda:


c=abs(y)
conduce la:
c=
8.2462
sau:
u=angle(y)
la:
u=
1.3258
Se face observaia c funcia exp se poate utiliza cu numere complexe, de
exemplu, cu acelai y, comanda:
d=exp(y)
conduce la:
d=
-1.0751+7.3104i
fapt evident, verificabil utiliznd formula lui Euler
d = ey = eRey+ j Imy = e2(cos8 + j sin8)

5. Definirea scalarilor, vectorilor i matricelor

MATLAB-ul este un pachet de programe care lucreaz numai cu un singur tip de


obiecte, matrice numerice rectangulare, cu elemente reale sau complexe. n acest sens
scalarii sunt asimilai matricelor cu o linie i o coloan (1 1), iar vectorii sunt asimilai
matricelor cu o linie (1 n) sau o coloan (n 1).
Introducerea matricelor n mediul de lucru se face prin una din metodele:
introducerea explicit;
generarea prin instruciuni i funcii;
crearea de fiiere M;
ncrcarea din fiiere de date externe.
Cea mai simpl metod const n utilizarea unei liste explicite. Trebuie respectate
urmtoarele reguli:
elementele unei linii trebuie separate prin spaii libere sau virgul;
liniile se separ prin punct-virgul ;;
elementele matricei sunt cuprinse ntre paranteze drepte [ ] .
Elementele matricelor pot fi numere reale sau complexe sau orice alt variabil
MATLAB.
Elementele unei matrice A pot fi identificate, n MATLAB, prin notaia A(i,j) i
semnific elementul de la intersecia liniei i cu coloana j. Pentru a face referire la un
element al matricei sunt necesari doi indici, iar referirea la un element al unui vector se
face cu un singur indice.
Exemplul 2
Matricele sunt definite introducnd elementele linie cu linie:
A=[1 2 3; 3 6 8]
Aceast comand creeaz matricea
1 2 3
A = 3 6 8

Comanda A(2,1) afieaz rezultatul:


ans =
3
Se remarc faptul c dac se atribuie o valoare unui element care ocup o poziie
n afara dimensiunii maxime a unei matrice sau unui vector, dimensiunea
acesteia/acestuia este mrit automat pn la valoarea indicelui noului element, iar
elementele nedefinite sunt setate la valoarea zero.
Exemplul 3
Comanda: A(2,5)=4
creeaz matricea:
1 2 3 0 0
A=
3 6 8 0 4
Comanda size(A) returneaz dimensiunea matricei A.
Se definesc mai multe matrice particulare:
matricea vid A=[ ]
matricea nul de ordin n m : A= zeros(n,m)
matricea unitar de ordin n m : A= ones(n,m)
matricea cu diagonal 1, de ordin n n A= eye(n)
Vectorii pot fi definii n dou moduri:
introducerea explicit a componentelor vectorului;
Exemplul 4
Comanda:
v=[1 2 3 4 5 ]
creeaz un vector cu o linie i 5 coloane. Comanda:
v(6)=6
conduce la vectorul:
v=[1 2 3 4 5 6]
Fie vectorul
1
c = 2
3

Aadar c(2) = 2 .
Al doilea mod este utilizat pentru a crea vectori cu elemente egal spaiate prin comanda:
k=amin:pas:amax
unde amin este valoarea primului element din vector, pas este valoarea incrementului,
amax limita pn la care pot lua valori componentele vectorului. Dac incrementul
lipsete, atunci implicit valoarea sa este 1.
Exemplul 5

k=0:0.5:5.1
creeaz un vector cu elementele 0, 0.5, 1, 1.5,....5 .
Comanda length(v) returneaz lungimea vectorului v.

6. Operaii cu matrice

Fie X i Y dou matrice. Se definesc urmtoarele operaii


a) adunarea i scderea, definite pentru cazul n care dimensiunile matricei X sunt egale
cu dimensiunile matricei Y:
Z=X+Y
Z=X-Y
b) nmulirea, definit atunci cnd X are dimensiunile (m n) iar Y (n p)
Z=X*Y
c) mprirea la dreapta, definit atunci cnd X are dimensiunile (n n) iar Y (n n)
Z=X/Y
i este identic cu X*Y-1 (Y-1 este inversa matricii Y).
d) nmulirea element cu element (ntre componentele a dou matrice de aceleai
dimensiuni)
Z=X.*Y
e) mprirea la stnga
Z=X\Y
este identic cu X-1*Y (X-1 este inversa matricii X).
f) ridicarea la putere
Z=X^p
reprezint ridicarea la puterea p a matricei X. Expresia X^p are sens numai pentru
matrice ptratice i p scalar.
g) ridicarea la putere a elementelor unui vector/matrice
Z=X.^p
h) ridicarea la puterea elementelor unui vector/matrice a unui scalar
Z=p.^X
i) transpunerea
Z=X
Acest lucru face ca pentru o matrice cu dimensiunea n m s se obin o matrice Z cu
dimensiunea m n.
i. Operaii cu vectori

Operaiile cu vectori se efectueaz prin particularizarea regulilor de la operaii cu


matrice impunnd ca una din dimensiuni sa fie egal 1, acolo unde dimensiunea permite
acest lucru.
Produsul scalar a doi vectori se poate calcula n urmtoarele moduri:
z= sum(a.*b) dac vectorii a i b sunt amndoi fie vectori coloan fie vectori linie
sau
z=(a*b) dac a i b sunt vectori linie.
Observaie: vectorii a i b trebuie s fie de aceeai dimensiune.
ii. Construirea unei funcii

Mediul de programare Matlab ofer posibilitatea crerii unei funcii ce folosete


funcii Matlab, funcii definite anterior, operatori predefinii etc. Numele fiierului n care
este scris funcia trebuie s fie identic cu numele funciei. De asemenea, prima linie a
fiierului trebuie s conin sintaxa caracteristic definiiei unei funcii: function
var_returnate = nume_functie(var_intrare)
De exemplu, o funcie ce realizeaz suma a dou variabile x i y, rezultatul fiind returnat
n variabila z, se realizeaz astfel:
function z=xplusy(x,y);
z=x+y;
Fiierul astfel scris se salveaz sub denumirea xplusy.m . Funcia definit anterior poate
fi apelat din linia de comenzi Matlab, dintr-un script sau dintr-o alt funcie. De
exemplu:
>>a=1;b=2; c=xplusy(a,b);

7. Reprezentri grafice elementare

Funciile de baz MATLAB pentru reprezentrile grafice sunt:


plot
loglog
semilogx
semilogy
Pentru reprezentarea graficelor n coordonate liniare se utilizeaz funcia plot.
Funcia plot se apeleaz cu una din sintaxele:
plot (y)
Dac argumentul y este complex, plot(y) este echivalent cu:
plot(real(y), imag(y)).
Dac y este un vector real (linie sau coloan), atunci funcia plot traseaz graficul
y=y(i), unde i=1,2,L este numrul de ordine al elementului y, L fiind lungimea
vectorului y.
plot (x,y) reprezint vectorul y funcie de vectorul x.
Dac x este vector, iar y este matrice, atunci coloanele lui y sunt trasate n
funcie de vectorul x, rezultatul fiind reprezentarea mai multor grafice n aceeai
fereastr grafic.
Dac x i y sunt matrice de aceeai dimensiune, atunci se reprezint coloanele
lui y n funcie de coloanele lui x.
plot (x,y,linie tip) linie tip fiind o succesiune de caractere
(vezi Tabelul 2) care specific tipul liniei cu care este trasat graficul.
plot (x1,y1,x2,y2,) reprezint simultan mai multe grafice, n acelai
sistem de coordonate i n aceeai fereastr grafic.
Graficele se pot trasa utiliznd linii i markere de diferite culori. Acest lucru este
prezentat n Tabelul 2.

Tabelul2

8. Reprezentarea discret a datelor

Reprezentarea discret a datelor se face cu funcia stem sub forma unor linii
terminate cu cercule. Se apeleaz cu una din sintaxele:
stem(y) traseaz un grafic y=y[i], i=1,2,3 ....L din linii terminate cu cercule
stem(x,y) traseaz un grafic cu linii terminate cu cercule, cu locaiile specificate
de vectorul x. Valorile lui x trebuie s fie egal spaiate.
stem(x,ylinie-tip) este similar funciei plot(x,y,linie tip), cu deosebirea c
se traseaz graficul cu linii terminale cu cercule.
Observaie: att la funcia plot ct i la funcia stem lungimile vectorilor de pe abscis i
ordonat trebuie sa fie egale.

9. Personalizarea graficelor

Pentru plasarea n cmpul graficelor a unor texte, etichete ale axelor, precum i a
titlului se utilizeaz urmtoarele funcii:
title(text) comand prin care titlul graficului se plaseaz deasupra acestuia;
text fiind un ir de caractere care reprezint titlul graficului;
xlabel(text) precizeaz eticheta axei x; text fiind un ir de caractere care
reprezint numele axei, unitatea de msur etc.;
ylabel(text) precizeaz eticheta axei y; text fiind un ir de caractere care
reprezint numele axei, unitatea de msur etc.;
grid on traseaz o reea de linii orizontale i verticale pe grafic
grid off elimin reeaua de linii orizontale i verticale trasate pe grafic de grid
on
Exemplul 6

1. S se reprezinte grafic funcia f (t) = sin (270t), cu culoarea neagr i linie punct
i g(t) = f (t) cu markere * de culoare verde. S se scrie titlul graficele funciilor f(t) si
g(t), pe axa x s se scrie t, iar pe axa y s se scrie f(t) i g(t).

t=0:.001:0.02
f=sin(2*pi*70*t)
g=-f
plot(t,f,'-.k',t,g,'*g'),grid on
title('Graficele functiilor f(t) si g(t)')
xlabel('t'), ylabel('f(t) si g(t)')
Graficele functiilor f(t) si g(t)
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02
10 Aplicatii propuse
1. Operarea cu matrice, vectori i scalari
Se dau matricele:
A=[4 6 9;1 1 1;2 3 2]
B=[2 7 4;5 2 8;15 0 0]
i scalarul p=2. S se calculeze n MATLAB:
a) 1. C1=A+B, 2. C2=A-B, 3. C3=A+p, 4. C4=A*B, 5. C5=A*p, 6.D=A,

7. E=B, 8. Z=A/B, 9.W=A\B, 10.Y=A^p


b) S se genereze un vector cu pas liniar, cu limitele: amin = 2, amax = 10, pas = 2
c) S se genereze un vector cu pas liniar, cu limitele: amin = 2, amax = 10, N = 5 ,
unde N este numrul de elemente.
d) Fie un vector y=1:0.11:123 . S se calculeze lungimea vectorului y i s se
genereze un vector cu toate elementele 1 de lungime egal cu lungimea vectorului y.
e) S se efectueze produsul scalar al vectorilor:
a=[2 3]
b=[-4 4]
f) S se calculeze produsul element cu element al matricilor:
X=[1 2 3;4 5 6;7 8 9]
Y=[0 1 0;0 1 0;0 1 0]
2. Reprezentarea grafic
S se reprezinte grafic funcia discret:
1
x(n) = sin( 2p n) pentru n = 0,20
10
Graficul s fie de culoare roie, reprezentat cu stelue (*) (a se face apel la comanda help
stem) . S se scrie titlul i identificrile axelor.
3. Realizarea unei funcii
S se creeze o funcie, denumit prod.m, prin care se face produsul scalar a doi vectori
linie x i y, de aceeai lungime.