pi - lab 1
DESCRIPTION
lab piTRANSCRIPT
-
Lucrarea de laborator nr. 1
Introducere in Matlab
1. Obiectivele lucrrii
Aceast lucrare de laborator este dedicat are ca scop familiarizarea studenilor cu noiunile de baz MATLAB. Unele subiecte pot fi cunoscute de la alte discipline dar sunt prezentate aici pentru a oferi o baz comun de plecare pentru toi studenii. Acestea sunt noiuni importante pentru a putea aborda cu succes subiecte legate de procesarea imaginilor,
n final, studenii trebuie s fie capabili s utilizeze comenzile de baz MATLAB, s tie s genereze vectori i matrici, s efectueze operaii cu numere i matrici, s seteze spaiul de lucru i s foloseasc facilitile MATLAB pentru reprezentri grafice.
2. Desfurarea lucrrii
Ce este MATLAB? MATLAB este un limbaj de nalt performan i un software folosit pentru
implementarea unor programe cu aplicaii n tehnic. El permite: efectuarea de calcule matematice dezvoltarea de algoritmi modelarea i simularea sistemelor analiza i vizualizarea datelor generarea unor reprezentri grafice tiinifice i inginereti
MATLAB este un sistem interactiv (toate datele sunt ntotdeauna n memorie) cu
urmtoarele caracteristici: elementul de baz pentru reprezentarea datelor este un tablou nu este nevoie de declaraii sau de funcii prototip pentru a forma un tablou toate datele sunt reprezentate n dubl precizie n modul script sau n modul linie de comand, datele sunt ntotdeauna accesibile
i n memorie
Comenzi MATLAB de baz Unde va aflai: Folosii comanda pwd pentru a afla unde va aflai, n calculatorul pe care lucrai, Folosii comanda dir pentru a lista fiierele din directorul curent, Folosii comanda cd pentru a schimba directorul, Apoi, comutai la directorul principal pentru a putea salva rezultatele acestei lucrri
de laborator.
-
Comanda help Putei obine informaii i indicaii legate de toate comenzile i funciile MATLAB
(atenie, n MATLAB literele mari i mici sunt diferite; sistemul este case sensitive) prin: >> help comand (funcie)
De exemplu, tastai >> help help i citii ce apare pe ecranul monitorului Ar trebui s obinei multe informaii despre cum s gsii informaii legate de anumite subiecte. Dac Limba Englez va face probleme, nu va sfiii s cerei ajutor de la cadrul didactic ndrumtor.
De exemplu, dac suntei interesai de funcia cosinus, tastai: >> help cos
Exerciiul 1.1 Folosii comada help pentru a v informa despre cel puin trei funcii folosite n Automatic, Electronic, Procesarea Imaginilor, Statistic Matematic etc.
Dac apsai sgeile up down de la tastatur, vei putea afia comenzile
anterioare.
Comanda lookfor Dac nu suntei siguri care este numele comenzii MATLAB pe care dorii s o
folosii, comanda lookfor v ofer soluia. De exemplu, dac dorii s cutai funcia cosinus sau alte funcii legate de aceasta,
tastai: >> lookfor cosine
Ca rspuns, MATLAB va afia toate funciile care au legtur cu cosine mpreun cu o scurt descriere: ACOS Inverse cosine. ACOSH Inverse hyperbolic cosine. COS Cosine. COSH Hyperbolic cosine. TFFUNC time and frequency domain versions of a cosine modulated Gaussian pulse. DCT2 Compute 2-D discrete cosine transform. DCTMTX Compute discrete cosine transform matrix. DCTMTX2 Discrete cosine transform matrix. IDCT2 Compute 2-D inverse discrete cosine transform. CHIRP Swept-frequency cosine generator. DCT Discrete cosine transform.
-
FIRRCOS Raised Cosine FIR Filter design. IDCT Inverse discrete cosine transform. DCT Discrete cosine transform. IDCT Inverse discrete cosine transform. dctold.m: %DCT Discrete cosine transform. idctold.m: %IDCT Inverse discrete cosine transform. BLKACOS This block defines an output angle that is the arccosine of the input. BLKCOS This block defines the output as the cosine of the input. BLKCOSASIN This block defines the cosine of an angle whose sine is u. BLKCOSATAN This block defines the cosine of an angle whose tangent is u1/u2.
n continuare, tastai help cos pentru a obine detalii despre funcia cos: >> help cos
Exerciiul 1.2 Explicai detaliile pe care le-ai obinut pentru funcia cos. Exerciiul 1.3 Repetai pentru funcia arctg.
Dac apsai sgeile up down de la tastatur, vei putea afia comenzile
anterioare.
Formarea unui vector sau a unei matrici Dup cum am spus mai nainte, tablourile (matricile i vectorii) sunt elementele de
baz ale unui program MATLAB. MATLAB vede matricile la fel cum alte limbaje de programare vd numerele i poate efectua operaii n matrici n mod direct, fr folosirea unor bucle, proprietate care se va dovedi foarte util pentru procesarea imaginilor.
Pentru a afla mai multe despre vectori i matrici, tastai urmtoarele instruciuni, observai i comentai rezultatele.
Tastai: >> x = [1 2 3 4 5 4 3 2 1];
Consecina este c, va fi creat un vector linie, numit x, cu 9 elemente (1 x 9), ale crui componente au valorile specificate n instruciune. >> x va avea ca rezultat afiarea pe ecran a componentelor vectorului x.
Apoi,
-
>> who ofer indicaii depre toate matricile/toi vectorii care exist n spaiul de lucru (workspace), iar >> whos va oferi mai multe detalii despre aceste matrici/aceti vectori.
Exerciiul 1.4 Descriei spaiul de lucru din acest moment i explicai ce conine (tipuri de date, caracteristici etc.).
n continuare, tastai >> y = [6; 7; 8; 9; 0; 9; 8; 7; 6]; pentru a crea un nou vector, numit y, de tip 9 x 1 (vector coloan).
Observai caracterul ; la sfritul instruciunii. n acest caz, MATLAB nu va afia vectorul y.
Apoi, >> y' va avea ca efect afiarea transpusei lui y.
Instruciunea >> z = [1 2 3; 4 5 6; 7 8 9; 0 1 2] va conduce la crearea unei matrici z.
Exerciiul 1.5 Ce este vectorul transpus al unui vector dat? Care este matricea z?
Operatori
Operatorul : Metoda cea mai bun pentru a defini rapid anumii vectori este folosirea
operatorului : De exemplu, tastai: >> a = 0:10 >> b = -5:10 >> c = 0:2:10 >> d = 10:-2:-5 >> e = 0:0.01:4.2 >> f = -pi:0.01:pi
-
Exerciiul 1.6 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele obinute.
La o analiz atent, vei putea observa c aceste instruciuni sunt de forma
limita inferioar:increment:limita superioar
Dac nu se indic un increment, valoarea lui implicit este 1. Dac dorii s definii vectori elementari care conin numai valori 1 sau 0, trebuie s
folosii instruciunile zeros sau ones. O alt instruciune util este randn, care permite formarea unei matrici de numere
aleatoare. Putei accesa comenile help pentru zeros, ones i randn. Pentru a vedea cum funcioneaz ones i zeros, tastai: >> g = zeros(2,4) >> h = ones(5,3)
Exerciiul 1.7 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele obinute.
Operatorii aritmetici standard sunt
Putei ncerca i explica rezultatele pentru urmtoarele instruciuni: >> 3^2 >> y' >> x+y' >> x*y >> 3*x
Exerciiul 1.8 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele obinute.
Operatorii / * i ^ au i omologi matriciali, ./ .* i .^ , care aplic operaia respectiv fiecrui element al matricilor. De exemplu, comparai x*y cu x.*y
Pentru aceasta, tastai: >> x^2 >> x.^2
+ plus minus / mprire * nmulire ^ exponent
-
>> x.*x >> x*x
Exerciiul 1.9 Explicai efectul fiecrei instruciuni. Scriei i explicai rezultatele obinute.
Apoi, folosind comanda whos, vei putea observa i explica o muime de variabile n spaiul de lucru.
Dac tastai clear i whos din nou, vei observa c spaiul de lucru a fost ters.
Matrici i operatori Tastai:
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] >> sum(A) % afieaz suma coloanelor matricii A.
Ca rezultat, pe ecran se va afia: >> 34 34 34 34
Exerciiul 1.10 Demonstrai c rezultatul obinut este corect.
Investigai n continuare: >> sum(sum(A)) >> A % Transpusa conjugatei (pentru numere complexe), n caz contrar, transpusa. >>sum(A) % Suma liniilor matricii A (coloanele lui A).
Exerciiul 1.11 Demonstrai c rezultatul obinut este corect.
Determinai valoarea elementului (4,2) din matricea A: >> A(4,2)
Dac vei tasta, de exemplu: >> A(4,5) vei obine un mesaj de eroare.
Exerciiul 1.12 Demonstrai c rezultatul obinut este corect. De ce s-a rspuns cu un mesaj de eroare?
-
Generarea vectorilor folosind notaia : Un vector se poate genera prin introducerea direct a elementelor lui:
>> W=[1 2 3 4]
Dar, vectorii pot fi generai i cu ajutorul operatorului :. Aceast metod se folosete pentru a genera vectori i pentru a indica sub-matrici. Notaia : poate fi folosit n mod creativ pentru a factoriza diferite operaii cu minimizarea numrului de instruciuni loop i pentru a face codul MATLAB mai simplu de neles. >> Q=[1:5]
Se poate folosi orice increment pentru a construi vectori: >> E=[2:2:10]
Exerciiul 1.13 Indicai vectorii W, Q i E. Explicai semnificaiile fiecrei instruciuni.
Generarea matricilor Matricile pot fi generate indicnd liniile lor separate prin caracterul ;. Elementele
dintr-o linie sunt separate prin caracterul , >> A=[1,2,3;4,5,6;7,8,9]
Notaia : poate fi folosit pentru a accesa submatrici ale unei matrici. >> A(1:4,3)
Exerciiul 1.14 Scriei matricea A. Explicai fiecare element din ultima instruciune i scriei rezultatul. Demonstrai c rezultatul obinut este corect.
tergerea liniilor i coloanelor Aceast operaie se poate realiza folosind paranteze drepte. Tastai
>> X=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
Apoi, pentru a terge a doua coloan a matricii X, tastai >> X(:,2)=[]
Exerciiul 1.15 Scriei matricea A. Explicai fiecare element din ultima instruciune i scriei rezultatul. Demonstrai c rezultatul obinut este corect.
-
Operaii cu matrici
mprirea matricilor Dac A este o matrice ptrat inversabil iar b este un vector coloan compatibil cu
A, sau un vector linie compatibil cu A, atunci x = A\b este soluia ecuaiei A * x = b
x = b/A este soluia ecuaiei x * A = b
Operatorii * ^ \ i / pot fi folosii precedai de . Tastai:
>> B=[1 2;3 4] >> B*B >> B.*B
Observai i explicai diferena.
Exerciiul 1.16 Scriei matricea B. Explicai fiecare element din utimile trei instruciuni i scriei rezultatul. Demonstrai c rezultatul obinut este corect.
Funcii matriciale speciale
Tastai i explicai rezultatele:
+ Adunare Scdere * nmulire ^ Ridicarea la putere Traspusa (real) sau transpusa conjugat (complex) . Transpusa (real sau complex) \ mprirea la stnga / mprirea la dreapta
Eye Genereaz o matrice unitate Zeros Genereaz o matrice cu toate elementele egale cu zero Ones Genereaz o matrice cu toate elementele egale cu unu Triu Genereaz partea triunghiular superioar a unei matrici date.
(Restul elementelor sunt egale cu zero.) Tril Genereaz partea triunghiular inferioar a unei matrici date.
(Restul elementelor sunt egale cu zero.) Rand Genereaz o matrice ce conine elemente aleatoare
-
>> zeros(2,3) >> A=rand(3) >> triu(A)
Exerciiul 1.17 Explicai fiecare element din utimile trei instruciuni i scriei rezultatul. Demonstrai c rezultatul obinut este corect.
Matricile pot fi formate i din blocuri.
De exemplu: >> A=rand(3); >> B=[A, zeros(3,2); zeros(2,3),eye(2)];
Exerciiul 1.18 Explicai fiecare element din utimile dou instruciuni i scriei rezultatul. Demonstrai c rezultatul obinut este corect.
Spaiul de lucru i salvarea rezultatelor Pe msur ce introducei comezi i instruciuni MATLAB, datele sunt ntotdeauna
n spaiul de lucru i pot fi salvate. Spaiul de lucru poate fi neles ca fiind o zon asociat de memorie accesibil din linia de comand.
Pentru a vedea spaiul de lucru, se folosete whos Pentru a terge spaiul de lucru, se folosete clear Pentru a salva spaiul de lucru, se folosete save name. Folosii help save
pentru a afla mai multe despre save. Pentru a ncrca spaiul de lucru, se folosete load name. Folosii help load
pentru a afla mai multe despre load.
Reprezentri grafice n MATLAB
Grafice bidimensionale Comanda plot permite reprezentarea grafic a numerelor dintr-un tablou n funcie
de numerele dintr-un al doilea tablou de aceeai lungime. De exemplu, tastai i explicai efectul fiecrei comenzi i rezultatul global:
>> t=0:0.01:2; >> temp=exp(-t); >> plot (t,temp) >> xlabel('Timp') >> ylabel('Temperatura') >> title('Temperaturi tranzitorii')
Exerciiul 1.19 Explicai fiecare element din utimile instruciuni i explicai efectul instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?
-
Pot fi schimbate culorile, simbolurile i tipul liniilor. De exemplu, tastai i explicai rezultatele fiecrei comenzi: >> x=0:pi/16:2*pi; >> y=sin(x); >> plot(x,y,'*..') >> xlabel('x') >> ylabel('sin(x)')
Exerciiul 1.20 Explicai fiecare element din utimile instruciuni i explicai efectul instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?
Reprezentri grafice multiple n aceeai fereastr Tastai i explicai rezultatele:
>> x=0:pi/16:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,'* -',x,y2,'r s -') >> xlabel('x') >> ylabel('sin(x) , cos(x)') >> title(Functii trigonometrice') >> legend ('sin','cos')
Exerciiul 1.21 Explicai fiecare element din utimile instruciuni i explicai efectul instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?
Subgrafice Pot fi create tablouri grafice folosind comanda subplot. De exemplu:
>> x=0:pi/16:2*pi; >> y1=sin(x); >> y2=cos(x); >> subplot(2,1,1) >> plot(x,y1,'* -') >> xlabel('x') >> ylabel('sin(x)') >> subplot(2,1,2) >> plot(x,y2,'r s -') >> xlabel('x') >> ylabel('cos(x)')
Exerciiul 1.22 Explicai fiecare element din utimile instruciuni i explicai efectul instruciunilor asupra rezultatului final. De fapt, care este rezultatul final?
-
Putei investiga i sintaxa i efectul instruciunilor: Hold, Grid, Axis, Ezplot, Gtext, Ginput.
3. Coninutul referatului de laborator Referatul lucrrii trebuie s fie prezentat n format scris, n modul urmtor: a. Pe prima pagin: Titlul lucrrii, numele studentului, disciplina, anul i grupa. b. Cuprinsul referatului, pe pagina a doua. Apoi: c. Numrul exerciiului din Desfurarea lucrrii, textul acestuia i rezolvarea sau
soluia propus. Soluia prezentat trebuie s conin explicaii legate de efectele fiecrei comenzi, fiecrei instruciuni i, dac est cazul, o explicaie global. Rezultatele unor calcule realizate n MATLAB trebuie s fie justificate prin calcule de mn.
d. Rspunsuri i rezolvri pentru toate ntrebrile i problemele enunate n capitolul final al acestei lucrri de laborator.
e. Observaii, propuneri de dezvoltare sau alte elemente care demonstreaz aprofundarea noiunilor din lucrare.
ntrebri i probleme a. Ce este transpusa unei matrici? Ce este adjuncta unei matrrici? Ce este inversa
unei matrici i cum se calculeaz? Cum se adun, scad, nmulesc sau mpart dou matrici? Dai exemple pentru fiecare.
b. Explicai formatul i exemplificai modul de folosire al instruciunilor: Hold, Grid, Axis, Ezplot, Gtext, Ginput.
c. Aplicai noiunile nvate n aceast lucrare pentru a elabora i indica o succesiune de instruciuni/comenzi care s conduc la un rezultat. Enunai problema, prezentai modul de rezolvare, explicai rezultatul i artai c rezultatul este corect.
d. Efectuai urmtoarele nmuliri matriciale n MATLAB i explicai de ce rspunsul este corect.
021
712150432
294452
021
135.21021
e. Un exemplu de funcie care ar fi foarte greu de reprezentat grafic fr un calculator este Lab1 Iugaza
xxxx xxxF )()( = Indicai succesiunea de instruciuni/comenzi MATLAB pentru a reprezenta grafic
aceast funcie. Tiprii i explicai rezultatul. Observaie. ezplot folosete 22 x . Acest interval nu este potrivit pentru
funcia dat. O alegere mai bun este 20 x
-
f. Reprezentai grafic funcia )352sin(21)( o= tetY , 100 t .
Explicai semnificaia fiecrei instruciuni/comenzi, tiprii i explicai rezultatul final.
g. Un vector X se obine prin msurarea unui parametru (curent, tensiune, presiune, for etc.). Considerm c toate datele din gama 1.01.0