Documente Academic
Documente Profesional
Documente Cultură
1. Introducere
MATLAB este un pachet de programe dedicat calcului numeric i reprezent#rilor grafice. Elementul de baz# cu care opereaz# este matricea, de aici provenind i numele s#u: MATrix LABoratory. Resursele sale de calcul i reprezentare grafic# sunt bogate, permi&nd opera&ii matematice fundamentale, analiza datelor, programare, reprezent#ri grafice 2D i 3D, realizarea de interfe&e grafice etc. Din punct de vedere al construc&iei sale, MATLAB este alc#tuit dintr-un nucleu de baz# n jurul c#ruia sunt grupate TOOLBOX-urile. Acestea reprezint# ni te aplica&ii specifice, fiind de fapt colec&ii extinse de func&ii MATLAB care dezvolt# mediul de programare de la o versiune la alta, pentru a rezolva probleme din diverse domenii.
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 fi iere care au n prima linie a help-ului cuvintele men&ionate ca argument, precum i prima linie din help.
4. Definirea variabilelor
Variabilelor li se atribuie valori numerice, tip#rindu-se direct expresia numeric#. De exemplu a=1+2 conduce la rezultatul: a= 3 Rezultatul nu se afi eaz# dac# se pune punct i virgul# la sfr itul expresiei, de exemplu a=1+2; n MATLAB se utilizeaz# urm#torii operatori aritmetici:
Unei variabile i se poate atribui o formul# ce utilizeaz# operatorii men&iona&i anterior i una sau mai multe m#rimi 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 num#r de func&ii 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 observa&ia c# func&ia exp se poate utiliza cu numere complexe, de exemplu, cu acela i 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)
Aceast# comand# creeaz# matricea 1 2 3 A= 3 6 8 Comanda A(2,1) afi eaz# rezultatul: ans = 3 Se remarc# faptul c# dac# se atribuie o valoare unui element care ocup# o pozi&ie n afara dimensiunii maxime a unei matrice sau unui vector, dimensiunea acesteia/acestuia este m#rit# 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 defini&i 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 A adar c(2) = 2 . Al doilea mod este utilizat pentru a crea vectori cu elemente egal spa&iate 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 lipse te, 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. Opera#ii cu matrice
Fie X i Y dou# matrice. Se definesc urm#toarele opera&ii a) adunarea i sc#derea, definite pentru cazul n care dimensiunile matricei X sunt egale cu dimensiunile matricei Y: Z=X+Y Z=X-Y b) nmul&irea, definit# atunci cnd X are dimensiunile (m n) iar Y (n p) Z=X*Y c) mp#r&irea 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) nmul&irea element cu element (ntre componentele a dou# matrice de acelea i dimensiuni) Z=X.*Y
e) mp#r&irea 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 p#tratice 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 ob&in# o matrice Z cu dimensiunea m n. i. Opera#ii cu vectori Opera&iile cu vectori se efectueaz# prin particularizarea regulilor de la opera&ii 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 urm#toarele 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. Observa#ie: vectorii a i b trebuie s# fie de aceea i dimensiune. ii. Construirea unei func#ii Mediul de programare Matlab ofer# posibilitatea cre#rii unei func&ii ce folose te func&ii Matlab, func&ii definite anterior, operatori predefini&i etc. Numele fi ierului n care este scris# func&ia trebuie s# fie identic cu numele func&iei. De asemenea, prima linie a fi ierului trebuie s# con&in# sintaxa caracteristic# defini&iei unei func&ii: function var_returnate = nume_functie(var_intrare)
De exemplu, o func&ie 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; Fi ierul astfel scris se salveaz# sub denumirea xplusy.m . Func&ia definit# anterior poate fi apelat# din linia de comenzi Matlab, dintr-un script sau dintr-o alt# func&ie. De exemplu: >>a=1;b=2; c=xplusy(a,b);
(vezi Tabelul 2) care specific# tipul liniei cu care este trasat graficul. plot (x1,y1,x2,y2,) reprezint# simultan mai multe grafice, n acela i sistem de coordonate i n aceea i fereastr# grafic#. Graficele se pot trasa utiliznd linii i markere de diferite culori. Acest lucru este prezentat n Tabelul 2.
Tabelul2
9. Personalizarea graficelor
Pentru plasarea n cmpul graficelor a unor texte, etichete ale axelor, precum i a titlului se utilizeaz# urm#toarele func&ii: 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 m#sur# etc.; ylabel(text) precizeaz# eticheta axei y; text fiind un ir de caractere care reprezint# numele axei, unitatea de m#sur# etc.; grid on traseaz# o re&ea de linii orizontale i verticale pe grafic grid off elimin# re&eaua de linii orizontale i verticale trasate pe grafic de grid on Exemplul 6 1. S# se reprezinte grafic func&ia f (t) = sin (2*70t), cu culoarea neagr# i linie punct i g(t) = + f (t) cu markere * de culoare verde. S# se scrie titlul graficele func&iilor 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 -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,
Graficul s# fie de culoare ro ie, reprezentat cu stelu&e (*) (a se face apel la comanda help stem) . S# se scrie titlul i identific#rile axelor. 3. Realizarea unei func#ii S# se creeze o func&ie, denumit# prod.m, prin care se face produsul scalar a doi vectori linie x i y, de aceea i lungime.