TIIK_-_Laboratorijska_vjezba_1

23
ELEKTROTEHNIČKI FAKULTET UNIVERZITET U SARAJEVU Laboratorijska vježba 1. Matrice kao osnovni elementi Kontrola toka Grafički prikazi Uvodne napomene Osnovni element kojim manipulira MATLAB je pravougla numerička matrica, čiji elementi mogu biti i kompleksni brojevi. Specijalni slučajevi pravokutne matrice su matrice tipa 1x1, što su u biti skalari, te matrice sa jednom vrstom ili kolonom, što su u biti vektori. MATLAB ima i druge načine sortiranja numeričkih i nenumeričkih podataka, ali za početak demo se ograničiti isključivo na matričnu interpretaciju. Operacije u MATLAB-u su napravljene da budu što je mogude prirodnije. Dok ostali programski jezici operiraju sa svakim brojem posebno, MATLAB omogudava lako izvršavanje operacija nad cijelom matricom odjednom. Elementi matrica mogu biti i realni i kompleksni brojevi, kao i cijeli matematički izrazi. Formiranje matrica Matrice se mogu unijeti na više različitih načina: -upisom liste elemenata matrice, -punjenjem matrice iz eksterne datoteke, -generiranjem matrice korištenjem ugrađenih funkcija, -kreiranjem matrice pomodu sopstvene funkcije definirane u M-datoteci Unošenje eksplicitne liste elemenata Upis liste elemenata vrši se na komandnoj liniji na sljededi način: -elementi vrste razdvajaju se blank znacima ili zarezima -kraj vrste označava se tačka-zarezom ili pritiskom tipke ENTER -lista elemenata se stavlja u uglaste zagrade: >>A = [1 2 3; 4 5 6; 7 8 9]

description

zadaci

