PI - Lab 1

12
 Lucrarea de laborator nr. 1 Introducere in Matlab 1. Obiectivele lucrării Această lucrare de laborator este dedicat ă are ca scop familiarizarea studenţilor cu noţiunile 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 toţi studenţii. Acestea sunt noţiuni importante pentru a putea aborda cu succes subiecte legate de  procesarea imaginilor, În final, studenţii trebuie să fie capabili să utilizeze comenzile de bază MATLAB, să ştie să genereze vectori şi matrici, să efectueze operaţii cu numere şi matrici, să seteze spaţiul de lucru şi să folosească facilităţile MATLAB pentru reprezent ări grafice.  2. Desf ăşurarea lucrării Ce este MATLAB? MATLAB este un limbaj de înalt ă performanţă şi un software folosit pentru implementarea unor programe cu aplica ţii în tehnică. El permite:  – efectuarea de calcule matematice  – dezvoltarea de algoritmi  – modelarea şi simularea sistemelor  – analiza şi vizualizarea datelor  – generarea unor reprezent ări grafice ştiinţifice şi inginereşti MATLAB este un sistem interactiv (toate datele sunt întotdeauna în memorie) cu următoarele caracteristici:  – elementul de bază pentru reprezentarea datelor este un tablou  – nu este nevoie de declara ţii sau de funcţii 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 aflaţi: Folosiţi comanda pwd pentru a afla unde va aflaţi, în calculatorul pe care lucraţi, Folosiţi comanda dir pentru a lista fi şierele din directorul curent, Folosiţi comanda cd pentru a schimba directorul, Apoi, comutaţi la directorul principal pentru a putea salva rezultatele acestei lucr ări de laborator.

description

lab pi

Transcript of PI - Lab 1

  • 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