Transcript of TIIK_-_Laboratorijska_vjezba_1

  • ELEKTROTEHNIKI FAKULTET UNIVERZITET U SARAJEVU

    Laboratorijska vjeba 1.

    Matrice kao osnovni elementi Kontrola toka Grafiki prikazi

    Uvodne napomene Osnovni element kojim manipulira MATLAB je pravougla numerika matrica, iji elementi mogu biti i kompleksni brojevi. Specijalni sluajevi pravokutne matrice su matrice tipa 1x1, to su u biti skalari, te matrice sa jednom vrstom ili kolonom, to su u biti vektori. MATLAB ima i druge naine sortiranja numerikih i nenumerikih podataka, ali za poetak demo se ograniiti iskljuivo na matrinu interpretaciju.

    Operacije u MATLAB-u su napravljene da budu to je mogude prirodnije. Dok ostali programski jezici operiraju sa svakim brojem posebno, MATLAB omogudava lako izvravanje operacija nad cijelom matricom odjednom. Elementi matrica mogu biti i realni i kompleksni brojevi, kao i cijeli matematiki izrazi.

    Formiranje matrica Matrice se mogu unijeti na vie razliitih naina:

    -upisom liste elemenata matrice, -punjenjem matrice iz eksterne datoteke, -generiranjem matrice koritenjem ugraenih funkcija, -kreiranjem matrice pomodu sopstvene funkcije definirane u M-datoteci

    Unoenje eksplicitne liste elemenata Upis liste elemenata vri se na komandnoj liniji na sljededi nain:

    -elementi vrste razdvajaju se blank znacima ili zarezima -kraj vrste oznaava se taka-zarezom ili pritiskom tipke ENTER -lista elemenata se stavlja u uglaste zagrade:

    >>A = [1 2 3; 4 5 6; 7 8 9]

  • 2

    nakon ega MATLAB ispisuje matricu:

    >>A = 1 2 3 4 5 6 7 8 9

    Nakon to ste jednom definirali matricu A upisom elemenata u radni prostor, ona je automatski zapamdena. Naredni put moete je pozvati jednostavnim ispisom slova A.

    Napomenimo da ukoliko naredbu zavrimo znakom ; rezultat nede biti automatski ispisan. Ovo je naroito pogodno ako su u pitanju matrice vedih dimenzija.

    Jedna od osnovnih operacija nad matricom je suma elemenata matrice. Komandom sum(A) dobija se suma elemenata kolona date matrice:

    >>sum(A)

    >>ans = 12 15 18

    Ukoliko nije definirana izlazna varijabla, MATLAB koristi varijablu ans (skradenica od eng. answer = odgovor) za skalditenje rezultata operacije. to se tie sume elemenata u redovima matrice, najbolji nain je napraviti operaciju sumiranja nad kolonama transponovane matrice (A'):

    >>sum(A')

    >>ans = 6 15 24

    odnosno za prikaz rezultata u koloni

    >>sum(A')'

    Sumiranje dijagonalnih elemenata vri se pomodu komande

    >>sum(diag(A))

    Indeksiranje elemenata matrica

    Element u vrsti i i koloni j matrice A oznaava se kao A(i,j). Tako upisom u komandnu liniju

    >>A(2,3)

    >>ans = 6

    dobija se vrijednost elementa matrice u drugom redu i tredoj koloni. Elemente matrice mogude je referencirati i jednim indeksom, A(k). To je uobiajen nain referenciranja vektora vrste i vektora kolone. Ovo se takoer moe primjeniti na punu dvodimenzionalnu matricu, jer se u tom sluaju niz promatra

  • 3

    kao vektor-kolona formiran od kolona originalne matrice. Prema tome, u naem primjeru, A(10) je drugi nain za referenciranje vrijednosti 6 smjetene u A(2,3). Na isti nain mogude je vriti upis pojedinih elemenata u matricu: >>B(3,3)=2, B(1,1)=4, B(1,3)=1;

    >>B = 4 0 1 0 0 0 0 0 2 Dimenzije matrice se automatski prilagoavaju u sakladu sa definiranim elementima na nain da se nedefiniranim elementima pridruuje se vrijednost 0. Ukoliko traite element koji je van dimenzija matrice, ispisat de vam se poruka >>??? index exceeds matrix dimensions

    Dalje, ukoliko elite dodati element u matricu koji je van njenih postojedih dimenzija, dimenzije matrice de se automatski proiriti, i pozicijama u matrici kojima nije definirana vrijednost dodijelit de se vrijednost 0.

    Matrica se moe definisati povedanjem dimenzija prethodno definisane matrice na sljededi nain:

    >>C = [ 1 3 5 ]; D = [ C 7 9 ] >>D = [1 3 5 7 9]

    s tim da treba uvijek voditi rauna o kompatibilnosti dimenzija dvije matrice.

    Matrini element moe biti definiran i bilo kojim izrazom:

    >>E = [ sqrt(4)*1.5 2*3/4 ] >>E = 3.0000 1.5000 Operator dvotaka Operator dvotaka je jedan od najvanijih MATLAB operatora. Pojavljuje se u par razliitih formi. Izraz

    >>1:10

    >>ans = 1 2 3 4 5 6 7 8 9 10

    daje vektor-vrstu koja sadri cjelobrojne vrijednosti od 1 do 10.

    Takoer je mogude specificirati inkrement, na sljededi nain:

    >>100:-7:50

    >>ans = 100 93 86 79 72 65 58 51

  • 4

    Ovaj operator moe se primjeniti i na dijelove matrice, s obzirom da izrazi u indeksu omogudavaju referenciranje dijelova matrice.

    Na primjer:

    >>sum(A(1:3,2))

    >>ans = 15

    sumira prva tri elementa druge kolone. Dalje, MATLAB omogudava jo jednostavnije koritenje ovog operatora. Dvotaka sama za sebe odnosi se na sve elemente u odreenom redu ili koloni:

    >>sum(A(:,end))

    >>ans = 18

    zbraja sve elemente u posljednjoj koloni matrice.

    Operator dvotaka moe se koristiti za dobijanje vektora iz matrice. Neka je

    >>X = [ 2 6 8; 0 1 7; -2 5 -6];

    Sada komanda

    >>Y = X(:,1) >>Y= 2 0 -2

    formira vektor-kolonu od prve kolone matrice X, dok komanda

    >>Z = X(1,:)

    >>Z = 2 6 8

    formira vektor-vrstu od prvog reda matrice X.

    Operator dvotaka takoer je pogodan je za izdvajanje manjih matrica iz vedih matrica. Komandom

    >>W = X(1:2,2:3) >>W=6 8 1 7

    formiramo matricu koja se sastoji iz prva dva reda druge i trede kolone matrice X.

  • 5

    Promjena mjesta redova ili kolona matrice vri se definiranjem novog rasporeda redova, odnosno kolona. Tako, na primjer, izraz

    >>Q = X(:,[1 3 2]) >>Q = 2 8 6

    0 7 1 -2 -6 5

    daje promjenu mjesta kolona 2 i 3. Isti postupak pravi se u sluaju promjene mjesta redova. Brisanje redova i kolona Vrste i kolone matrice mogu se brisati jednostavno koritenjem para uglastih zagrada. Komandom

    >>X(:,2) = []

    >>X = 2 8 0 7 -2 -6

    briemo drugu kolonu matrice X. Na ovaj nain nije mogude obrisati samo jedan element u matrici.

    Izraz kao to je

    >>X(1,2) = []

    dat de za rezultat greku. Meutim, koritenjem jednog indeksa brie se jedan element ili sekvenca elementa i preostali elementi pretvaraju se u vektor vrstu. Prema tome za:

    >>X(2:2:6) = []

    >>X = 2 -2 7

    briu se elementi sa indeksom 2, 4 i 6, a od preostalih elemenata formira se vektor-vrsta.

    Uitavanje matrica iz spoljanjih datoteka Kao to je ved pomenuto, komanda load uitava binarne datoteke koje sadre matrice generirane u prethodnim sesijama u MATLAB-u ili uitava tekstualne datoteke koje sadre numerike podatke. Tekstualna datoteka mora imati podatke sloene tabelarno, sa po jednom vrstom u redu i sa istim brojem elemenata u svakoj vrsti. Na primer, napravimo tekstualnu datoteku u editoru teksta, koja sadri slededa etiri reda:

  • 6

    16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0

    i sauvajmo je pod imenom podaci.dat.

    Komandom

    >>load podaci.dat

    MATLAB uitava datoteku i pravi promenljivu podaci koja sadri navedenu matricu.

    Generisanje matrica koritenjem ugraenih funkcija

    MATLAB na raspolaganju ima funkcije koje generiraju razliite tipove matrica. U narednoj tabeli dat je pregled komandi za generiranje osnovnih tipova matrica. eye Generira matricu iji su elementi na glavnoj dijagonali jednaki jedinici, dok su ostali elementi jednaki nuli. Opcije:

    >>eye (N) % generira jedininu matricu % eye (M,N), eye([M,N]) generira pravokutnu matricu dimenzija MxN sa jedinicama na dijagonali, dok su % ostalo nule % eye (size(A)) generira matricu dimenzija matrice A

    ones, zeros Generira matricu iji su svi elementi jedinice, odnosno nul-matricu. Opcije su identine kao u prethodnom sluaju. linspace Generira vektor-vrstu iji su elementi linearno rapsoreeni brojevi.

    Opcije:

    >>linspace(x1,x2) % generira vektor od 100 linearno pomaknutih elemenata izmeu x1 i x2 % linspace(x1,x2,N) generira vektor od N linearno pomaknutih elemenata izmeu x1 i x2 Na primjer: >>Y = linspace(0,1,11)

    >>Y = Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000

  • 7

    logspace Generira vektor-vrstu iji su elementi logaritamski rasporeeni brojevi.

    >>logspace (d1,d2)

    % generira vektor od 50 logaritamski rasporeenih elemenata izmeu vrijednosti 10d1

    i 10d2

    % logspace (d1,pi) ako drugi argument pi, elementi se nalaze u opsegu od 10d1

    do pi

    % logspace (d1,d2,N) generira vektor od N logaritamski rasporeenih elemenata izmeu vrijednosti 10d1

    % i 10d2

    meshgrid Generira domen za 2-D i 3-D grafike. Opcije:

    >>[X,Y]=meshgrid (x,y) % formira matrice X i Y tako da su vrste matrice X % kopije vektora x, dok su kolone matrice Y kopije vektora y % [X,Y]=meshgrid (x) skradenica za *X,Y+=meshgrid (x,x)

    x2

    y2

    Na primjer, za evaluaciju funkcije x u opsegu -2>Z = X .* exp(-X.^2 - Y.^2); >>mesh(Z)

    rand Generira matrice iji su elementi sluajni brojevi sa uniformnom raspodjelom u intervalu (0,1). Opcije:

    rand % generira skalar ija je vrijednost drugaija svaki put kad se pozove funkcija % rand (N) generira matricu dimenzija NxN % rand (MxN) generira matricu dimenzija MxN % rand (size(A)) generira matricu dimenzija matrice A % rand ('seed') pokazuje tekudu vrijednost klice generatora sluajnih brojeva % rand ('seed', N) koristi N kao klicu generatora sluajnih brojeva % rand ('seed', 0) vrada vrijednost klice generatora na poetnu vrijednost

    randn

    Generira matrice iji su elementi sluajni brojevi sa normalnom raspodjelom, srednjom vrijednodu 0 i varijansom 1. Opcije su identine kao u prethodnom sluaju.

    Manipulacija matricama

    MATLAB sadri i grupu funkcija za dobijanje informacija o matricama, kao i za elementarne transformacije matrica. Ove funkcije su tzv. ugraene funkcije, to znai da nije mogude vidjeti njihov

  • 8

    sadraj, za razliku od funkcija u MATLABovim toolboxovima, koje je ujedno mogude i modificirati. U nastavku je dat pregled nekih od ovih funkcija. size(X) Vrada dimenzije argumenta u obliku vektora.

    Na primjer:

    >>X = [1 2 3; 4 5 6; 7 8 9]; >>size(X) >>ans = 3 3 length(X) Vrada duinu argumenta.

    Na primjer,

    >>length(X) ans = 3 mean(X) Vrada vektor koji sadri aritmetike sredine elemenata u odgovarajudim kolonama.

    >>mean(X) >>ans = 4 5 6

    max(X) Za vektore, max(X) vrada najvedi element. Za matrice max(X) vrada vektor-vrsta iji su elementi najvedi elementi u pojedinim kolonama matrice X.

    Na primjer,

    >>max(X) % maksimalni elementi po redovima >>ans = 7 8 9 >>max(X') % odnosno maksimalni po kolonama transponovane matrice >>ans = 3 6 9 sort(X) Rezultat je matrica dobijena sortiranjem kolona matrice X u rastudem redosledu. inv(X) Vrada inverznu matricu kvadratne matrice X. det(X) Vrada determinantu matrice X.

  • 9

    rank(X) Rezultat funkcije je rang matrice X.

    all(X) Rezultat funkcije all je jednak 1 ako su svi elementi vektora X razliiti od nule; u suprotnom rezultat je 0. Ako je X matrica, rezultat je vektor-vrsta iji elementi su rezultati funkcije za svaku kolonu matrice posebno. Na primjer,

    >>x = [1 2 -3 0; 4 0 -8 0]; >>all(x) >>ans = 1 0 1 0 any(X) Rezultat funkcije any je jednak 1 ako postoji bar jedan element vektora X koji je razliit od nule; u suprotnom rezultat je 0. Ukoliko je X matrica, rezultat je vektor vrsta iji elementi su rezultati funkcije za svaku kolonu matrice posebno.

    Na primjer,

    >>any(x) >>ans = 1 1 1 0 diag(X) Generira dijagonalnu matricu ili izdvaja dijagonalu iz postojede matrice.

    >>diag (V,K) % ako V je vektor sa N komponenti, funkcija generira kvadraturnu matricu dimenzija %N+abs(K) sa elementima vektora V na K-toj dijagonali, gdje je K=0 glavna dijagonala i K > 0 index %elemenata iznad glavne dijagonale i index K < 0 elemenata ispod glavne dijagonale >>diag (X) % izdvaja dijagonalu matrice X >>diag (X,K) % izdvaja K-tu dijagonalu matrice X >>diag (diag(X,K)) % formira dijagonalnu matricu od odgovarajude dijagonale matrice X

    fliplr(X), flipud(X) Vrada matricu sa zamijenjenim mjestima kolona, i to s lijeva na desno, odnosno matricu sa zamijenjenim mjestima vrsta, i to s odozgo prema dole. reshape(X) Preureuje matricu promjenom dimenzija, pri emu broj elemenata u matrici mora ostati nepromijenjen.

    rot90(X) Rotira matricu za K*90 stepeni u pracu suprotnom od kretanja kazaljke na satu.

    >>rot90 (X,2) % rotacija za 180 stepeni

  • 10

    tril(X), triu(X) Izdvaja donju, odnosno gornju trougaonu matricu. sin(X) Vrada matricu iji su elementi vrednosti sinusa odgovarajudih elemenata matrice X. Funkcija oekuje vrednosti za veliinu ugla u radijanima.

    exp(X)

    Vrada matricu iji su elementi vrednosti funkcije ex za odgovarajude elemente matrice X.

    >>t = (0:0.2:1); >>y = sin(t) .* exp(-t); >>[t y] >>ans = 0 0 0.2000 0.1627 0.4000 0.2610 0.6000 0.3099 0.8000 0.3223 1.0000 0.3096

    Kontrola toka programa

    MATLAB nudi tri vrste petlji koje omoguduju kontrolu toka programa: for petlje, while petlje i if elseend strukture.

    FOR petlja Ovaj tip petlje omoguduje da se neka grupa naredbi izvri unaprijed definiran broj puta. Opda sintaksa ove petlje je sljededa:

    for brojac = izraz izraz1 ... izrazn end

    pri emu je izraz najede u formi X:Y. Promenljiva brojac de u svakoj iteraciji petlje kao vrednost primati odgovarajudi element vektora.

    Primjer koritenja for petlje:

    >>for n=1:10

    x(n)=sin(n*pi/10);

    end

    >> x = Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000

  • 11

    Izraz break moe se koristiti za prijevremeni prekid petlje. Uz to napomenimo da se for petlja ne moe ograniiti, odnosno prekinuti redefinisanjem promjenjive unutar same petlje.

    U okviru for petlje se moe definisati bilo kakvo polje

    >>data = [4 2 5; 2 1 3] for n=data x=n(1)-n(2) end >>x = 2 >>x = 1 >>x = 2 Takoer se mogu koristiti i ugnijedene for petlje: >>for n=1:5

    for m=5:-1:1

    A(n,m)=n^2+m^2;

    end

    end

    Petlje klase for treba izbjegavati kad god je do rjeenja mogude dodi koritenjem matrinog pristupa. Oba pristupa vode istom rjeenju, ali je drugi bri i esto zahtjeva manje koda.

    WHILE petlje Ova petlja omogudava izvrenje bloka naredbi neodreen broj puta, sve dok je zadati uvjet zadovoljen. Opda sintaksa ove petlje je:

    while uvjet blok naredbi end

    Promjenjiva uvjet dobija se kao rezultat poreenja dva izraza:

    izraz relacioni_operator izraz

    gdje je relacioni operator >,=,

  • 12

    Na primjer,

    num=0; eps=1; while (1+eps)>1 eps=eps/2 num=num+1; end num = 53

    U ovom primjeru je prikazan jedan od naina izraunavanja vrijednosti eps (relativna tanost pri izraunavanju realnih brojeva). Varijabla eps krede od jedinice, i sve dok je uslov (1+eps)>1 zadovoljen, naredbe unutar while petlje se izvravaju. Varijabla eps se stalno djeli sa dva, i kada postane tako mali da (eps+1) vie nije vede od jedinice, petlja se zavrava. Ovo se deava zbog ogranienog broja decimalnih mjesta predvienih za predstavljanje realnog broja, a utemeljeno na nainu na koji raunari prikazuju realne brojeve i principa diskretizacije kontinualnih veliina (navedene injenice dio su posebne oblasti matematike koja se naziva numerika matematika).

    IF-ELSE-END strukture

    Naredba if ima sljededi opdi oblik:

    if izraz1 naredbe1 [elseif izraz2 naredbe2+ *else naredben] end

    gdje su izraz1,izraz2,... logiki izrazi.

    Na primjer,

    >>c = 250 if a>5 c=(1-20/100)*c; end c = 200

    Grafiki prikaz podataka

    MATLAB raspolae irokim spektrom tehnika za grafiko prikazivanje podataka. Interaktivni alati omoguduju manipuliranje grafovima u svrhu dobijanja razliitih informacija o odreenim podacima. Takoer je mogude pisati komentare uz grafike, tampati ih, ili ih eksportovati u standardne grafike formate.

    Kreiranje grafika

    Koji tip grafika dete izabrati ovisi o tipu podataka koje je potrebno prezentirati, kao i o tome ta elite prezentirati vezano za te podatke. MATLAB omogudava generiranje razliitih tipova dvodimenzionalnih i

  • 13

    trodimenzionalnih grafika. Jednom kada kreirate grafik, mogude je ekstrahirati specifine informacije o podacima, poput maksimalne ili srednje vrijednosti.

    Grafici su konstruirani od objekata ije je osobine mogude promijeniti. Promjenom ovih osobina utiete na razliite komponente grafika. Na primjer, mogude je kontrolirati granice, skalu i boju osa koje se koriste za definiranje koordinatnog sistema. Takoer, mogude je definirati boju, tip i stil linije, kao i markere na liniji grafika.

    Komponente grafika

    MATLAB prikazuje grafike u posebnom prozoru. Za kreiranje grafika, potrebno je prije svega definirati koordinatni sistem. Vizualna reprezentacija podataka postie se grafikim objektima poput linija i povrina. Ovi objekti se ucrtavaju unutar koordinatnog sistema definiranim osama koje MATLAB kreira tako da su prilagoene rangu podataka. Stvarni podaci su sauvani kao osobina grafikog objekta.

    Naredna slika prikazuje osnovne komponente tipinog grafika.

    >>x=[-20:0.1:20]; >>fplot('1.5*cos(x)+4*cos(x)*exp(-0.01*x)+ sin(3*x)*exp(0.07*x)', [-10 40])

    Uoimo da naredba plot brie staru sliku i crta novu. Ukoliko elimo sauvati staru sliku moemo otvoriti novi grafiki prozor s naredbom figure.

    U nastavku demo dati par primjera koji ilustruju neke od mogudnosti grafikog prikaza. Sintaksa

  • 14

    pojedinih komandi data je na kraju vjebe. Prikaimo funkciju y=sin(x) za x *0,2+ . Prvo je potrebno definirati interval sa konanim brojem taaka izmeu 0 i 2 . U ovom primjeru je funkcija y=sin(x) crtana dva puta, u dva odvojena grafika prozora. U prvom sluaju grafik je iscrtan tako to su markerom oznaene vrijednosti funkcije na zadanom intervalu. Ukoliko se postojanje markera posebno ne oznai, grafik se crta tako to se vri linearna interpolacija izmeu zadanih vrijednosti.

    >>x = 0:0.1:2*pi; >>y = sin(x); plot (x,y,'+'); >>figure; plot (x,y); Da je u naredbi funkcije plot bio samo jedan argument, to bi znailo da de se vrijednosti nanositi samo na ordinatu. U tom sluaju, na apscisu se nanose indeksi elemenata na koje je podjeljen interval u kome se posmatra zadana funkcija.

    Od interesa moe biti prikaz vie niza podataka na istom grafiku, s razliitim bojama i oblicima markera. Proirimo prethodni kod sljededim kodnim linijama:

    Takoe, mogude je u istom prozoru za iscrtavanje prikazati vie od jednog grafika. To je mogude uraditi

    na vie od jednog naina. Prvi nain je koritenjem komande plot zadavanjem e parametara, a to je

    prikazano kroz primjer:

    >>z=cos(x); >>plot(x,y,'b:p',x,z,'r-o')

  • 15

    Komande za kreiranje grafika

    Osnovne komande plot Formira grafik sa linearnom podjelom na osama. Opcije:

    >> plot(Y) % crta kolone matrice Y u funkciji njenih indeksa. % Ako je Y kompleksna matrica, plot(Y) je ekvivalentno plot(real(Y),imag(Y)). % U svim drugim sluajevima imaginarni dio se zanemaruje. >> plot(x,Y) % crta kolone matrice Y u funkciji od x

    Razliite tipovi linija, markera i boja mogude je definirati koristedi opciju sa tri ulazna argumenta

    >>plot(x,Y,'S')

    gdje je S znakovna promjenjiva koja se sastoji od jednog, dva ili tri znaka prema sljededoj tabeli (simbol za liniju, marker i boju), ovisno o tome koje je osobine potrebno definirati.

  • 16

    TIP LINIJE TIP MARKERA BOJA LINIJE

    - puna linija . taka y uta

    : takasta o krug m magenta -.

    crtica-taka x x-znak c cijan

    -- isprekidana + plus r crvena

    * zvjezdica g zelena

    s kvadrat b plava

    w bijela

    k crna

    Na primjer, izrazom

    >>plot(x,Y,'r+:')

    formiramo grafik sa isprekidanom linijom crvene boje sa plus markerom na mjestima podataka.

    Izrazom

    >>plot(x1,Y1,'S1',x2,Y2,'S2',...)

    kombiniramo grafike definirane tripletima (x,Y,'S'). Ukoliko nije specificirana boja linije, MATLAB automatski dodjeljuje prvih 6 boja redoslijedom prikazanim u gornjoj tabeli.

    Komanda plot odnosno fplot posjeduje i parametre, koje grupno zovemo osobine grafa. Mogude su 4

    osobine:

    Ime osobine Opis Mogue vrijednosti

    linewidth zadaje debljinu linije izraeno u takama

    markersize zadaje veliinu markera izraeno u takama

    markeredgecolor zadaje boju markera ili ivice za popunjene markere oznake boja

    markerfacecolor zadaje boju popune za popunjene markere oznake boja

    Na primjer:

    >>plot (x,y,'-mo','linewidth',2,'markersize',12,'markeredgecolor','g',markerfacecolor','y')

    fplot Crta funkciju, gdje varijabla nije unaprijed definisana, nego se definisanje varijable izvrava direktno u

    sintaksi komande fplot.

  • 17

    Na primjer:

    >>fplot ('2+sin(x)+log(x)', [1 5])

    a to praktino znai crtanje funkcije zadate 'f(x)' u dijelu domena 1x5.

    loglog Formira grafik jednako kao i plot(), s tim da se x i y ose imaju logaritamsku podjelu (baza 10). Sintaksa je ista kao i u prethodnom sluaju.

    semilogx, semilogy Formira dijagram sa semilogaritamskom podjelom na osama. Pri tome:

    >>semilogx (x,Y) % formira dijagram sa logaritamskom podjelom na x osi i linearnom podjelom na y osi >>semilogy (x,Y) % formira dijagram sa logaritamskom podjelom na y osi i linearnom podjelom na x osi

    polar(,) Formira grafik koristedi polarne koordinate, gdje je ugao u radijanima i radijus. Triplet (,,'S') formira grafik jednako kao i kod plot funkcije.

    plotyy Formira grafike sa y osama na obje strane grafika. Sintaksa:

    >>plotyy(x1,y1,x2,y2) % formira x1-y1 grafik sa y osom na lijevoj strani %te x2-y2 grafik sa y osom na desnoj >>plotyy(x1,y1,x2,y2, 'S') % koristi funkciju za formiranje grafika specificiranu % znakovnom promjenjivom S, gdje S treba da prihvata sintaksu H = S(x,y) >>plotyy(x1,y1,x2,y2, 'S1','S2') % koristi funkciju S1(x1,y1) za % formiranje grafika uz lijevu y osu, te % S2(x2,y2) formiranje grafika uz desnu y osu

    Kontrola osa

    axis Ova funkcija slui za kontrolu kooridinatnih osa. U nastavku su date neke od mogudih sintaksi:

    >>axis([xmin xmax ymin ymax]) % definira skalu za x i y ose na tekudem grafiku >>axis([xmin xmax ymin ymax zmin zmax]) % definira skalu za x,y i z ose na tekudem 3-D grafiku >>V = axis

  • 18

    % vrada vektor-vrstu koja sadri informacije o skaliranju tekudeg % grafika. Ovisno o tome da li je grafik 2-D ili 3-D, V ima 4, % odnosno 6 elemenata >>axis auto % vrada skaliranje osa u automatski mod, gdje se granice osa % odreuju prema ponaanju samog grafika >>axis manual % zamrzava definirane vrijednosti skala, tako da i sljededi grafici % koriste iste vrijednosti za skaliranje, pod uvjetom da je % aktivirana funkcija hold >>axis on/off % aktivira/deaktivira komentare uz ose >>axis equal % zadaje istu veliinu obje ose >>axis square % zadaje kvadratni oblik podruja osa >>axis tight % zadaje granice osa prema osegu podataka

    grid Kontrolira pojavljivanje linije mree na grafiku.

    >>grid on/off % dodaje/uklanja linije mree >>grid % mijenja prethodno stanje

    hold Zadrava osobine tekudeg grafika, tako da se iste mogu primjenjivati u narednim graficima. >>hold on/off % aktivira/deaktivira funkciju >>hold % mijenja prethodno stanje subplot Omogudava kreiranje vie grafika u okviru jednog grafikog prozora. Sintaksa:

    >>subplot(M,N,Q) % unutar grafikog prozora formira matricu dimenzija MxN linearnih grafika i aktivira Q-ti grafik. % Grafici se indeksiraju po redovima %Ako grafik ved postoji na ovoj poziciji, ovom komandom % se aktivira za koritenje

  • 19

    Postavljanje komentara na graficima

    legend Postavlja legendu na trenutni grafik koristedi specificirane stringove kao oznake. Oznaiti se moe bilo koji objekat na grafiku.

    Komanda se izvrava redoslijedom navoenja koji odgovara redoslijedu iscrtavanja grafova u

    komandama plot i slino.

    >>legend('znakovi 1','znakovi 2',....,pol)

    pri emu je pol parametar opcioni broj koji zadaje poloaj legende u okviru prozora za iscrtavanje.

    Parametar pol moe uzimati vrijednosti:

    pol = -1 postavlja legendu izvan granica osa na desnu stranu

    pol = 0 postavlja legendu unutar granica osa na mjesto gdje najmanje smeta graficima

    pol = 1 postavlja legendu u gornji desni ugao grafika

    pol = 2 postavlja legendu u gornji lijevi ugao grafika

    pol = 3 postavlja legendu u donji desni ugao grafika

    pol = 4 postavlja legendu u donji lijevi ugao grafika

    title('tekst') Dodaje tekst na vrhu trenutno aktivnog grafika.

  • 20

    xlabel('tekst') , ylabel('tekst') Dodaje tekst uz x, odnosno y osu trenutno aktivnog grafika.

    texlabel Generira TeX format od znakovne promjenjive. Sintaksa:

    Dodaje tekst na trenutno aktivan grafik na poziciju definiranu kooridnatama (x,y).

    gtext('tekst') Dodaje tekst na trenutno aktivan grafik na poziciju definiranu miem. Nakon izvrenja komande, na grafiku se pojavljuje kriid koji se miem pozicionira na mjesto gdje treba ispisati tekst.

    Za navedene komande za unos tekstualnog dijela, postoje parametri za formatiranje teksta, i to:

    \bf polucrni font

    \it kurziv

    \rm obini font

    \fontname{ime_fonta} koristi se zadati font

    \fontsize{veliina_fonta} koristi se zadata veliina

    Takoe bitno je nauiti i kako unositi indexe i eksponente. Broj ili karakter, ili vie njih (tada se predaju

    kao parametar u velikim zagradama '{}') se predaju bazi kao index ako izmeu baze i indexa stavimo znak

    ' _ ', odnosno kao eksponent ako izmeu baze i eksponenta stavimo znak ' ^ '.

    Praktina primjena nauenih komandi bide data kroz jednostavan primjer:

    >>plot(x,y) >>hold on >>plot(x,z,'--') >>box off >>xlabel('neovisna varijabla X'); >>ylabel('varijable Y i Z'); >>title('sinusna i kosinusna krivulja'); >>gtext('sin(x)') >>gtext('cos(x)')

    Ukoliko umjesto komandi gtext napiemo

    >>grid on >>legend('sin(x)','cos(x)')

  • 21

    Rezultat prve varijante dat je na slici lijevo, a druge varijante na desnoj slici.

    Osim to je mogude kreirati vie podataka na istom grafiku, pomodu naredbe subplot mogude je takoer prikazati vie grafika u jednom grafikom prozoru. Na sljededem primjeru demo ujedno i ilustrirati neke druge tipove grafika koje je mogude kreirati.

    >>subplot(2,1,1) >>stem(x,y) >>box off >>grid on >>subplot(2,1,2) >>stairs(x,y) >>box off >>grid on

    Pored navedenih komandi za crtanje, esto su upotrebi jo i komande: barh, bar, pie, hist. Njihova

    primjena bide prezentirana kroz praktine primjere na samim vjebama.

  • 22

    Zadaci za samostalan rad :

    Zadatak 1

    Pomodu funkcije rand kreirati matricu dimenzija MxN (odabrati proizvoljne vrijednosti). Koristedi jednu od petlji za kontrolu toka programa vrijednosti manje od 0,5 promijeniti u 0, a vrijednosti vede ili jednake 0,5 promijeniti u 1.

    Zadatak 2

    Kreirajte matricu A dimenzija 4x4 iji su elementi cjelobrojne vrijednosti od 1 do 16. Kako je mogude

    kreirati ovu matricu osim upisom pojedinih elemenata matrice?

    Nakon toga izvriti i sljedede operacije nad matricama:

    a. kreirati matricu B od matrice A iji su elementi uvedani za 1;

    b. kreirati matricu C od matrice A iji su neparni elementi uvedani za 3, a parni elementi umanjeni

    za 8;

    c. kreirati matricu D od matrice A, iji su elementi kvadrati elemenata matrice A;

    d. kreirati matricu E od matrice A, iji su elementi korijeni elemenata matrice A.

    Zadatak 3

    Kreirati matricu A dimenzija 3x3 iji su svi elementi jednaki 1.

    Po tome izvrti naznaene operacije:

    a. kreirati vektor-kolonu B sa elementima 1,2,3;

    b. kreirati vektor-vrstu C sa tri elementa koji su svi jednaki 0;

    c. pridruiti tredoj koloni matrice A vektor B, a zatim prvom redu matrice A vektor C. Kako sada

    izgleda matrica?

    pridruiti drugom elementu prvog reda matrice A vrijednost 1, a zatim zamijeniti mijesta kolona slijeva

    na desno. Kolika je determinanta matrice? Kolika je inverzna vrijednost?

    Zadatak 4

    Napisati kod u MATLAB-u, koji vri proraun vjerovatnode da u grupi studenata sa laboratorijskih vjebi iz TIIK-a naemo bar dvije osobe koje imaju roendan isti dan? Pretpostavka je da je broj dana u godini je 365 i da su datumi roenja jednako raspodijeljeni.

    Analitiko rjeenje:

    n

    365 364 ... (365 n 1)P 1

    365

  • 23

    Zadatak 5

    Pronadi i ispraviti greke:

    x = -20;120, y = 50+20*randn(1;100000); hist(y,x)

    Zadaci za zadau (2 boda): Izvjetaj se predaje putem Zamger aplikacije do 28.10.2011. god

    Analitiki odrediti rjeenja sljededih zadataka. Za svaki zadatak provjeriti rjeenja u Matlabu, simulirajudi dati problem i odrediti estimaciju traene vjerovatnode za veliki broj simulacija. 1. Novid se baca etiri puta. Koja je vjerovatnoda dobijanja 2 glave i 2 pisma (nije bitan redosljed)? 2. Dvije kockice se bacaju u isto vrijeme. Eksperiment se vri 3 puta. Koja je vjerovatnoda dobijanja dvije etvorke najmanje jednom od 3 pokuaja? 3. Dvije kockice se bacaju u isto vrijeme. Koja je vjerovatnoda: a) dobijanja ukupno 8; b) dobijanja najmanje 5; 4. Nagradna igra Bingo Plus se sastoji iz izvlaenja loptica oznaenih od 1 do 10. Pet loptica se izvlai i pobjednik mora imati svih 5 brojeva. Koja je vjerovatnoda osvajanja jack-pota ako je dobitna kombinacija 848235?