Igor Đurović

Zdravko Uskoković Ljubiša Stanković

MATLAB for Windows

PODGORICA, DECEMBAR 1996.

PREDGOVOR Ova knjiga je nastala kao pedagoškom i istraživačkom radu MATLAB. Namijenjena je širokom studentima, inženjerima, profesorima i matematičkih i tehničkih nauka. rezultat iskustva autora u sa programskim paketom krugu čitalaca, a posebno naučnim radnicima prirodnih,

Knjiga je dopuna knjige PC-MATLAB sa elementima MS DOSa koja je napisana 1991. Naime u me|uvremenu značajnu prednost nad MS DOS okruženjem uzela su grafička okruženja posebno Windows. Tako se danas intenzivno koriste verzije MATLAB za Windows. Koncepcija knjige u suštini ostala je ista. Dopune se prije svega odnose na grafičko okruženje, brojne nove funkcije i mogućnosti grafičkog prikaza, kao i složene mogućnosti upravljanja graficima i grafičkim okruženjem. Posebne napomene se odnose na promjene u semanatici samog MATLAB-a koje nijesu znatne. Knjiga je zamišljena kao udžbenik i kompletan priručnik za upoznavanje i rad sa MATLAB for Windows. Zbog toga su dati prilozi sa osnovnim elementima Windowsa i Notepada. Autori se unaprijed izvinjavaju za eventualne propuste i biće zahvalni na primjedbama i sugestijama koje bi doprinijele poboljšanju knjige. Podgorica, april 1998. Autori

i

SADR@AJ
PREDGOVOR .................................................................................i SADR@AJ .................................................................................... iii UVOD............................................................................................ xi KAKO PO^ETI RAD U MATLAB-u ................................................ 1 GLAVA PRVA OSNOVNE FUNKCIJE.................................................................. 5
1.1 1.2 1.3 UNO[ENJE PODATAKA ......................................................................... 5 FORMATIRANJE MATRICE SPECIJALNE STRUKTURE .................... 7 FUNKCIJE OP[TE NAMJENE ................................................................ 9 1.3.1 Operatori za pomo} pri radu....................................................... 9 1.3.2 Informacije o varijablama i fajlovima........................................ 11 1.3.3 Brisanje i ~uvanje podataka..................................................... 14 1.3.4 Informacije o sistemu ............................................................... 16 ISKAZI I VARIJABLE ............................................................................ 17 BROJEVI I ARITMETI^KI IZRAZI ......................................................... 19 KOMPLEKSNI BROJEVI I MATRICE ................................................... 20 IZLAZNI FORMAT................................................................................. 22 GENERISANJE VEKTORA POMO]U KARAKTERA : (DVIJE TA^KE) ..................................................................................... 24 INDEKSI I MANIPULACIJA VRSTAMA I KOLONAMA ........................ 27

1.4 1.5 1.6 1.7 1.8 1.9

GLAVA DRUGA ELEMENTARNE OPERACIJE .................................................... 33
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 TRANSPONOVANJE............................................................................ 33 SABIRANJE I ODUZIMANJE................................................................ 35 MNO@ENJE MATRICA........................................................................ 37 MNO@ENJE POLJA BROJEVA .......................................................... 39 DETERMINANTA I INVERZNA MATRICA ........................................... 40 "DIJELJENJE" MATRICA ..................................................................... 42 DIJELJENJE POLJA BROJEVA ........................................................... 43 STEPENOVANJE MATRICA ................................................................ 45 STEPENOVANJE POLJA BROJEVA................................................... 48 ELEMENTARNE MATRI^NE FUNKCIJE ............................................. 49 2.10.1 Funkcija abs, angle, real, imag i conj....................................... 51 iii

2.11

2.10.2 Funkcije za zaokru`ivanje ........................................................ 53 2.10.3 Eksponencijalna, logaritamska, stepena i funkcija kvadratnog korjena .................................................................. 55 2.10.4 Trigonometrijske, hiperbolne i njima inverzne funkcije ............ 57 2.10.5 Besselove, beta, gama i funkcije gre{ke .................................. 60 2.10.6 Specifi~ne numeri~ke funkcije................................................. 63 FUNKCIJE ZA MANIPULACIJU MATRICAMA..................................... 66

GLAVA TRE]A GRAFIKA .................................................................................... 69
3.1 GRAFI^KO PREDSTAVLJANJE MATRICA, VEKTORA I FUNKCIJA JEDNE PROMJENLJIVE ................................................... 69 3.1.1 Osnovni oblik ........................................................................... 69 3.1.2 Vi{e funkcija na istom crte`u .................................................... 71 3.1.3 Vrste linija i oznaka .................................................................. 75 3.1.4 Ozna~avanje osa i grafika ....................................................... 76 3.1.5 Grafici kompleksnih funkcija .................................................... 77 3.1.6 Skaliranje osa .......................................................................... 78 3.1.7 Grafici polarnih funkcija............................................................ 80 3.1.8 Grafici sa logaritamskom podjelom.......................................... 81 3.1.9 Stepenasti (bar) grafici............................................................. 83 3.1.10 Prikaz diskretnih veli~ina ......................................................... 84 3.1.11 Popunjeni crte`i ........................................................................ 85 3.1.12 Grafici kompleksnih veli~ina .................................................... 86 3.1.13 Grafici sa pokretnim krajem ..................................................... 86 GRAFI^KOPREDSTAVLJENJE FUNKCIJA DVIJE PROMJENLJIVE I MATRICA................................................................ 87 3.2.1 Trodimenzionalni linijski crte`................................................... 87 3.2.2 "Trodimenzionalni" grafici mre`astih povr{ina .......................... 88 3.2.3 Grafici obojenih povr{ina .......................................................... 90 3.2.4 Konturni grafici ......................................................................... 91 3.2.5 Prikazivanje funkcija pomo}u kolornih mapa ........................... 95 3.2.6 Prikazivanje cilindara i sfera .................................................... 97 GRAFI^KI PRIKAZ FUNKCIJA TRI PROMJENLJIVE .......................... 98 PROMJENA DIMENZIJA GRAFIKA (VI[E GRAFIKA U GRAFI^KOM PROZORU) ..................................................................... 99 RAD SA VI[E OTVORENIH GRAFI^KIH PROZORA.......................... 101 NAREDBE ZA ELEMEMNTARNU KONTROLU BOJA ...................... 102 GRAFI^KE KOMANDE ....................................................................... 105 3.7.1 [tampanje i memorisanje grafika................................................ 105 POKRETNE SLIKE - FILMOVI ........................................................... 107

3.2

3.3 3.4 3.5 3.6 3.7 3.8 iv

GLAVA ^ETVRTA ANALIZA PODATAKA............................................................... 109
4.1 4.2 4.3 4.4 4.5 4.6 MAKSIMALNA I MINIMALNA VRIJEDNOST ..................................... 110 URE\IVANJE PODATAKA, SREDNJA VRIJEDNOST I MEDIJANA .......................................................................................... 112 STANDARDNO ODSTUPANJE, KOVARIJANSA I KORELACIJA...................................................................................... 113 SUMA I PROIZVOD ELEMENATA ..................................................... 114 PRIMJENA SUM I CUMSUM ZA RA^UNANJE INTEGRALA........................................................................................ 116 RAZLIKA ELEMENATA I PRIBLI@NO DIFERENCIRANJE FUNKCIJA .......................................................... 120

GLAVA PETA PROGRAMIRANJE I M-FAJLOVI ............................................. 125
5.1 5.2 PISANJE M-FAJLOVA U NOTEPADU ............................................... 125 UPRAVLJANJE TOKOM PROGRAMA .............................................. 127 5.2.1 Interakcija sa korisnikom ....................................................... 127 5.2.2 For petlja ................................................................................ 129 5.2.3 While petlja............................................................................. 131 5.2.4 If naredba ............................................................................... 132 5.2.5 Grafi~ki meni.......................................................................... 134 5.2.6 Break naredba ....................................................................... 135 5.2.7 Error naredba......................................................................... 135 5.2.8 Naredbe vezane za logi~ke operacije ................................... 135 FUNKCIJSKI FAJLOVI ....................................................................... 136 TEKSTUALNE PROMJENLJIVE (STRINGOVI)................................. 141 FUNKCIJE ^IJI SU ARGUMENTI DRUGE FUNKCIJE ...................... 147

5.3 5.4 5.5

GLAVA [ESTA GRAFI^KI OBJEKTI .................................................................. 153
6.1 6.2 6.3 6.4 OSNOVNI EKRAN (ROOT) ................................................................ 153 GRAFI^KI PROZOR (FIGURE) .......................................................... 156 KONTROLA OSA................................................................................ 158 GRAFI^KI OBJEKTI OD KOJIH SE SASTOJI GRAFIK ..................... 163 6.4.1 Linija - line .............................................................................. 163 6.4.2 Popunjeni poligon - patch ...................................................... 165 6.4.3 Povr{ina - surface................................................................... 166 6.4.4 Kolorna slika matrice - image ................................................ 166 5

2.............................7.4 Izra~unavanje polinoma....................................................................................................................5 6......................................................7 Slider kontrola ..........................................2....................................6 Razvoj u racionalne razlomke..............7 Interpolacija polinomom ........7........................................funk....................4 Kroskorelaciona funkcija i spektralna gustina snage slu~ajnog signala ...........3 Mno`enje polinoma .............6...........1........................1 Analogni domen ..... 185 7................ 183 6.......5 Radio kontrola..............6 6...5.....2....1 Teorijski pregled........................................ 185 7.....5 Dijeljenje polinoma............. 188 7.........................................2......3 Edit kontrola ............................ 169 6............................................................................2 Karakteristi~ni polinomi i sopstvene vrijednosti matrice .................m ....2................ 190 7.........................................1........................... 173 INTERAKTIVNI PROGRAM ZA CRTANJE 2-D CRTE@A .....4 Popupmenu kontrola........................ 168 6..................... 194 7..5..................2.........................................1.................................. 198 7...............2...8 Pushbutton kontrola ...2 Program za prora~un i crtanje ......m .................2 Ra~unanje i crtanje frekventnog odziva .................................. 172 6....................6 Check kontrola ...2.............1 Fourierova analiza ............... 194 7.......... 176 6........... 203 7............. 193 7.................................1.....5 Dvodimenzionalni signali ......1 Frame kontrola...........................text ...5............. 191 OBRADA SIGNALA ..1 Definicija polinoma...................5...............................7 6.. 171 6................ 167 GRAFI^KE KONTROLE......... 175 6..... 195 7........m ............................2.. 189 7.................5............... 200 7.....2...............4..................... 195 7.......1...........1 Program d2crtez...................4 Potprogram ........2 Text kontrola ..........................1...1........................5 Dvodimenziona transformacija .....1......2 Ra~unanje........3 Preure|ivanje rezultata ...... 172 6.............pomocni................................7................................2.............5.......5...............................2 Diskretni domen .... 184 GLAVA SEDMA POLINOMI I OBRADA SIGNALA ................ 202 7............ 173 UIMENU ........2.. 185 7.......7.....................................m ....2...............5 Tekstualni objekat ....... 180 6.1.1.......... 201 7................................................................................................................ 187 7.....................................................3 Ra~unanje signala na izlazu iz diskretnog sistema............ 169 6...... 171 6........ 168 6......................................................................................................2..................1...........crtanje.............. 199 7.........4 Inverzna transformacija ..1 POLINOMI................ 199 7.........5.2 vi ............................3 Pomo}ni prozor ............... 188 7...................................................... 198 7................1...............

..12...............................3 Sistem sa ve}im brojem jedna~ina od broja nepoznatih...4 KREIRANJE RIJETKE MATRICE.............11 8.4 ......................... 229 MATRI^NE FUNKCIJE............................................................ 226 8................. 215 TROUGAONA (L-U) DEKOMPOZICIJA ........................... 230 8..................2................. 243 10........... 248 7 10... 205 8...........................2 9................................ 223 MOORE-PENROSE PSEUDOINVERZIJA MATRICE ....................1 Otvaranje i zatvaranje fajla .........10 8.........2.......................... 241 10................................... 226 8...........2.......... 233 RIJETKE MATRICE I FUNKCIJE ... 242 10....................................... 216 HESSENBERGOVA NORMA I SCHUROVA KOMPOZICIJA..... 244 10.....................................................4 8...............12................................................................. 217 CHOLESKY-JEVA FAKTORIZACIJA .............. 233 9..........1 10....................... 236 KONVERZIJA RIJETKE MATRICE U PUNU I OBRNUTO ..................................................................... 206 Q-Z DEKOMPOZICIJA ...12 SOPSTVENE VRIJEDNOSTI I SOPSTVENI VEKTORI. 237 GRAFI^KI PRIKAZ RIJETKE MATRICE I DRVETA ............................................................7 8...... 212 KONDICIONI BROJ MATRICE................... BAZIS ZA SLIKU I KERNEL LINEARNOG OPERATORA...........................................2 Sistem sa ve}im brojem nepoznatih od broja jedna~ina...........................13 GLAVA DEVETA RIJETKE MATRICE ....................4 Pozicioniranje u fajlu .1 9........................ 225 RJE[AVANJE SISTEMA LINEARNIH JEDNA^INA .........................5 8....1 Homogeni sistem jedna~ina ............2 Neformatizovani ulaz/izlaz ..................................................... 242 10.................................................................... 227 8.........................................................................1 8.............................................3 Faktorizovani ulaz/izlaz...GLAVA OSMA LINEARNA ALGEBRA I MATRI^NE FUNKCIJE .. 210 NORME VEKTORA I MATRICA ............3 10.... 220 ORTOGONALNA (Q-R) DEKOMPOZICIJA ...............................2.........8 8....... 241 ULAZNO/IZLAZNE NAREDBE NISKOG NIVOA...............................9 8.........12.........6 8.................... 221 RANG..............3 8................................................... 210 SINGULARNE VRIJEDNOSTI I PRIDRU@ENA KOMPOZICIJA MATRICA ...........................2 PREGLED JEDNOSTAVNIH U/I NAREDBI ..3 9............. 246 ZAPISIVANJE FAJLOVA U LOTUS FORMATU ................. 247 SNIMANJE I U^ITAVANJE ZVU^NIH PODATAKA ......................... 238 GLAVA DESETA ULAZNO IZLAZNE NAREDBE...............2 8.......

........................1 11............................... 255 DATAFUN .................................4 GLAVA DVANAESTA SISTEMSKI ZAHTJEVI I INSTALACIJA MATLABA ........................................................................................................3.................. 260 IOFUN .................. 261 LOCAL ..........................................................................2 Edit meni .....1 File meni........................................... 252 11...................................................................3 OSNOVNI MATLAB I DODATNI MODULI............................................................................................................... 252 OPCIJE MENIJA GRAFI^KOG PROZORA . 264 PLOTXYZ......................1 File meni......................................................4.............................................................................................................. 265 8 ............................................................................................................... 256 DDE........................................................................... 249 STRUKTURA MATLABA ......... 250 11........3............................. 257 DEMOS .................................................................................................................... 263 PLOTXY ...3.................................. 255 COLOR .............................................................................. 250 11............................................................... 252 11......................... 259 GRAPHICS .................................................................................................... 253 12...........................................................................................................................................1 12....2 11........................................................................................................2 Edit meni ............2 SISTEMSKI ZAHTJEVI ........................................................................................................................................................................................ 253 PRILOG PRVI LISTA FUNKCIJA MATLABA ....................................................5 Help meni ............ 261 LANG .................................................................. 251 11................................................. 262 OPS.....................4 Windows meni................................. 255 SPISAK OBLASTI KOJE OBUHVATA HELP .......................................GLAVA JEDANAESTA MATLAB OKRU@ENJE.... 249 MENI KOMANDNOG PROZORA MATLABA ................... 262 MATFUN ............3.................... 257 ELFUN .........................................................................3................................. 257 ELMAT ................. 249 11................................................................................................................................. 252 11...3 Options meni ........................................................ 252 11............................................................ 253 INSTALACIJA MATLABA .................. 258 FUNFUN ........................................................................................................................................... 251 11................................................................................... 264 POLYFUN ...................................................... 259 GENERAL ...............................................................................4.......................

....................................MULTYTASKING .............................................. 277 PRILOG TRE]I NOTEPAD ........................................... 266 SPECMAT.................................................................................................................................................................. 266 SPARFUN ...................................................4 P2.................................. 270 P2...................................... 267 PRILOG DRUGI WINDOWS ......................SOUNDS.............1X I IZGLED OSNOVNOG EKRANA ............................................................................................................................................................1 Izgled radne povr{ine Windowsa 95 ....................................................................................5....................... 269 P2................................................ 285 INDEKS . 279 PRILOG ^ETVRTI NEKE MOGU]NOSTI VERZIJE MATLAB 5...... 272 ISTOVREMENI RAD VI[E PROGRAMA ................5 STARTOVANJE WINDOWSA 3........... 274 OSNOVNO O WINDOWSU 95 .............................................. 267 STRFUN........................................1 Opcije menija Program Managera ...........................................................................1 P2.....3 P2.... 283 LITERATURA ...............2 P2.......................... 276 P2............................................................2................................ 287 ix .. 273 NAJVA@NIJI WINDOWS PROGRAMI ........................................ 269 PROGRAM MANAGER ...........

xi . a me|usobno se razlikuju po broju raspoloživih funkcija i po sistemskim ograničenjima. takozvane Toolbox-ove. U ovoj knjizi je prezentiran MATLAB for Windows. Sun. Problemi i rješenja se izražavaju na sličan način kao i u standardnim matematičkim formulacijama i to bez potrebe za tradicionalnim programiranjem. OPTIMIZATION.1x). za relativno kratko vrijeme. razvijene su različite verzije MATLAB-a prilago|ene pojedinim računarskim sistemima. Stardent Titan. HP. DECstations i DEC VAX. ^itaocima preporučujemo da kreiraju sopstvene Toolboxove. Zbog velike popularnosti. Prva verzija pisana je u Fortranu. Ovdje predstavljamo verziju MATLAB for Windows (grupa verzija 4) koja se koristi u Windows operativnim sistemima. CONTROL.UVOD MATLAB je viši programski jezik razvijen sredinom 80-tih. U industriji se koristi za izračunavanja pri rješavanju praktičnih i istraživačkih problema. kako onim pod MS DOS-om (Windows 3. Osnovni elementi svih prethodnih verzija MATLAB-a su identični. IDENTIFICATION. tako i modernijim (NT i 95). kao i za Alliant i Cray superkompjutere. Takve funkcije se obično grupišu u posebne pakete. Na taj način se numerički problemi rješavaju za samo djelić vremena koje bi bilo potrebno za pisanje programa u nekom od nižih jezika (Fortran. Napomenimo da postoje verzije MATLAB-a prilagodjene širokom opsegu kompjuterskih sistema: Apple Macintosh. postao standardni programski paket na vodećim univerzitetima i istraživačkim institutima. Basic. a kao osnova su uzeti paketi LINPACK i EISPACK. Nove verzije MATLAB-a (1987 i 1989) napisane su u jeziku C. Neke od njih nudi i sam proizvo|ač MATLAB-a: SIGNAL PROCESSING. čije poznavanje omogućava direktno korišćenje i svih ostalih implementacija MATLAB-a jer se njihove dodatne mogućnosti i ograničenja jednostavno otkrivaju. MATLAB pruža izvanredne mogućnosti kreiranja novih funkcija za specijalizovane oblasti primjene. Apollo. Convex. MATLAB je. C). a distribuira ga softverska kompanija The Math Works Inc. SYMBOLIC MATH i sl. Sastavni dio MATLAB-a kao posebni modul je i SIMULINK koji služi za simulaciju dinamike sistema. Koristi se u uvodnim kursevima linearne algebre i numeričke analize kao i u kursevima ostalih matematičkih i tehničkih disciplina.

Pod pretpostavkom da je kreirana prečica za MATLAB (Shortcut MATLAB) postupak startovanja MATLAB-a je isti kao u Windows-u 3. Korisnicima ove platforme. na ekranu se obično pojavi sljedeći znak: C:\> koji nazivamo PROMPT. Komandni prompt MATLAB-a je znak >> pored kojeg se nalazi kursor.1x. kada je označena ikona MATLAB dovoljno je pritisnuti taster Enter. MATLAB se može startovati dvostrukim klikom mi{a (brzim dvostrukim pritiskom na lijevi taster). MATLAB for Windows postoji za sve značajnije operativne sisteme. Na radnoj povr{ini Windows-a 95 vidimo raspore|ene ikone.1x. Uočava se da je ova aplikacija podijeljena u programske grupe unutar kojih se nalaze ikone. liniju menija i radni prostor.1x startujemo sa: C:\>win uz pritisak na taster Enter. poslije pozdravnog ekrana. Prilikom uključivanja Windows-a startuje se osnovna aplikacija a to je najče{će Program Manager (Slika 1). po uključivanju računara. Ako je MATLAB pravilno instalisan postoji grupa MATLAB. unutar koje se nalazi ikona MATLAB. Uočimo da prozor pored ovih svojih elemenata posjeduje i liniju menija. (Slika 2).1x ili Windows 95. koji je dat na slici 3. Alternativno. a ovdje se pretpostavlja da se radi na PC-iju pod operativnim sistemima DOS/Windows 3. Dakle i ovaj prozor ima svoj naziv (MATLAB Command Window). Windows 95 je operativni sistem koji se uobičajeno startuje uključivanjem računara. pojavljuje se Matlabov komandni prozor. Windows 3.MATLAB for Windows Kako početi rad u MATLAB-u U ovom kratkom uvodu predpostavljamo da je MATLAB for Windows već instalisan i da postoji na računaru. i koji predstavlja znak spremnosti računara da primi naredbu. Kada se startuje MATLAB. Opi{imo prvo način startovanja MATLAB-a pod Windowsom 3. 1 . horizontalna trepćuća linija. Windows karakteri{e upotreba mi{a.

1x 2 .Kako početi Slika 1: Program Manager Windowsa 3.

na primjer kao na slici 4. To je grafički prozor. Kada se crta neki grafik. 3 .MATLAB for Windows Slika 2: Windows 95 radna povr{ina Slika 3: Komandni MATLAB-ov prozor Pored ovih pojmova uvedimo jo{ jedan neophodan pojam. otvara se grafički prozor.

Kako početi Slika 4: Jedan mogući izgled grafičkog prozora 4 .

ovako ure|eni brojevi mogu predstavljati neki linearni operator.1. dakle matricu u uobičajenom smislu. Matrice malih dimenzija najlakše se unose direktnim definisanjem liste elemenata.MATLAB for Windows glava prva OSNOVNE FUNKCIJE Osnovni objekat nad kojim se vrše razne operacije u MATLAB-u čini niz brojeva (array of numbers) pore|an u m vrsta i n kolona. Naime. kadgod je to moguće. 1. Elementi su razdvojeni blenkom ili zarezom dok se znak .1 Unošenje izraza »A=[1 -2 4.1 UNO[ENJE PODATAKA U MATLAB-u postoji više načina za unošenje matrica. (2) Svi specijalni slučajevi pravougaone matrice (m=n>1-kvadratna matrica. sve do iznosa ograničenog svakim pojedinačnim računarom. Fleksibilnosti MATLAB-a znatno doprinose i sljedeće osobine: (1) Ne sadrži iskaze za odre|ivanje dimenzije ili tipa matrice. koji ćemo uslovno zvati pravougaona (m x n) matrica. osim u nekim operacijama kada je za vektore i skalare odre|eno specijalno značenje. (3) Elementi matrice mogu biti realni ili kompleksni. Najprirodnije ih je unijeti po vrstama. Primjer 1. m=1-vektor vrsta. m=n=1-skalar) prirodno slijede pravila za opšti slučaj. ili tipka <Enter> koristi za odvajanje vrsta matrice.7 -4 2] rezultira u 5 .5 -6 8. ali ih MATLAB može interpretirati i kao tabelarni prikaz nekih podataka koje treba obraditi na odre|eni način. ukoliko nije posebno naglašeno. Zato ćemo. na prirodan način kao što bi ih pisali na papiru. n=1-vektor kolona. pri čemu se uglaste zagrade [ i ] koriste da ograniče listu elemenata. Operacije i iskazi u MATLAB-u pišu se. već se odre|eni prostor pridružuje automatski. pod pojmom "matrica" podrazumijevati bilo koji od navedenih slučajeva.

.4.0934 -24.0934 -24.9340 -33.246 -24.7 23.678 35. -34.1300 -39. Primjer 1.-2.6780 35. naznačimo prenošenje na sljedeću liniju.2754 -965.3 Unošenje »B=[245.3570 -45..9643 27.2754 -965.1.7634 945..934 -33.2800 6 . unošenje možemo nastaviti u narednoj.97 54.7634 945.723 .8734 -39.6592 -35.7230 -34. Isti rezultat imaćemo i unošenjem »A=[1.9800 -2.3452 -345.8734 -24. a koristan je i kada imamo posla sa velikim matricama koje možemo razvući na više ulaznih linija.9700 Columns 8 through 9 54.8.1.5.78 0.28] rezultira u B= Columns 1 through 7 245.13 2] rezultira u C= 123.6592 -35.2] ili »A=[ 1 -2 4 5 -6 8 7 -4 2] Ovaj zadnji način unošenja je pogodan jer imitira pisanje matrice na papiru.7..7800 0.3460 -345.346 -345.-4.2 Unošenje »C=[123.7000 23.268 -0.Osnovne funkcije A= 1 -2 4 5 -6 8 7 -4 2 Matrica A smještena je u radnu memoriju za kasniju upotrebu.98 -2.2460 2. pri čemu sa .3452 -345.0000 Ukoliko elemente jedne vrste nije moguće smjestiti u jednoj ulaznoj liniji.2680 -0.357 -45. Primjer 1.9643 27.-6.

Pored toga. Primjer 1. sa indeksima unutar malih zagrada ( ).4)=-3. Komande zeros(n). tj. 7 .MATLAB for Windows Ukoliko unosimo "rijetke" (sparse) matrice. ones(X) daje matricu jedinica iste dimenzije kao matrica X. 1. Ukoliko su iskazi razdvojeni zarezima. one kod kojih je relativno velik broj elemenata jednak nuli.5)=7 rezultira u D= 2 0 0 0 0 0 0 0 0 -3 0 0 0 0 7 Gornji primjer ilustruje pomenutu osobinu MATLAB-a da se dimenzije matrice automatski prilago|avaju. dok znak .2 FORMIRANJE MATRICA SPECIJALNE STRUKTURE U MATLAB-u je razvijen odre|eni broj matrica specijalne strukture. respektivno.n) i zeros(X) na potpuno analogan način generišu matrice sa nulama.1)=2. poslije iskaza služi za suspendovanje prikazivanja rezultata. Prilikom njihove upotrebe javlja se sljedeće upozorenje: This usage of ones(X) is obsolete and will be eliminated in future versions. Opcije ones(X).1. Napomenimo da MATLAB raspolaže sa skupom funkcija za rad sa ″rijetkim″ matricama sa kojima ćemo se sresti u narednim poglavljima. Please use ones(size(X)) instead. eye(X) i zeros(X) treba izbjegavati jer predstavljaju ostatak ranijih verzija MATLAB-a. sa osobinom da je zbir elemenata po vrstama i kolonama konstantan. respektivno. vidimo da se više iskaza može napisati u jednoj liniji.4 Unošenje »D(1. pogodno je definisati nenulte elemente pojedinačno.D(1. Komande ones(n) i ones(m.n) daju jedinične matrice dimenzije (n x n) i (m x n).D(3. Komanda eye(X) daje jediničnu matricu iste dimenzije kao prethodno formirana matrica X. Funkcija magic(n) generiše matricu dimenzija (n x n) sa cjelobrojnim elementima izme|u 1 i n2. zeros(m. rezultati će biti prikazani na ekranu. Komande eye(n) i eye(m.n) generišu matrice sa svim elementima jednakim jedinici. a dimenzije su im (n x n) i (m x n).

Osnovne funkcije Primjer 1.zeros(3). Naredba hilb(n) formira kvadratnu matricu dimenzija (n x n) čiji su elementi vezani sa indeksima.Y=eye(5.5). Naravno. Naredba pascal(n) formira kvadratnu matricu dimenzija (n x n) kojoj elementi normalni na glavnu dijagonalu čine Paskalov trougao 1 1 1 1 3 1 1 2 3 1 1 1 4 6 4 1 5 10 10 5 1 8 . ukoliko joj već nijesmo dodijelili ime operacijom pridruživanja (znak=).3). rezultat).magic(5) rezultiraju u X= 1 1 1 1 ans = 0 0 0 Y= 1 0 0 0 0 ans = 17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Primjećujemo da MATLAB sam kreira veličinu po imenu ans (answer=odgovor.2. po formuli 1/(i+j-1). u radnom prostoru će ostati samo zadnja veličina pod tim imenom.1 Komande »X=ones(4.

Primjer 1.2 Unošenjem » E=hilb(4).3 FUNKCIJE OP[TE NAMJENE 1. O ovim mogućnostima MATLAB-a biće riječi kasnije..3333 0.2000 0. Ovo predstavlja veliku pogodnost posebno za početnike. Da bi se dobio spisak oblasti za koje postoji sažeto uputstvo (pomoć).unošenjem iz spoljnih fajlova sa podacima.generisanjem pomoću iskaza i funkcija.5000 0. Naredbom help u MATLAB-u je obezbije|ena "služba pomoći i informacija".MATLAB for Windows .3333 0..2. matrice se mogu unositi i na druge načine: .2500 0.1429 ans = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70 Pored navedenih.2000 0. ali je značajno i za iskusne programere jer je teško memorisati veliki broj funkcija u MATLAB-u. dovoljno je unijeti »help Dobijamo spisak od 21 oblasti koje help obuhvata..2500 0. Spisak naredbi koje obuhvataju jednu oblast dobijamo sa: »help oblast Informaciju o nekoj konkretnoj komandi ćete dobiti sa »help komanda 9 .2500 0. Postoji nekoliko verzija ove naredbe. 1.pascal(5) dobijamo E= 1.kreiranjem u M-fajlovima.3.0000 0.1 OPERATORI ZA POMO] PRI RADU Kao i svi Windows programi i MATLAB posjeduje bogat Help program.3333 0.5000 0.1667 0.2000 0..2500 0. .1667 0. .

It is not necessary to give the full pathname of the directory. Unošenje »help help. The topic can be a command name or a directory name. or last several components.help dde. For all files in which a match occurs. ddereq . LOOKFOR displays the matching lines. WHAT. ABS Absolute value and string to numeric conversion. DIR.1 Korišćenjem naredbe help pribavićemo informacije o načinu upotrebe same komande help.Terminate DDE conversation.0 1-Dec-93 Copyright (c) 1984-94 by The MathWorks. DDE Toolbox. Each primary topic corresponds to a directory name on MATLABPATH. ddepoke . MORE. Inc. UNWRAP. ABS(X) is the complex modulus (magnitude) of the elements of X. where S is a MATLAB string variable. HELP displays information on that command.Send data to application. ABS(S). If it is a command name. It does not change the internal representation. ddeunadv . WHICH. only the way it prints.Osnovne funkcije Primjer 1. For example. Version 1.Initiate DDE conversation. ABS(X) is the absolute value of the elements of X. See also SETSTR. See also ANGLE. ddeinit .Send string for execution. If it is a directory name. LOOKFOR XYZ looks for the string XYZ in the first comment line of the HELP text in all M-files found on MATLABPATH. ddeadv . When X is complex.help abs daje HELP On-line documentation. returns the numeric values of the ASCII characters in the string.Request data from application.3. MORE ON causes HELP to pause between screenfuls if the help text runs to several screens. Naime u liniji menija osnovnog MATLAB prozora postoji opcija Help koja se može pozvati tasterskom kombinacijom Alt+H ili klikom miša. ddeterm . by itself. ddeexec . "HELP topic" gives help on the specified topic. the last component. kao i o skupu naredbi dde i komande abs. Izborom opcije Table of Contents otvara se prozor za pregledom oblasti koje 10 . See also LOOKFOR. HELP displays the Table-Of-Contents for the specified directory. "help general" and "help matlab/general" both list the Table-Of-Contents for the directory toolbox/matlab/general.Release advisory link. Pored ovakvog help-a MATLAB posjeduje help organizovan u obliku hiperteksta. HELP.Set up advisory link. are sufficient. lists all primary help topics. DDE Client Functions.

uključujući i nulu.0 i sljedećeg većeg realnog broja sa pokretnim zarezom. korisnik može ovoj promjenljivoj dati bilo koju vrijednost.MATLAB for Windows MATLAB obuhvata. Zato se obavezno treba upoznati sa tekstovima samih programa o kojima možete čitati u oblasti help demos. Postoji i Index koji obuhvata abecedni spisak svih naredbi MATLAB-a. Veličina eps koristi se kao tolerancija pri nekim proračunima kao što su odre|ivanje singularnosti ili ranga matrice. i klik miša na naziv oblasti daje pregled svih naredbi koje oblast obuhvata. koji se mogu pozvati naredbama »demo »expo Programi koji su obuhvaćeni ovim demo programima predstavljaju dobru školu za svakog MATLAB programera. Klikom na odgovarajuću naredbu dobijaju se osnovne informacije o njoj. prire|eni su uzorci raznih programa. Ukoliko je to neophodno.22*10-16. MATLAB posjeduje i pojedine konstante uvedene da bi potpomogle jednostavniji rad i da bi pratile uobičajeni način matematičke notacije.2 INFORMACIJE O VARIJABLAMA I FAJLOVIMA Za prikazivanje direktorijuma veličina iz radnog prostora koristi se naredba who. uzima se da je eps=2-52 što približno iznosi 2. Ukoliko ste proradili dosadašnje primjere. Nazivi oblasti su istaknuti iz ostalog teksta. unošenjem »who dobija se: Your variables are: A C E B D X Y ans Pored ovih. MATLAB početnicima preporučujemo da startuju i uvodni program »intro 1. Njena početna vrijednost je rastojanje izme|u 1. Za ilustrovanje mogućnosti MATLAB-a. 11 .3. U IEEE aritmetici koja se koristi na većini personalnih računara. Tokom čitanja helpa pritiskom na Back možemo se vratiti na prethodnu temu help-a ili sa History na neku temu koju ste tokom te sesije pokrenuli.

koja daje ne samo imena varijabli već i njihove dimenzije i indikaciju prisustva kompleksnih elemenata. Tako naredba »what prikazuje sadržaj tekućeg direktorijuma a 12 . Promjenljive pi. s1=-1/0 što daje s= Inf s1= -Inf Warning:divide by zero Na mašinama sa IEEE aritmetikom dijeljenje sa nulom ne dovodi do prekida izvršavanja ili greške.Osnovne funkcije Veličina pi je ustvari Ludolfov broj π. Na nekim računarima omogućena je IEEE aritmetikom. pored ovog. koji se unaprijed izračuna na neki od mogućih načina. Na drugim računarima koristi se softver sa pokretnim zarezom za simuliranje matematičkog koprocesora. Inf su stalne promjenljive a. Za prikazivanje liste direktorijuma M. ali ima različito značenje. može poslužiti naredba what. NaN. Globalne promjenljive su one veličine koje važe u svim fajlovima. Podatke o definisanim globalnim promjenljivim možemo vidjeti naredbom »who global Detaljnije informacije o veličinama iz tekućeg radnog prostora mogu se dobiti naredbom whos odnosno whos global. Neki od načina da se generiše inf su »s=1/0. Za matrice koje nijesu rijetke ova je gustina Full dok je za rijetke matrice data u procentima koji predstavljaju procenat nenultih elemenata matrice. eps. Tako|e ovom naredbom dobijamo informaciju o gustini matrice. implementiranom na matematičkom koprocesoru. Veličina inf predstavlja skraćenicu od infinity (beskonačno) i koristi se na veoma malom broju sistema i računarskih jezika. Dolazi od izraza Not a Number (nije broj) i može se generisati sa inf/inf ili 0/0. Veličina NaN je IEEE broj koji je povezan sa Inf. MEX i MAT-fajlova. Ispisuje se poruka upozorenja i specijalna veličina koja se ponaša korektno u kasnijim izračunavanjima. MATLAB podržava koncepciju globalnih promjenljivih.

1). U prvom slučaju kao izlazni argumant dobijemo vektor vrstu (označen proizvoljno sa s) sa dva elementa koji pokazuju broj vrsta i kolona veličine X.ll=length(D). Primjer 1.2). respektivno.3. 2 ako je A. Za provjeru postojanja neke veličine ili fajla koristi se naredba exist.n]=size(D). Za odre|ivanje dimenzija pojedinih veličina služi naredba size.M ime nekog fajla na disku. [m.3. koristićemo drugu verziju koja ima dva izlazna argumenta. 3 ako je A.m i da je cos ugra|ena funkcija. Ukoliko želimo da dimenzije varijable X (proizvoljno označene sa m i n) dobijemo posebno.3 Provjerimo da li postoje D. Naredba which ime_funkcije traži poziciju na disku specificirane MATLAB funkcije iz M ili MEX fajlova. Naglasimo da ime varijable ili fajla mora biti izme|u navodnika.exist(‘cos’). Za odre|ivanje dužine (dimenzije) vektora koristi se naredba length. m=size(X. cos i acosh.MEX ime funkcije na disku.n]=size(X). 4 ako je A prevedena Simulink funkcija.MATLAB for Windows »what ime_direktorijuma prikazuje sadržaj direktorijuma specificiranog imenom.4 Odrediti dimenzije promjenljive D i dužinu vektora B. l predstavlja veći od broja redova i broja kolona. 5 ako je A ugra|ena funkcija i 0 ako A ne postoji.size(X. Tako l=length(y) daje skalar l koji pokazuje broj elemenata vektora y. Unošenjem »exist('D').exist('acosh') dobijamo ans= 1 ans= 5 ans= 2 što znači da postoji varijabla D i fajl acosh. Tako unošenje »exist('A') daje 1 ako je A veličina iz radnog prostora. bilo da se radi o vektoru vrsti ili koloni. Primjer 1.1) i n=size(X. Postoje četiri varijante ove naredbe koje možemo generalno predstaviti kao: s=size(X). Treća i četvrta varijanta naredbe size daju nam broj vrsta i kolona matrice X respektivno.d=length(B) dobijamo 13 .[m. U slučaju da je y matrica. Unošenjem »size(D).

a i zbog 14 . Sa naredbom clear treba oprezno postupati da bi se izbjeglo nenamjerno brisanje podataka i funkcija. pri čemu ime1. . Na taj način se radni prostor "očisti" kao kad prvi put uključimo MATLAB.Osnovne funkcije ans = 3 ll= 5 ans= 4 m= 3 n= 5 d= 9 5 1.. »clear ans d Brisanje globalnih promjenljivih se obavlja naredbom clear global. Naredbom »clear functions brišemo sve tekuće M-funkcije kompajlirane u radnoj memoriji. a slično se može uraditi za nekoliko veličina.5 Izbrisati iz radne memorije veličine ans i d..3 BRISANJE I ^UVANJE PODATAKA Za odstranjivanje (brisanje) promjenljivih iz radne memorije koristi se naredba clear.3. Sa »clear x iz radnog prostora brišemo samo veličinu ili funkciju sa imenom x. može biti ime varijable ili neke funkcije. Naredbom »clear mex ukidamo sve povezane mex funkcije a sa »clear all brišemo sve promjenljive... Primjer 1. mex linkove i funkcije iz radne memorije. Unošenjem »clear sve veličine i kompajlirane funkcije odstranjuju se iz radnog prostora. na primjer »clear ime1 ime2 ime3 .3. Da bi se osigurali od ovakvih omaški.

možemo završiti sesiju MATLAB-a. o čemu će biti više riječi kasnije. Ovo se postiže naredbom load. koristimo naredbu save. istovremenim pritiskom na tipke <Ctrl> i <C> odnosno <Ctrl> i <Break>. »load unosi u radni prostor podatke iz fajla matlab. Y i Z. ali bez izlaska iz MATLAB-a. Kada se ponovo uključimo u MATLAB. dok »load ime puni radni prostor podacima iz fajla ime. naravno. Prekid uzrokuje gubitak veličina iz radnog prostora i izlazak iz MATLAB-a. radni prostor može se popuniti ranije sačuvanim podacima. Pošto smo sačuvali na disku veličine koje nas interesuju.mat. Tako unošenjem »save upisujemo sve tekuće varijable u unaprijed odre|eni MAT-fajl sa imenom matlab. naredbama »exit »quit ili izborom opcije Exit iz menija File. Napomenimo da naredbe save i load možemo koristiti za smještanje i učitavanje podataka iz ASCII fajlova.mat (ime je. dok naredbom »save ime x Y Z upisujemo u fajl ime. Prekid rada.MATLAB for Windows trajnog čuvanja podataka na disku za neku kasniju upotrebu. koja predstavlja inverznu operaciju od save. tj.mat. proizvoljno). 15 .mat.mat samo veličine x. Naime. može se izvršiti upotrebom <Ctrl>-<C> ili <Ctrl>-<Break>. Za prekid rada koriste se ravnopravno tri načina. Naredbom »save ime upisujemo sve tekuće veličine iz radnog prostora u fajl ime.

4 INFORMACIJE O SISTEMU MATLAB posjeduje niz trajnih promjenljivih koje korisnika informišu o performansama sistema. sat.4. dan.0510 0.0090 » Datum=date Datum = 7-Sep-96 » etime(clock. datum u obliku stringa i vrijeme proteklo izme|u prve naredbe i sadašnjeg trenutka.4.-2.0e+003 * 1. i po završetku rada unijeti sa diska veličine x.krajnje_vrijeme) a tekući datum u obliku string naredbom date u formatu dan-mjesec-godina.3. minut i sekundu.-6]. Primjer 1. » clock ans = 1. y=[-3 4 -6] i matricu Z=⎢ ⎥.6] »save podaci »quit »load podaci 1. a odgovor će na PC mašinama sa Windows operativnim sistemom biti ans = PCWIN gdje je PCWIN promjenljiva tipa string (niz karaktera o kojima će biti više riječi u petom poglavlju).4. Tako naredba » computer informiše korisnika sistema na kom sistemu radi.7 Prikazati tekuće vrijeme. mjesec.Osnovne funkcije ⎡ −1 2 4 ⎤ Primjer 1. y i Z.0070 0.2. »x=[1.Z=[-1.3]. Proteklo vrijeme u sekundama izme|u dva trenutka se može saznati naredbom etime (početno_vrijeme.y=[-3.0087 16 .6 Unijeti vektore x=[1 -2 3].2.0210 0.3.9960 0. ⎣ 2 4 6⎦ Sačuvati ove podatke u fajl sa imenom podaci. Trenutno vrijeme se može saznati pomoću trajne promjenljive clock koja predstavlja vektor sa šest komponenti: godina.ans) 0.3.

3800 Vidimo da je trenutak izrade ovog primjera bio 07.. 1.. na primjer. koja se nakon toga pojavljuje na ekranu i vezuje za neku varijablu radi kasnije upotrebe. automatski se kreira varijabla sa imenom ans. MATLAB razlikuje velika i mala slova. 17 . Imena varijabli i funkcija moraju početi slovom. Izrazi su sačinjeni od operatora. Opšte je pravilo da se ugra|ene MATLAB funkcije moraju pisati malim slovima dok se funkcije koje se nalaze na disku u formi fajlova mogu pisati i malim i velikim slovima.4 ISKAZI I VARIJABLE MATLAB je jezik izraza (expressions). iza koga može slijediti proizvoljan broj slova.7 sekundi i da je izme|u prve i treće naredbe proteklo 15.[var1. prikazivanje na ekranu se suspenduje iako su operacije definisane iskazom izvršene u računaru. Izračunavanje izraza proizvodi matricu.1996 u 21h 51minut i 8. u smislu da kao argument operatora mogu poslužiti veoma složeni izrazi sastavljeni od niza funkcija i operatora. a i A nijesu iste varijable.izraz .]=izraz pri čemu je var skraćenica za ime varijable (veličine. čije ime potiče od answer (odgovor. promjenljive). Tako. Izrazi koji korisnik unese interpretiraju se i izvršavaju od strane sistema MATLAB-a. zadnji karakter iskaza semicolon (. funkcija i imena varijabli. me|utim. rezultat).38 sekundi.). Generalni izraz u MATLAB-u može poprimiti neki od sljedećih oblika: . Primijetimo da je MATLAB veoma fleksibilan.var=izraz . Ako je.09. Tako je cos(A) funkcija a COS(A) vraća poruku ″undefined function″ (nedefinisana funkcija) dok acosh(A) i AcOsH(A) vraćaju isti rezultat. Ako se ime varijable i znak pridruživanja (=) izostave. Pri tome je redosljed izvršavanja pojedinih operacija u okviru jednog iskaza naznačen običnim zagradama ( ). specijalnih karaktera (znakova). cifara ili podvučenih crta( znak _).MATLAB for Windows ans = 15. ali se samo prvih 19 karaktera iz imena pamti. Iskaz se normalno završava tipkom <Enter>.var2.

1/8 . + 1/9 . o čemu će kasnije biti riječi. Napomenimo da ovakvu sumu možemo i elegantnije izračunati. i predstavljaju najmanji i najveći broj sa kojim se u MATLAB-u može računati..22x10-308 i 1.1 Izračunati: sin ln(19 / 12) + cos(2π / 3) tg(5 / 12) »sin(sqrt(log(19/12)+cos(2*pi/3)*tan(5/12))) ans = 0.5 BROJEVI I ARITMETI^KI IZRAZI Ranije smo pomenuli da MATLAB operiše sa realnim i kompleksnim brojevima.2 Izraz »s = 1 . što znači oko 16 decimalnih mjesta. Opseg iznosi od realmin do realmax.8305e-20 0. Primjer 1.0002 4.n]=size(a). izračunava parcijalnu sumu alternativnog reda i pridružuje je varijabli s.8x10308. Za brojeve se koristi uobičajena decimalna notacija sa znakom minus i decimalnom tačkom.1/10 + 1/11 ..Osnovne funkcije Primjer 1. gdje su realmin i realmax prethodno definisane MATLAB konstante koje zavise od računara. 18 . ali je ne prikazuje na ekranu.1/2 + 1/3 . (nekoliko tačaka) i tipke <Enter>. Na računarima koji koriste IEEE aritmetiku sa pokretnim zarezom relativna tačnost brojeva je eps.1/12.5.9362818 -99 1.. Faktor skaliranja u obliku stepena broja deset može se uključiti kao sufiks. možemo ga prenijeti na sljedeću ulaznu liniju korišćenjem . sa izlaznim argumentima m i n) ili kada se posebno kreiraju funkcije u M-ili MEX-fajlovima. Analogan postupak može se primijeniti i na unošenje složenih izraza.4689 Ranije smo napomenuli da se podaci mogu unositi u više ulaznih linija. mada uobičajeno iznose 2. radi konciznijeg predstavljanja broja..1 Navodimo nekoliko mogućih oblika brojeva: 3 6.1/6 + 1/7 . Naime.035278e23 gdje je sa Ne±m označen broj Nx10±m.4. 1.4.1/4 + 1/5 . Primjer 1. Izrazi u MATLAB-u mogu imati više izlaznih argumenata (varijabli) i to u slučajevima kada to prirodno proizilazi iz namjene samog osnovnog operatora ugra|enog u MATLAB (vidjeli smo ranije [m. ukoliko je izraz toliko složen da ga ne možemo unijeti u jednoj ulaznoj liniji.

a mogu se prirodno pojaviti i kao rezultat primjene odre|enih funkcija ili operatora sa realnim argumentima.5.oduzimanje. sqrt. b-realni i imaginarni dio ili u obliku: w=r*exp(i*fi). itd. a njihovo uvo|enje je bilo motivisano potrebom koja proizilazi iz operacija sa matricama. a. r. / dijeljenje sdesna. \ dijeljenje slijeva. Primjer 1.moduo i argument kompleksnog broja.6 KOMPLEKSNI BROJEVI I MATRICE Ranije smo pomenuli da značajna fleksibilnost MATLAB-a proizilazi iz činjenice da su dozvoljene operacije sa kompleksnim brojevima. Kasnije ćemo dati kompletnu listu ugra|enih funkcija kao i mogućnosti kreiranja novih. * množenje.). tan. Zbog različite notacije u literaturi. pomoću M-fajlova.2 Izrazi »1/4. .25 1. pi i sl.inv(4)*1 svi daju isti rezultat ans= 0. kao što su sin. Napomenimo da dva operatora za dijeljenje daju isti rezultat kada operišemo sa običnim brojevima (skalarima). o čemu će kasnije biti više riječi. fi.MATLAB for Windows Izrazi se prave korišćenjem uobičajenih aritmetičkih operacija: + sabiranje. i označena sa i i j. imaginarna jedinica je u MATLAB-u prethodno definisana kao permanentna veličina (kao što je to ura|eno sa eps. Kompleksni brojevi se mogu generisati kao: z=a+b*i. log. Korišćena je klasična definicija. Oni mogu biti unešeni kao ulazni podaci. 19 .4\1. tako da je: »i=sqrt(-1) dok drugi više vole oznaku j: »j=sqrt(-1) Mi ćemo ovdje koristiti oznaku i. ^n stepenovanje sa n i niza elementarnih funkcija ugra|enih u MATLAB.

6.4]. i -posebno se unose realni i imaginarni dio.0000 + 7.6.0000 +8.0000 + 5.3+7*i 4+8*i] sa istim rezultatom: Z1 = -1.0000 .6.Osnovne funkcije Primjer 1.9924i Postoje najmanje dva načina za unošenje kompleksne matrice: -elementi se unose kao kompleksni.0000i 4.0000 .2 Za unošenje matrice sa ⎡−1 + 5i 2 − 6i ⎤ Z =⎢ ⎥ ⎣ 3 + 7i 4 + 8i ⎦ možemo ravnopravno koristiti sljedeće izraze: »a=[-1.0000 + 5.0000i dok izraz »w=5*exp(2.0000i 3.0000i 2.-6.0000 + 5.5*i) daje »w =-4.8].0000 + 8.Z=a+b*i što daje a= -1 2 3 4 b= 5 -6 7 8 Z= -1.0000i ili »Z1=[-1+5*i 2-6*i.0000i 2.2.0000i MATLAB za Windows dozvoljava proizvoljan broj bjelina (blenkova i tabova) izme|u tokena (naziva varijabli i znakova aritmetičkih operacija) što nije 20 kompleksnim elementima .0057 + 2.0000i 4.7.b=[5.6.0000 + 7.3. Primjer 1.1 Unošenje »z=4+5*i rezultira u z =4.0000i 3.

da se pojedine (obično brojačke promjenljive) nazivaju i i j. na primjer »x=[-1 0 2] rezultira u 21 . Izlazni oblik prikazivanja brojeva (rezultata) može se kontrolisati upotrebom naredbe format.0000 w2 = -1.4 Z nije kompleksna veličina jer su i i j uzeli realne vrijednosti.0000 + 5.w1=[-1 + 4 * i 2 +5 * i]. a ne na to kako se računaju ili smještaju u memoriju (MATLAB sva izračunavanja vrši u dvostrukoj preciznosti). »z=3+5*i »z = 13 0 + 5. Ona utiče samo na to kako se matrice prikazuju na ekranu. Prilikom rada sa kompleksnim brojevima to može da rezultira neočekivanim poteškoćama. kao u sljedećem primjeru Primjer 1.0000i w1 = -1.w2=[-1 + 4 * i 2 + 5 * i] daju w= -1.0000 + 4. ^est je programerski manir. Najprostiji slučaj imamo kada su svi elementi matrice cijeli brojevi.0000i 2.0000i 2.6.7 IZLAZNI FORMAT Ranije smo naglasili da se rezultat bilo kojeg iskaza MATLAB-a prikazuje na ekranu.0000 + 4. Ova osobina omogućava posebno pregledno pisanje programa.0000i 1. Tako.MATLAB for Windows bio slučaj sa ranijim verzijama MATLAB-a. zajedno sa imenima specificiranih veličina ili ans ukoliko veličinama nijesmo pridružili imena.0000i Vidimo da je MATLAB prvu i treću matricu protumačio na isti način a da je izostanak blenka ispred broja 5 u drugoj matrici protumačio kao poseban broj. Tada se matrica prikazuje u formi bez decimalne tačke. » i=2.0000i 2. na koji ovdje upozoravamo.j=1.0000 + 5.0000 + 4. Primjer 1.6 3 Izrazi » w=[-1+4*i 2+5*i].

i prazni prostori (blenkovi) koriste za pozitivne.Osnovne funkcije x= -1 0 2 Ukoliko najmanje jedan element matrice nije cio broj. gdje se simboli +. ali je izlaz ustvari tačna decimalna reprezentacija binarnih brojeva smještenih u računaru.234500000000000e-006 »format hex y = 3ff5555555555555 3eb4b3fd5942cd96 »format + y = ++ »format bank y =1. Ostali formati prikazuju više značajnih cifara ili koriste eksponencijalnu notaciju. format bank se koristi kod prikazivanja finansijskih izvještaja. respektivno.7. a pokazuje 5 značajnih cifara. dolari i centi.33 0.00000123450000 »format long e y =1.00 format + predstavlja kompaktan način prikazivanja velikih matrica.3333e+000 1. Kod format long zadnja cifra može izgledati netačna.1 Unesimo vektor od dva elementa »y=[4/3 1. itd.2345e-006 »format long y =1.2345e-6]. Razne oblike prikazivanja izlaznih veličina ilustrovaćemo na sljedećem primjeru. postoje nekoliko mogućih izlaznih formata. .). Standardni format naziva se format short. Koristi se automatski (by default) ukoliko se ne specificira neki drugi format.333333333333333e+000 1.33333333333333 0. negativne i nulte elemente matrice. Različiti mogući formati i rezultujuće reprezentacije vektora su: »format short »y y = 1. Primjer 1. 22 .0000 »format short e »y y = 1.3333 0. gdje se iznosi zaokružuju na dvije decimale (dinari i pare.

01] rezultira u c = 1. Primjer 1.MATLAB for Windows Ako koristimo format short ili format long. Alternativno.7.0e+004 * 2.2 Unošenje »c=[21346 0. tada se obično rezultati prikazuju sa običnim formatom skalirani sa eksponencijalnim faktorom.1346 0.234 1/pi] dobijamo a= 117/500 113/355 jer format rat vrši predstavljanje brojeva u obliku racionalnih razlomaka.3 Unošenjem » format rat » a=[0. Kod drugog formata prikazivanje pojedinih redova podataka se odvaja praznim redom dok kod prvog formata to nije slučaj.13460000000000 0.0000 dok promjenom formata sa »format long imamo sljedeću izlaznu reprezentaciju c = 1.00000100000000 Primjer 1.8 GENERISANJE VEKTORA POMO]U KARAKTERA : (DVIJE TA^KE) 23 . se može mijenjati format upotrebom menija MATLAB-ovog komandnog prozora.0e+004 * 2.7.001. a najveći element matrice je veći od 1000 ili manji od 0. 1. Aktiviranjem opcije Numeric format u meniju Options otvara se meni u kojem se pregledno može izabrati traženi format. Pomenimo još dva formata: format compact i format loose koji se koriste kod prikazivanja većih matrica.

8..minimalna i maksimalna vrijednost x-a xk . xmax . k-1 k] dok izraz y=(i:k)' k>i generiše vektor kolonu koja u stvari predstavlja transponovani vektor x.6:pi daju 24 xmin<xmax 4 5 6 7 8 .Osnovne funkcije Karakter : je veoma pogodan i često korišćen u MATLAB-u. Naime. Ukoliko želimo proizvoljnu realnu vrijednost priraštaja (koraka).priraštaj Vektor kolona se dobija prostom transpozicijom ovako dobijenog vektora vrste. izraz oblika x=i:k k>i i.. Najviše se upotrebljava za generisanje vektora sa ekvidistantnim elementima. Primjer 1.1 Izrazi »x=3:8 »y=(1:4)' daju x= 3 y= 1 2 3 4 U dobijenim vektorima priraštaj je jednak +1.2 Izrazi »a=1. k-cijeli brojevi generiše vektor vrstu x=[i i+1 i+2 . opšti oblik izraza za generisanje vektora vrste je x=xmin:xk:xmax pri čemu su: xmin.4:2:11 »b=-pi:0.8. Primjer 1.

1416 Columns 8 through 11 1.4000 3.2584 2. Primjer 1.4000 5.8800 8.6584 2.7200 3.3416 -0.1600 6. 0.MATLAB for Windows a= 1.4400 5. a priraštaj pozitivan.8.1416 -2.0584 1.4000 7. Primjer 1.4 »p1=5:2:1 p1 = [] »p2=6:-1:9 p2 = [] Karakter : može se koristiti za jednostavno generisanje tabela.7416 -0.8.4000 9.1416 2.5416 -1.c=c1:(c2-c1)/5:c2 generišu vektor c= 0 Primjer 1. Isto važi za slučaj xmin < xmax i negativan priraštaj.5708 0.c2=8.5 Izrazi 25 9 8 7 6 5 1.8.3 »d=10:-1:5 »f=pi:-pi/4:0 daju d= 10 f= 3.4000 b= Columns 1 through 7 -3.3562 1.4584 . rezultat je prazna matrica [ ].6.8584 dok izrazi »c1=0.7854 0 Ukoliko je xmax < xmin.9416 -1.6000 Vektori se mogu generisati i sa negativnim priraštajem.

1987 0.0000 1.6967 0.Osnovne funkcije »x=[0:0.9996 -0. Primjer 1.6]'.7174 0.3) matrice: »A(2.2) 26 .1 »A=[1 2 3.8415 0.1700 0.9320 0.5403 0.3)=A(1.6000 0.4000 0. Ovo može poslužiti i za redefinisanje pojedinih elemenata vektora ili matrice.1) i (1.7 8 9] A= 1 2 3 4 5 6 7 8 9 Izdvajanje elementa (2.9801 0.9.8253 0.3) matrice zamijenimo sa zbirom elemenata (1.1)+A(1.4 5 6. 1. a za matrice dva cjelobrojna skalara.4000 1.2000 1.9211 0.0292 Treba pomenuti da MATLAB posjeduje funkcije (biće opisane u trećoj glavi) za generisanje vektora sličnih mogućnosti kao operator :.3) ans = 6 Element (3.9 INDEKSI I MANIPULACIJA VRSTAMA I KOLONAMA Pojedini elementi vektora ili matrice mogu se izdvojiti navo|enjem njihovih indeksa u običnim zagradama.9854 0.3624 0. »[x sin(x) cos(x)] daju ans = 0 0.0000 0.6000 0 1.5646 0.2:1.8000 1. pri čemu se za indeksiranje vektora koristi jedan.3894 0.2) iste matrice: »A(3.2000 0.

3) nove matrice A zamijeniti sa četvrtim elementom vektora x.9.2 Za vektor x iz prethodnog primjera i y=[1 3 2] izraz »x(y) daje ans = -1 6 3 Ako definišemo vektor y1=[-1 2 3] izraz »x(y1) daje poruku o grešci Index into matrix is negative or zero jer vektor koji se koristi kao indeks ne smije imati elemente koji su negativni ili su jednaki nuli... tada izraz x(y) znači: [x(y(1)) x(y(2)) .3)=x(4) A= 1 2 3 4 5 6 7 8 -3 U MATLAB-u i vektor može igrati ulogu indeksa. »x=[-1 3 6 -3 4] x= -1 3 6 -3 4 Sada ćemo element (3. 27 .x(y(n))] gdje je n=length(y). Ako su x i y vektori. Na primjer. Primjer 1.MATLAB for Windows A= 1 4 7 2 5 8 3 6 3 Vidimo da se promijenio samo element (3. »A(3. Napomenimo da bi se poruka o grešci javila kod izraza x(y) i u svim slučajevima kada je m<ym.3) dok ostali elementi i ime matrice ostaju nepromijenjeni. gdje je m=length(x) a ym je maksimalni element vektora y.

j2 ) ⎢ a (i . koja se sastoji od prva četiri elementa pete kolone matrice X. j1 ) a (im .7:10) 28 ... j1 ) a (i1 .9. jk ) ⎥ ⎥ ⎥ L ⎥ a (im . j ) 2 2 ⎢ 2 1 ⎢ M M ⎢ ⎣a (im . vektor kolonu. ako su vektori v i w vektori sa cjelobrojnim elementima. što omogućava pristup susjednim i nesusjednim vrstama i kolonama i manipulaciju sa njima.[2 3]) definiše novu matricu B koja se sastoji od elemenata prve i treće vrste i druge i treće kolone matrice A. Primjer 1.3 Za matricu ⎡1 2 3 ⎤ ⎥ ⎢ A=⎢4 5 6 ⎥ ⎥ ⎢ ⎣7 8 −3⎦ izraz »B=A([1 3].Osnovne funkcije »x=[-1 2 3]. j ) a (i .y=[1 5]. jk ) ⎤ a (i2 . tj.. dobijamo B= 2 8 3 -3 Neka je X matrica dimenzije (10x10). izraz X(1:5.5) definiše submatricu dimenzije (4x1). tj. jk]. U opštem slučaju. im] i w=[j1 j2 .w) generiše novu matricu od elemenata matrice A kao ⎡ a (i1 . j2 ) L L O L a (i1 .. jk ) ⎦ gdje su vektori definisani sa : v=[i1 i2 . izraz B=A(v. Tada izraz X(1:4. Na sličan način. »x(y) daje Index exceeds matrix dimensions Vektori mogu preuzeti ulogu indeksa i u matricama.

0824 0. Primjer 1.9626 »X(:.8075 0. tj.2749 0.8807 0.2113 0.4) koji daju matrice: X dimenzije (4x5) čiji su svi elementi nule i Y dimenzije (4x4) čiji su elementi slučajni brojevi izme|u 0 i 1 (o ovoj funkciji biće više riječi kasnije) Y= 0. b= 3 6 -3 b1 = 4 5 6 dok izraz »B=A(:. Provjeriti ove izraze na proizvoljnoj matrici X! Ukoliko želimo iz neke matrice izvući sve vrste ili kolone.4832 0. Veoma složeni efekti postižu se upotrebom vektorskog indeksiranja sa obije strane znaka jednakosti.MATLAB for Windows daje submatricu dimenzije (5x4) sačinjenu od elemenata iz prvih pet vrsta i zadnje četiri kolone matrice X.9. Primjer 1.6538 0.5).5 Za X i Y definisane izrazima »X=zeros(4. na mjestu predvi|enom za indekse vrste ili kolone koristimo karakter :.7599 0.3) »b1=A(2.0087 izraz 0.1:3) daje 29 .4524 0.8474 0.6135 0.4 Izrazi »b=A(:.4899 0.8096 0.[1 3 5])=Y(:.Y=rand(4.9.:) daje matricu B jednaku samoj matrici A.7741 0.:) daju treću kolonu i drugu vrstu matrice A.

ali sa novim sadržajem definisanim na desnoj strani izraza. vrši zamjenu prve.8096 0.4832 0.7599 0.8075 0 0 0 0 0.Osnovne funkcije X= 0.3:-1:1) daje A1 = 3 6 -3 2 5 8 1 4 7 čime smo izokrenuli redosljed kolona u matrici A.8474 0. izraz A(:) koji se nalazi sa desne strane znaka jednakosti.9. 30 .6 Ilustrovaćemo još jednu mogućnost korišćenja karaktera : i vektorskog indeksiranja. Karakter : može se upotrijebiti i za preoblikovanje matrice.8807 tj.0087 0 0 0 0 0.5 6].2113 0. Napomenimo da za ovakvu upotrebu karaktera : matrica A mora biti prethodno definisana. pravi dugi vektor kolonu koji se sastoji od "nadovezanih" kolona matrice A. drugom i trećom kolonom matrice Y. »b=A(:) rezultiraju u b= 1 3 5 2 4 6 Ako izraz A(:) upotrijebimo sa lijeve strane znaka jednakosti.9.0824 0.2749 0. dobijamo matricu iste dimanzije kao A. Naime.4524 0.7 Izrazi »A=[1 2. Za ranije definisanu matricu A. Primjer 1.3 4. treće i pete kolone matrice X sa prvom. izraz »A1=A(:.6135 0. respektivno. Primjer 1.

8 Matrica A iz prethodnog primjera ima dimenziju (3x2).MATLAB for Windows Primjer 1. htjeli ne htjeli. na primjer »y=12:-2:2 y = 12 10 tada izraz 8 6 4 2 »A(:)=y daje A= 12 10 8 6 4 2 što znači da je matrici A promijenjen sadržaj.9. Ako želimo da dobijemo broj operacija koje računar izvrši prilikom rješavanja odre|enog problema. računar pošalje poruku Out of memory. Tako|e treba reći da novi MATLAB ima razvijen niz funkcija za manipulaciju vrstama i kolonama matrice sa kojima ćemo se sresti u narednom poglavlju. dobija se naredbom flops. za vrijeme dužih sesija u MATLAB-u. Drugi. to znači da više nema mjesta u memoriji za nove varijable i da moramo. Za korisnike koji se služe PC računarima pod Windows-om (a to smo. koja "sabija" podatke u memoriji. Završićemo ovo poglavlje sa jednom korisnom napomenom. otvarajući time nove slobodne blokove. ali sada tako da zauzimaju manji prostor u memoriji. onda se prije početka rada na tom problemu brojač operacija resetuje sa flops(0). tj. memorija se potpuno očisti a zatim se "prepakovane" varijable ponovo vrate. prije nastavka rada. relaksirati memoriju. Ukoliko. koji računar izvrši u jednoj sesiji. Ovo se vrši tako što se sve varijable prvo sačuvaju na disku. Broj operacija sa pokretnim zarezom. veoma pogodan. Jedan od načina za osloba|anje prostora u memoriji bio bi brisanje nepotrebnih varijabli pomoću komande clear. većina nas) a posjeduju osrednji računar dobra je preporuka povećavanje swap prostora na disku što se postiže (naravno van MATLAB-a) u Control panelu vašeg Windowsa u sekciji 386 Enhanced klikom na opciju Virtual memory i odgovarajućim podešavanjima u ovom dialog box-u. Ako definišemo vektor y sa 6 proizvoljnih elemenata. način je unošenje komande pack. 31 . ukupno 6 elemenata.

vektor kolonu ili vektor vrstu. respektivno.1 TRANSPONOVANJE Transpozicija (zamjena vrsta i kolona) matrice sa realnim elementima vrši se pomoću znaka '. U specijalnim slučajevima.-4 -5 -6].MATLAB for Windows glava druga ELEMENTARNE OPERACIJE SA MATRICAMA I POLJIMA BROJEVA Matrične operacije čine znatan dio računskog potencijala MATLAB-a. 2. vektoru vrsti ili vektoru koloni. Jedino ograničenje proizilazi iz skupa karaktera raspoloživih na računaru.B=A' rezultiraju u A= -1 2 4 2 -3 1 -4 -5 -6 B= -1 2 -4 2 -3 -5 33 . operacija transpozicije daje skalar.1. postoji i mogućnost operacija nad ure|enim skupovima (poljima) brojeva na principu element-po-element. označene na prirodan način kao što bi to uradili na papiru. Primjer 2. sabiranje i oduzimanje) nećemo praviti razliku pri prezentaciji.2 -3 1. kadgod je to moguće. Kod operatora koji matrice i polja brojeva tretiraju na isti način (transpozicija. Pored matričnih operatora.1 Iskazi » A=[-1 2 4. a ostale relevantne operatore ćemo prezentirati odvojeno. One su. kada se radi o skalaru.

0000i 2.1.0000 . transponuje matricu i konjuguje svaki njen element.3.-2.0000i 5. W=Z' daju Z= -1.-3+4*i.4. tj.2+3*i.0000i 2.0000i -3.0000 .x=[-1 3 8]'.0000 + 2.W=conj(Z') dobijamo isti rezultat Y= 34 .1.2. Z' vrši tzv.y=[-1.0000 .3 Unošenjem » Y=Z. Primjer 2.'.0000i -3.0000i W= -1.0000i Za dobijanje transponovane kompleksne matrice možemo ravnopravno koristiti jedan od izraza datih u narednom primjeru: Primjer 2.5-2*i].2.Elementarne operacije sa matricama i poljima brojeva 4 1 -6 dok iskazi » a=[5. Naime.2]'.4]' daju a= 5.2 Izrazi » Z=[-1+2*i.0000 + 3.0000 . konjugovanu transpoziciju.0000 + 4.0000i 5.2000 x= -1 3 8 y= -1 -2 4 Ukoliko operaciju transpozicije primijenimo na matricu sa kompleksnim elementima Z moramo voditi računa o jednoj specifičnosti MATLAB-a.0000 + 2.

Primjer 2.0000i 2.2.2.0000i W= -1.1.0000 + 3.dopuštene i za različite dimenzije varijabli. Primjer 2. M+s (M-matrica.0000 + 3.0000 .0000 + 4.0000 + 2. zbog toga što su dimenzije ovih veličina (3*3) i (3*1).1 Uzmimo matrice A i x.0000i 5.2. npr.1. s-skalar). Ove operacije definisane su samo kada matrice koje sabiramo ili oduzimamo imaju iste dimenzije. definisane u primjeru 2.0000i 5.MATLAB for Windows -1.0000i 2. respektivno. tj.1. izrazi » C=A+B.0000i -3.0000i -3.2.0000 + 2.0000 + 4.2 Za matrice A i B definisane u primjeru 2.0000 . Ovakav izraz MATLAB interpretira tako što svakom elementu matrice M dodaje (ili od njega oduzima) naznačeni skalar s.C1=A-B daju zbir i razliku matrica A i B C= -2 4 0 4 -6 -4 0 -4 -12 C1 = 0 0 8 0 0 6 -8 -6 0 Osobenost MATLAB-a sastoji se u tome što su operacije + i . Izraz » A+x rezultiraće porukom ??? Error using ==> + Matrix dimensions must agree.2 SABIRANJE I ODUZIMANJE Sabiranje i oduzimanje matrica označava se sa + i -.1. ali samo ukoliko je jedna od njih skalar.0000i 2. respektivno. skalar se posmatra 35 .

x i skalar a.2000 0. definisane u primjeru 2.2000 7.Elementarne operacije sa matricama i poljima brojeva kao konstantna matrica sa dimenzijom prilago|enom matrici koja se sabira (ili oduzima).8000 G1 = -6. po pravilima matričnog računa.2000 -0. izrazi » G=B+a.2.2000 6.2. Primjer 2.2000 2.2000 7.8000 G1 = -6. Dakle moraćemo koristiti naredbu ones(size(X)).2000 6.2000 2.2000 2.2000 7.3 Za matrice B.2000 2.2000 9.2000 -2.2000 1.8000 iako. 36 .2000 9. nijesu korektni. važe za matrice i skalare sa kompleksnim elementima.G1=x-a*ones(x) sa rezultatom G= 4.2000 1.1.1. uključujući i ono o kompatibilnosti skalara i matrice pri sabiranju i oduzimanju.2000 -2.G1=x-a daju G= 4.4 Provjerimo rezultate iz prethodnog primjera matematički korektnim izrazima » G=B+a*ones(B). Sva navedena pravila. Please use ones(size(X)) instead. Primjer 2.2000 7.2000 -0.8000 uz upozorenje da će ovakav način rada biti ″izbačen″ u kasnijim verzijama MATLAB-a This usage of ones(X) is obsolete and will be eliminated in future versions.2000 0.

N=z+Z pri čemu smo kompleksnu matricu Z ranije definisali u primjeru 2. tj.3 MNO@ENJE MATRICA Matrično množenje u MATLAB-u je označeno sa *. takozvani skalarni (unutrašnji) i spoljni proizvod vektora. ilustrovaćemo na narednom primjeru.1.1) ne ispunjavaju navedeni uslov.0000i 6.y=[1 -1 2] x= 1 2 3 y= 37 .2 Sa definisanim vektorima » x=[1 2 3].0000 + 6.3. koji će dati c= 39 -3 -59 Mogućnosti množenja vektora sa vektorom. tj.1. pa će iskaz » c=x*A proizvesti poruku: ??? Error using ==> * Inner matrix dimensions must agree.2. Shodno pravilima matričnog računa.0000i -2. ova operacija je definisana kada su "unutrašnje" dimenzije činilaca iste.5 Izrazi » z=1+2*i. daju N= 0 + 4. ako je broj kolona prvog činioca jednak broju vrsta drugog.0000 + 5.0000 2.2.0000i 3.3.1 Prethodno definisani x i A (primjer 2.MATLAB for Windows Primjer 2. Primjer 2. Primjer 2. dok je iskaz » c=A*x korektan specijalan slučaj matričnog proizvoda.

Primjer 2.2832 12.3.1.1416 6. skalarni proizvod dva vektora c= 5 c1 = 5 Spoljni proizvodi rezultiraće iz izraza » D=x'*y.Elementarne operacije sa matricama i poljima brojeva 1 -1 izrazi 2 » c=x*y'.2832 -9. tj.3 Sa prethodno definisanim A i x (primjeri 2.6.3*x rezultiraju sa ans = -3.c1=y*x' daju isti rezultat. » x*y daje poruku greške: ??? Error using ==> * Inner matrix dimensions must agree.D1=y'*x D= 1 2 3 -1 -2 -3 2 4 6 D1 = 1 2 -1 -2 2 4 pri čemu izraz 3 -3 6 je očigledno da su matrice D i D1 povezane relacijom D'=D1. izrazi » A*pi.1416 38 .4248 3.1 i 2.2).3.5664 6. Naravno. Matrica ili vektor prirodno se množi sa skalarom.

tada E=A.8496 ans = 6.3000 12.1.*C daje novi skup brojeva E čiji su elementi proizvodi korespondentnih elemenata iz skupova A i C. Primjer 2. dok izrazi » g=x.9000 2.4.6000 18. a odgovarajući operator je označen sa . samo što su operacije izvršene po različitim pravilima tako da i daju različite rezultate: E1 = 10 -32 -56 -16 22 0 -12 38 92 E= 2 8 0 8 18 -4 0 20 72 Primjer 2. x. Za ovakvu operaciju činioci moraju imati iste dimenzije ako su brojevi ure|eni u obliku matrica ili vektora.2).1 i 2.1 Sa prethodno definisanim A i C (primjeri 2.* Matrix dimensions must agree.*x daje poruku greške ??? Error using ==> .7080 -18.3.*. y.5664 -15.*C su.2 Za ranije definisane varijable A.*y » g1=x. ako A i C označavaju dva takva skupa brojeva.2. izrazi » E1=A*C » E=A.MATLAB for Windows -12.4.*(-2) daju 39 .1. Naime.1 i 2. oba legitimni. (primjeri 2. s obzirom na dimenzije varijabli A i C. već se množenje vrši po principu element-po-element.4 MNO@ENJE POLJA BROJEVA Za množenje ure|enih skupova brojeva ne važe pravila matričnog računa. izraz » A.1).

unošenjem matrice » B=[-1+2*i 1-2*i i.-2 3*i 4+i].5. tj.Elementarne operacije sa matricama i poljima brojeva g= 1 -2 6 g1 = -2 -4 -6 Vidimo da ukoliko je jedan od činilaca skalar. Primjer 2. izračunava se pomoću operatora det(X).0000 +38.3 -1 2. 2.0000i Primjer 2.1 Ako unesemo matricu A sa realnim elementima » A=[1 5 8.5 DETERMINANTA I INVERZNA MATRICA Determinanta kvadratne matrice X. izraz » d1=det(B) daje d1 = -8. rezultat primjene operatora .2 Sa ⏐AB⏐=⏐A⏐⏐B⏐. matricama iz prethodnog primjera provjeriti relaciju 40 .-i 2 1+i. svaki element matrice ili vektora množi se sa skalarom.* će biti isti kao običnog matričnog množenja *. Naime.4 -4 6] A= 1 5 8 3 -1 2 4 -4 6 izraz » d=det(A) daje d= -112 a na isti način dobijamo determinantu matrice sa kompleksnim elementima. ⏐X⏐.5.

0.2586 + 0.1607 0. na osnovu definicije inverzne matrice.1552 .1764i 0.0597i 0. 41 .3 Za matrice A i B iz primjera 2. izrazi » Ai=inv(A).6 "DIJELJENJE" MATRICA U matričnom računu dijeljenje nije definisano (osim ako je djelilac skalar).0179 0. očigledno da izraz » adjA=inv(A)*det(A) daje adjungovanu matricu matrice A adjA = 2.0000 -8.2241 + 0.0000 24.0371 .2143 0.5.0.0.5536 -0.1.0464 .1034i -0. U MATLAB-u.0000 -62.0000 -26.0650i 0.MATLAB for Windows » det(A*B)-det(A)*det(B) ans = 0 Inverzna matrica X kvadratne nesingularne matrice X.0893 0.0000 22. i koji označava takozvano "dijeljenje" s lijeva.0915 .0714 -0.Bi=inv(B) daju Ai = -0.0000 -10.0955i -0.0663 + 0. dobija se primjenom operatora inv(X).1429 Bi = -0.1897i -0. postoje dva operatora za "dijeljenje" matrica: / \ koji označava takozvano "dijeljenje" s desna.0000 2.0836 .1260 .1964 0.2321 -0.0.0. me|utim.1379i 0.0000 -16.0000 18. Primjer 2.0.2719i 0.0265i U MATLAB-u ne postoji posebni operator za izračunavanje adjungovane matrice ali je.5.

0000i dok za c=2 i d=b'.0.2 Za veličine iz prethodnog primjera. X=BA-1.3571 .5536 .6. Tada izraz: X=A\B odgovara množenju matrice B s lijeva sa A-1.3750i 0.1250i -0. i daju rezultate 42 .6071 -0. dok izraz: X=B/A odgovara množenju matrice B s desna sa A-1.3571 + 0.4464i -0. Primjer 2. Primjer 2. bez računanja inverzne matrice.X=A\B imaju smisla i daju x= 0. Izraz za dijeljenje s desna B/A može se izraziti preko dijeljenja s lijeva kao B/A=(A'\B')'.X=A\d nijesu definisani i rezultiraće porukom o neslaganju dimenzija. naime.0. Dijeljenje s lijeva A\B definisano je samo u slučaju kada je broj vrsta varijabli A i B isti.0714 X= 0.0357 0. matrica A kvadratna i nesingularna.0.1 Za matrice A i B iz prethodnog primjera i b=[1 2 3]'. i ima smisla samo ako je broj kolona varijabli A i B isti.3036 .0893 + 0.3571i -0.5893i 1. pri čemu se primjenom operatora \ i / rezultati dobijaju direktno. izrazi » x=A\c.0536i 0.6.2857i 0. Neka je. izrazi » x=A\b.7679i -0.3571 + 0. X=A-1B. izrazi » y=d/A. tj.Y=B/A imaju smisla.Elementarne operacije sa matricama i poljima brojeva Značenje ovih operatora razmotrićemo.0.5536 + 0. tj.0893 . samo za specijalni slučaj kada se radi o kvadratnim nesingularnim matricama.0. za sada.3393 .

j)/k.7 DIJELJENJE POLJA BROJEVA Za dijeljenje ure|enih skupova brojeva važe drugačija pravila pa se upotrebljavaju i različiti simboli: .1 Unesi polja A i B i na|i njihove količnike.\k znače da je d(i.0.MATLAB for Windows y= 0.4821i 0.3214 + 0.3214 + 0.\B (tj. Tako.\A znače da se elementi skupa D računaju po relaciji d(i. » A=[1 0 -2.7679i -0. izraz C=A.j)=a(i. Tačka u simbolu za dijeljenje označava da se ova operacija vrši na korespondentnim elementima.2500 + 0.4286i -0./A odnosno D=A. Iz ovakvih pravila očigledno slijedi: da bi navedeni izrazi imali smisla A i B moraju imati iste dimenzije. D=B.3393i -1.4464i dok izrazi »y=c/A »b/A nijesu definisani i rezultiraće porukom o neslaganju dimenzija matrica koje se "dijele".9643 + 0.3750 0. izrazi D=A. ali veoma praktičan. dok izrazi D=A.\ za dijeljenje s lijeva.-1 2 0]./k odnosno D=k. 2.0.1250 Y= 0.3036i 0. O operatorima \ i / biće više riječi u osmom poglavlju.j)./B (ili njemu ekvivalentan C=B.3750 -0.j) i b(i. Primjer 2.j)=a(i. gdje ćemo razmotriti njihovu upotrebu pri rješavanju skupa linearnih jednačina u opštem slučaju. Na isti način.1429i -0.8929 .0.7.j) odgovarajući elementi skupova A i B.2143i 0. Jedini. gdje su a(i./A) znače da je d(i.0893i 0.j)=b(i./ za dijeljenje s desna.2500 + 0.2500 .j).\A) znači da su elementi skupa C izračunati po pravilu c(i.j)/a(i. izuzetak od ovog pravila predstavlja slučaj kada je dijeljenik ili djelilac skalar. Napomenimo ovdje da izraz X=A\B predstavlja rješenje za AX=B. i .0357 + 0.0 2 -1] 43 .1071 . dok izraz X=B/A predstavlja rješenje za XA=B. Tako izrazi D=k.B=[-3 0 4.j)=k/a(i.j).j)/b(i.

a u rezultatu se javlja Inf ili NaN.7./A Warning: Divide by zero D= -3 NaN -2 0 1 -Inf Pošto A i B iz primjera sadrže neke elemente jednake nuli. odnosno 44 .0000 0 » D=B.Elementarne operacije sa matricama i poljima brojeva A= 1 0 -2 -1 2 0 B= -3 0 4 0 2 -1 » C=A./a daje B1 = -1. dobijamo poruku o dijeljenju sa nulom./A dobijamo Warning: Divide by zero A1 = 2 Inf -1 -2 1 Inf dok » B1=B.3333 NaN -0./a./B. Primjer 2.0000 0 1./B Warning: Divide by zero C= -0./A i B.2 Za a=2 i polja A i B iz prethodnog primjera.5000 0 2.5000 -Inf 1.5000 Vidimo da je efekat isti kao da smo koristili naredbe: » A1=a*ones(size(A)). Unošenjem » A1=a.0000 -0. izračunati a.

/A gdje prva tačka i dalje označava decimalni zarez a druga operaciju na polju brojeva. tako da izrazi A^p i A^(-p) daju p-ti i (-p)-ti matrični stepen od A./(a*ones(size(B))) Postoji jedna značajna razlika ove verzije MATLAB-a u odnosu na DOS verzije u pogledu dijeljenja skalara poljem brojeva.8 STEPENOVANJE MATRICA Ako je A kvadratna matrica a p pozitivan cio broj./A je korektan i rezultira Warning: Divide by zero ans = 4 Inf -2 -4 2 Inf dok bi u prethodnim verzijama MATLAB-a rezultirao greškom.1 Za proizvoljnu nesingularnu matricu A odrediti A2. za A nesingularnu matricu A-p= (A-1)p Stepenovanje kvadratne matrice vrši se pomoću operatora ^. Naime u MATLAB-u for Windows izraz: » 4. A-2 i provjeriti da li važi: A0=I. Uzrok ovoga je bio taj što je "stari" MATLAB tačku tumačio kao decimalni zarez pa matrične dimenzije nijesu odgovarale. » A=[-1 2 3. Obično se primjenjivao trik da se prethodni izraz zapisivao u obliku 4.MATLAB for Windows » B1=B. Primjer 2.2 -2 1.8.. gdje je I jedinična matrica iste dimenzije kao A.A.. matrični stepen definiše se kao Ap=A⋅A⋅A⋅A⋅. 2.1 4 2] A= -1 2 3 2 -2 1 1 4 2 45 . p puta odnosno..

4. Ap je definisano preko sopstvenih vrijednosti i vektora (za definiciju ovih pojmova vidi osmo poglavlje) kao Ap=V⋅Dp⋅V -1. Primjer 2. a V je matrica sačinjena od odgovarajućih sopstvenih vektora matrice A.2 Za matrice A= 2 -2 3 1 1 1 1 3 -1 B= -2 2 3 2 -2 1 2 4 2 naći matrične stepene A2.3844i 6.1993 + 0.3817i 4. A će tako|e biti kompleksna matrica.4674 + 4.8775 + 5.1993 .8.6667 .5.Elementarne operacije sa matricama i poljima brojeva » B=A^2 B= 8 6 5 -5 12 6 9 2 11 » C=A^0 C= 1 0 0 0 1 0 0 0 1 Ukoliko p nije cio broj.2285i 8.6 A1 = 9.7510 .56. operacija stepenovanja kvadratne matrice A ima različito značenje i vrši se po drugačijem pravilu.3844i 8.4483 + 0.0000i 4.3817i » B1=B^(-1. već proizvoljan realan broj. » A1=A^2.1993 + 0.6 i B-1.2285i 8. Ukoliko A sadrži kompleksne sopstvene vrijednosti. gdje je D dijagonalna matrica koja sadrži sopstvene vrijednosti matrice A na glavnoj dijagonali.56) B1 = 46 .0.0.0000i -0.3218 . Samo stepenovanje D jednostavno se vrši stepenovanjem pojedinih skalarnih elemenata sa glavne dijagonale.0000i 2.

» A1=2^A A1 = 5.3 Za matrice A i B iz prethodnog primjera naći (2)A i (-3. 2.^B gdje su A i B matrice.j)=a(i.9 STEPENOVANJE POLJA BROJEVA Stepenovanje polja brojeva (element po element). u MATLAB-u je označeno sa . dobićemo poruku greške.0000i -0.4833 2.1458 + 1.8939i Izraz AB.1176 + 0.1023 + 0.6)B.0000i 0.0. računa se preko sopstvenih vrijednosti i vektora.0.0000 -0.0.2333 2.2613 + 1. gdje su A i B matrice.6259i 0.0000i -0.0000i 0.0000 27.0176 + 0.6833 3.0736i 0.^A daju C1 = 0.0470 + 0. izraz pA.8498i 0.6)^B B1 = 1. Izraz oblika C=A.0935 + 0.0000i -0.0508i 0.8.0000i 0.0730 .C=B.0000 2. moguć je samo ako su A i B istih dimenzija.1376 + 0. a elementi polja C dobijaju se po relaciji c(i.^B. izrazi » C1=A.0684 + 0.j) Primjer 2.0.2070 + 1.0000 2.9.0825 + 0.0000i -0. gdje je p skalar a A kvadratna matrica. Pošto su iste dimenzije.0000i 0.2500 4.5963i 0.0e+002 * 0.0086 .j)b(i.^.4985i 0.1 Stepenovati. nije korektan i ukoliko pokušamo da stepenujemo matricu sa matricom. Primjer 2.1493 . Računar će javiti grešku i u svim slučajevima kada pokušamo računati matrični stepen a matrica nije kvadratna.0000i Na sličan način.4958i 0.MATLAB for Windows -0.1464 + 0.7667 » B1=(-3.3043 .1482 + 1. element po element.3472i 0.0000 47 .6833 3.5167 3. matrice A i B iz prethodnog primjera.0870 + 0.

^x ans = -0.^p i D=p.^x daje poruku ??? Error using ==> . Specijalni slučajevi generalnog izraza C=AB nastupaju kada je u osnovi ili eksponentu skalar.3333 0.5000 Za vektor x=[1 -2 3].0000 -2.0000 1.^ Matrix dimensions must agree.^A.^y ans = 1.^3 y1 = 0.Elementarne operacije sa matricama i poljima brojeva 1.0000 27.0000 0. gdje je p skalar a A matrica proizvoljne dimenzije.0000 1.0000 1.0000 1.0000 » 3.j)=a(i.9.0000 2.j)=pb(i.0000 27.0000 64. 2.0000 0. Tako izrazi C=A.2 Za x=[-1 -2 2] i y=[0.2500 27.0000 » y1=y.j) Primjer 2.1250 8.0000 81.j)p i d(i.0000 2. izraz » A.0000 Primjetimo da bi posljedni izraz u ranijim verzijama MATLAB-a bio protumačen kao greška (zbog toga što bi tačka bila okarakterisana kao decimalni zarez) dok je ovdje potpuno korektan.0000 C= 4. 48 .0000 1.7321 9.10 ELEMENTARNE MATEMATI^KE FUNKCIJE Osnovni operatori ugra|eni u MATLAB sadrže i skup elementarnih matematičkih funkcija čija je lista data u priloženoj tabeli. u MATLAB-u imaju smisla a elementi C i D računaju se kao c(i.5 2 3] imamo » (-3).1111 9.

MATLAB for Windows Elementarne matematičke funkcije Kompleksne funkcije abs angle conj apsolutna vrijednost ili moduo real fazni stav imag konjugovanje Numeričke funkcije fix floor ceil gcd rat zaokruživanje prema nuli zaokruživanje prema -∞ zaokruživanje prema ∞ najveći zajednički djelilac racionalna aproksimacija round rem sign lcm rats zaokr. ka najbl. cijelom broju ostatak pri dijeljenju funkcija znaka (signum) najmanji zajednički sadržalac racionalni rezultat realni dio imaginarni dio Trigonometrijske funkcije sin asin cos acos tan atan atanh sech csc acsc cot acot sinus arkus sinus kosinus arkus kosinus tangens arkus tangens arkus tangens hiperbolni sekans hiperbolni kosekans arkus kosekans kotangens arkus kotangens sinh asinh cosh acosh tanh atan2 sec asech csch acsch coth acoth hiperbolni sinus arkus sinus hiperbolni kosinus hiperbolni arkus kosinus hiperbolni tangens hiperbolni arkus tangens četiri kvadranta sekans arkus sekans hiperbolni kosekans hiperbolni arkus kosekans hiperbolni cotangens hiperbolni arkus kotangens hiperbolni Eksponencijalne funkcije 49 .

f-ja druge vrste Beselova f-ja komplex. gama i eliptičke funkcije besselj besseli bessel beta betaln c Beselova funkcija prve vrste bessely Beselova funkcija druge vrste betainc nekompletna beta funkcija gamma gama funkcija gammaln logaritam gama funkcije ellipke kompletna eliptička funkcija modifik. beta.Elementarne operacije sa matricama i poljima brojeva exp log10 expint pow2 eksponencijalna funkcija log logaritam sa osnovom 10 sqrt eksponencijalna integralna f-ja log2 stepen dvojke prirodni logaritam kvadratni korijen logaritam sa osnovom 2 Beselove. vektor ili matrica) tretira se kao polje brojeva. Beselova f-ja prve vrste besselk modif. za ⎡ X 11 ⎢X 21 X =⎢ ⎢ M ⎢ ⎣ X m1 imamo X 12 X 22 M L L O X m2 L X 1n ⎤ X 2n ⎥ ⎥ M⎥ ⎥ X mn ⎦ 50 . beta funkcija logaritam beta funkcije gammain nekompletna gama funkcija ellipj Jakobijeva eliptička funkcija Funkcija greške erf erfcx funkcija greške erfc skalirana komplem. tj. možemo sumirati neke osnovne osobine ove grupe operatora: 1) Zadati argument X (koji može biti skalar. argum. Besel. f-ja greške erfinv komplementarna f-ja greške inverzna funkcija greške Ako sa f(X) označimo generalnu matematičku funkciju.

ANGLE.0000 .10.^.0000 ..0000 + 2.0000 6.1 Za dato polje brojeva Z Z= -1.0000 + 4.. Izraz » an=angle(Z) daje an = 2.\. uglove (fazne stavove) elemenata Z izražene u radijanima. Ukoliko želimo dobiti njihove vrijednosti u stepenima.1 FUNKCIJE ABS.0000i 2. 3) Složeni izrazi i nove funkcije grade se pomoću elementarnih funkcija i operacija za manipulaciju sa poljima brojeva +.0000i izraz » az=abs(Z) daje az = 2. real.9273 -1.3. apsolutne vrijednosti elemenata polja Z. angle.6./.2490 tj.*. REAL.1623 5.0000i 1.3246 tj. imag i conj.-.MATLAB for Windows ⎡ f ( X 11 ) ⎢ f (X ) 21 f (X) = ⎢ ⎢ M ⎢ ⎣ f ( X m1 ) f ( X 12 ) L f ( X 22 ) L M O f ( X m2 ) L f ( X 1n ) ⎤ f ( X 2n ) ⎥ ⎥ M ⎥ ⎥ f ( X mn ) ⎦ 2) X može imati realne ili kompleksne elemente. 2.2361 3.0000i 3... Primjer 2.10. IMAG I CONJ Na jednom primjeru ilustrovaćemo značenje i sintaksu naredbi abs. primijenićemo 51 .0344 -1.2490 0.

0000i 2.2 FUNKCIJE ZA ZAOKRU@IVANJE U MATLAB-u postoje četiri operatora za zaokruživanje na cijele brojeve.5651 Izraz » Re=real(Z) daje realni dio polja (ili matrice) Z.0000i 1.5 -1 -0.0000 + 6. tj.10.5651 -71.0000 .5 1 1.4.5 0 0.0000 .0000 + 3.5651 53. Re = -1 1 3 2 a na sličan način: » Im=imag(Z) daje imaginarni dio Im = 2 -3 4 -6 dok se konjugovana matrica (polje) dobija pomoću izraza » Zc=conj(Z) Zc = -1. Operatore i njihovo značenje možemo ilustrovati sljedećim dijagramima: -2 -1.5 2 round(x) zaokruživanje na najbliži cio broj 52 .0000i 3.1301 -71.Elementarne operacije sa matricama i poljima brojeva » an*180/pi što daje ans = 116.0000i 2.2.

5 -1 -0.5 0 0.5 0 0.5 1 1.2400 Primjena pojedinih operatora za zaokruživanje daje: » R=round(A) R= -4 5 3 -1 » F=fix(A) F= -3 5 2 -1 » C=ceil(A) C= -3 6 3 -1 » F1=floor(A) F1 = -4 5 2 -2 53 .5 2 ceil(x) zaokruživanje prema +∞ Primjer 2.6700 -1.10.MATLAB for Windows -2 -1.2300 2.5 -1 -0.5600 5.5 0 0.5 2 floor(x) zaokruživanje prema -∞ -2 -1.5 1 1.5 -1 -0.5 2 fix(x) zaokruživanje prema nuli -2 -1.2 Neka je matrica (ili polje brojeva) data sa A= -3.5 1 1.

LOGARITAMSKA. STEPENA I FUNKCIJA KVADRATNOG KORIJENA Eksponencijalna funkcija definisana je operatorom exp.2832 +12.0000 -18.2832 -18.0000i 19.0000 -19.67 − 124⎦ » exp(A) ans = 0.0284 186.0000 -37.4400 0.0000i » ceil(Z1) ans = -6.7928 14.0000i 19.10.0000 +25.3 Ilustrovaćemo primjenu eksponencijalne funkcije za polja .Elementarne operacije sa matricama i poljima brojeva Kompleksni brojevi se zaokružuju tako što se posebno zaokruže realni i imaginarni djelovi.2894 » exp(Z) 54 .1327i 12.8496 +25.0000i 13.0000 -38. ⎣ ⎦ ⎣ 2. exp(z) računa kompleksnu eksponencijalnu funkcija ez=ex(cos y + isin y). Tako exp(X) daje ex za svaki element polja X.0000i 6.10.0000i 2.6991i pa operatori za zaokruživanje round i ceil daju » round(Z1) ans = -6.5664 -37. Za kompleksni broj z=x+iy.0000 +13.23 ⎤ A=⎢ ⎥ i Z = ⎢ 3 + 4i 2 − 6i ⎥ .3 EKSPONENCIJALNA.5664i 6. Primjer 2. ⎡−1 + 2i 1 − 3i ⎤ ⎡− 356 5.0000 +26. izraz » Z1=Z*2*pi daje Z1 = -6.0000i 7.8496i 18.0000i 13. Ako uzmemo Z iz prethodnog primjera.0000 +13.

7185 0.8444 .8047 + 2.2490i » log10(A) ans = 0.4265 0.5425i 0.2490i 1.3345i -2.10.3644i » log10(Z) ans = 0.10.5514 + 1.6094 + 0. dobijamo: » log(A) ans = 1.6990 + 0.6911 .0646i log(X) daje prirodne logaritme elemenata polja X. pri čemu se kompleksni rezultat dobije za negativne elemente.5000 .0344i 1. Primjer 2. po definiciji z = r [cos(α / 2 + kπ ) + i sin(α / 2 + kπ )].1 .1513 .MATLAB for Windows ans = -0. Ukoliko je z=rejα negativan ili kompleksan broj.1136i » sqrt(Z) 55 .0.8868i 2.1531 + 0.1416i » log(Z) ans = 0.8835i 0.6340 0 + 1.1.2869 1. izraz log(z) računa kompleksni prirodni logaritam.2698 + 3.0.6544 0.0. Primjer 2.3495 + 0. po formuli ln z= ln r+ iα.8010 .5 Naći kvadratni korijen polja A i Z iz prethodnog primjera.1.3836i -13.4027i 0.2008i 7. k = 0.0934 + 1.2151 + 3.4 Za polja A i Z iz prethodnog primjera.5425i Operator sqrt(X) daje kvadratni korijen elemenata matrice X.0948 + 2.3644i 0. Logaritam za osnovu 10 od elemenata polja X definisan je sa operatorom log10(X). » sqrt(A) ans = 0 + 1.1416i 1.9273i 1.1288 -15.9821 0.

0000 + 1.8750 Columns 8 through 14 0.5 i 1 takvi da važi X=f ⋅ 2e. log2 kao funkcija jednog argumenta log2(X) daje logaritam sa osnovom 2 elemenata matrice.e]=log2(1:16) f= Columns 1 through 7 0.4168 0.5000 0.Elementarne operacije sa matricama i poljima brojeva ans = 0. četvrti stepen broja 2 i na nizu brojeva od 1 do 16 demonstrirati ostale mogućnosti naredbi log2 i pow2.2720i 1.5000 e= Columns 1 through 12 1 2 2 3 3 3 3 4 4 4 4 4 Columns 13 through 16 4 4 4 5 » x=pow2(f.6 Naći logaritam sa osnovom 2 matrice A korišćene u prethodnim primjerima.4426 .e) ima suprotan efekat.5000 0. Funkcija x=pow2(f.5625 0.5324i » x=pow2(4) x= 16 » [f.6250 0.9375 0.8750 Columns 15 through 16 0.1.e) x= Columns 1 through 12 56 .8125 0. Za matrice sa realnim argumentima može se zahtjevati da funkcija log2(X) ima dva izlazna argumenta: [f. Primjer 2.7500 0.0000i 2.1. pow2(X).0398i 2.10.e]=log2(X) Vrijednost matrice f su brojevi izme|u 0. » log2(A) ans = 1.3868 1.5000 0.7500 0.4705i Specifične funkcije ove grupe su log2 i pow2.0402 .8319 + 4.6875 0.6250 0.7862 + 1.5000 0.5324i 2.3103 + 4. funkcija jednog argumenta daje matricu čiji su elementi 2x.7500 0.

atan(X). jer vrijednosti Y i X odre|uju kvadrant u kome se pridružena varijabla X+iY nalazi.X) daje tzv. tako da za računanje arkus tangensa nije dovoljno poznavati samo odnos Y/X.10. sec(X) i csc(X) daju trigonometrijske funkcije za argumente definisane u radijanima. cot(X). 57 . π/2] respektivno. π] i [-π/2. Za realne x. za realne vrijednosti x. Vidimo da zahtijeva dva ulazna argumenta. acos(x) i asin(x) daju kompleksne vrijednosti po pravilu cos−1 ( x ) = −i ln( x + i 1 − x 2 ) sin −1 ( x) = −i ln(ix + 1 − x 2 ) Na sličan način. sa abs(x)>1. acos(X). respektivno.4 TRIGONOMETRIJSKE. π]. kao i za kompleksne vrijednosti x. π/2]. I oblast definisanosti i oblast vrijednosti ovih funkcija uključuju kompleksne brojeve. za kompleksne x. dok atan(x) i acot(x) daje vrijednosti u opsegu [-π/2. takve da je abs(x)<1. π/2]. funkcije asin(x) i acos(x) daju vrijednosti u opsegu [0. acot(X). tan(X). četvorokvadrantni arkus tangens. Za kompleksne argumente z=x+iy važe sljedeće definicije: sin z=(eiz-e-iz)/2i tan z=sin z/cos z sec z=1/cos z cos z=(eiz+e-iz)/2 cot z=cos z/sin z csc z=1/sin z Operatori asin(X). Za realne vrijednosti x. Rezultat se dobija u opsegu [-π. operatori atan(x) i acot(x) daje kompleksne vrijednosti po pravilu ⎛ ⎞ tan −1 ( x) = i ln⎜ i + x ⎟ 2 ⎝i − x ⎠ ⎛ ⎞ cot −1 ( x) = i ln⎜ ix + 1⎟ 2 ⎝ ix − 1⎠ Funkcija atan2(Y.MATLAB for Windows 1 2 3 4 5 6 Columns 13 through 16 13 14 15 16 7 8 9 10 11 12 2. HIPERBOLNE I NJIMA INVERZNE FUNKCIJE Operatori sin(X). asec(X) i acsc(X) daju inverzne trigonometrijske funkcije u radijanima. cos(X). π] i [-π/2. Za x≥1 asec(x) i acsc(x) daje vrijednosti u opsegu [0.

8690 0. acosh.0e+002 * -0.3076 .Elementarne operacije sa matricama i poljima brojeva U m-fajlu postoje i hiperbolne funkcije sinh.4543 -0.2702i 1. tanh.1.6340 + 2.8642i 0.0196i 0.3181 .0.9609 -0.2702i 1.3055i 0.0000 .0317 + 0.8394i » asin(Z) ans = -0.sin(A+2*pi).3./tan(A) ans = -0.0541i 0.2489 -0. asech i acsch.2.5426i » tan(Z). Primjer 2.0196i 0.0e+002 * -0.0.0541i 0. coth.real(Z)) ans = 2.8690 0. sech i csch kao i inverzne hiperbolne funkcije asinh.0344 -1. 1.0385 .8394i ans = 1.sin(Z).5694 -1.7 Za polja A i Z iz primjera 2. cosh.3434 ans = -2.4063 -0.9458 ans = 1.0045 .0847 .9994i 0. acoth. ilustrovaćemo pojedine od navedenih elementarnih matematičkih funkcija: » sin(A).0317 + 0.4543 -0.sin(Z+2*pi) ans = 0.9609 -0.8342 + 0.1.0338 + 1.8342 + 0.1.3434 » atan2(imag(Z).9458 ans = 0.0002 + 0.0.0148i 0.4271 + 1.5694 -1.0.4063 -0. cot(A).0021i -0.0385 .2489 -0.10. atanh.10.0000i ans = -2.2490 58 .5286i 0.0847 .

besselj(alfa. bessely(alfa.0944 2.10.1854 -1.9273 -1.1.0944 2.5831 Vidimo da za Z=X+iY operatori angle(Z) i atan2(Y. naziva se Beselova jednačina. sec(A).1225 3. BETA. besseli i besselk služe za izračunavanje Besselovih funkcija.alfa) za svaki element polja X .5674 93.0789 ans = -1.2490 0.0210 -1.0210 -1.X) izračunava Beselovu funkciju prve vrste reda α>0 za svaki element polja X. a njena rješenja poznata su pod imenom Beselove funkcije.2490 » angle(Z) ans = 2.X) izračunava Beselovu funkciju druge vrste reda α<0 (α= . Treba pomenuti da je podržana i funkcija bessel koja. Za izračunavanje gama funcije koriste se operatori gamma(x).0789 » sinh(A) ans = -17./cos(A) ans = -1. Diferencijalna jednačina oblika x y"+ xy'+(x2 -α2)y = 0.2490 » sec(A).0210 -1.3937 7.1225 3.1225 3.0789 ans = -1.0344 -1.a) i gammaln(x). gamminc(x. 2. Operatoru gamma(x) odgovara funkcija γ ( x ) = ∫ t x − 1e − t d t 0 ∞ 59 .MATLAB for Windows 0.5 BESSELOVE.9273 -1. za realne argumente X. predstavlja funkciju besselj a za imaginarne funkciju besseli.0944 2. bessely. GAMA I FUNKCIJE GRE[KE Operatori besselj.X) daju isti rezultat.

0. O funkcijama plot i figure biće više riječi u narednom poglavlju.4 0.1 -0. za koju važi značajna osobina gamma(n+1)=n! za n cijeli broj.y)) Dakle prilikom crtanja se otvaraju dva grafička prozora u kojima se crtaju Besselova funkcija prve i druge vrste. Funkcija greške (operator erf(x)) je data kao 2 erf( x) = 2 ∫ e −t dt π0 x Operator komplemantarne funkcije greške je erfc(x)=1-erf(x) dok se inverzna funkcija greške dobija operatorom y=erfinv(x) (gdje je x=erf(y) i y∈(−∞.2 0.∞) i x∈(-1. y ) = ∫ t x −1 (1 − t ) y −1 dt 0 1 U teoriji vjerovatnoće veoma se često koristi pojam funkcije greške.1 0 -0.25:10.x)) » y=0:.5 -3 0 5 10 15 20 0.3 -0.-1)).Elementarne operacije sa matricama i poljima brojeva poznata kao gama funkcija. » figure(2).a)) po sljedećoj formuli γ 1 ( x . Primjer 2.y).5 0.25:10.8 Nacrtati Beselovu funkciju prve i druge vrste prvog reda za x=0:0. Nekompletna gama funkcija se računa (operator gammainc(x. gammaln(x) predstavlja logaritam gama funkcije.4 0 2 4 6 8 10 -1. » figure(1). a ) = ∫ t a −1e − t dt 0 x Beta funkcija se računa operatorom beta(x. » x=0:.5 -1 60 .bessely(1.10. Beta funkcija je data sljedećim izrazom β( x .besselj(1.plot(x.5 -2 -2.3 0.25:20.plot(y.6 0.y) a njen logaritam operatorom betaln(x.2 -0.5 0 -0.

3 0.2 0.9 Nacrtati nekompletnu gama funkciju za x=0.1:3)) » plot(-3:.2 0.2*ones(size(x)))) 0.11 Nacrtati funkciju greške i komplementarnu funciju greške za argumente x=-3:0.10. » plot(-3:.1 0.MATLAB for Windows a) b) Slika 2.log(beta(3.2: Nekompletna gama funkcija Primjer 2.3708 -0.10 Naći beta funkciju argumenata 3 i 2 i provjeriti funkciju betaln.1:3.1:3.4 0. b) druge vrste Primjer 2.1791 .1 Grafik Beselove funkcije: a) prve vrste.10.1791 61 0 0.02:1 i a=2 za svako x. » beta(3. » plot(x.2:1) x= Columns 1 through 7 -Inf -0.2) ans = 0.25 0.5951 -0.10.2)) ans = -2.0833 » betaln(3.4849 Primjer 2. » x=0.02:.02:0.erfc(-3:0.9062 -0.8 1 Slika 2.1:3.4849 ans = -2.2).6 0.15 0.02:1.gammainc(x.erf(-3:0.1:3)) » x=erfinv(-1:. Demonstrirati inverznu funciju greške za argumenta od -1 do 1.05 0 0 0.

Elementarne operacije sa matricama i poljima brojeva Columns 8 through 11 0.3708 0.5951 0.9062
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -3 -2 -1 0 1 2 3

Inf
2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 -3 -2 -1 0 1 2 3

a)

b)

Slika 2.3. a) Funkcija greške; b) Komplementarna funkcija greške

2.10.6. SPECIFI^NE NUMERI^KE FUNKCIJE
Broj prikazan u pokretnom zarezu se može prikazati u obliku razlomaka. Funkcija rat(x) prikazuje racionalni broj u obliku sume razlomaka. Drugi oblik ove naredbe je [a,b]=rat(x,greska) vraća vrijednost a i b za koju važi:

a / b − x ≤ greska x
Ako se argument greska izostavi, njegova se vrijednost uzima po pravilu opisanom u help-u. Druga naredba za racionalnu aproksimaciju je rats(x,l) koja vraća prosti razlomak koji aproksimira broj x (odnosno svaki element matrice x) a l predstavlja mjeru tačnosti sa kojom će se aproksimacija izvršiti. Ako se l izostavi podrazumjeva se vrijednost l=13, za bolju preciznost treba uzeti veće l.
Primjer 2.10.12 Demonstrirati naredbe rat i rats.

Unošenje

» rat(0.234), rat(pi) rezultira sa 0 + 1/(4 + 1/(4 + 1/(-3 + 1/(11)))) 3 + 1/(7 + 1/(16)) Dakle važi približna relacija:

62

MATLAB for Windows

π = 3+

1 7+ 1 16

Drugi oblik naredbe rat

» [a,b]=rat(pi) a= 355 b= 113 što znači da je π≈355/113. Isti izraz sa zadatom većom tačnošću daje » [a,b]=rat(pi,2^(-52)) a= 245850922 b= 78256779 Unošenje » rats(1.234) rezultira sa ans = 617/500 dok sa povećanom ili smanjenom tačnošću dobijamo » rats(pi,20) ans = 312689/99532 » rats(pi,2) ans = 3 Tako|e su veoma značajne funkcije gcd (najveći zajednički djelilac), lcm (najmanji zajednički sadržalac), rem (ostatak pri dijeljenju) i sign (znak broja). Funkcija gcd(a,b) za cijele brojeve a i b nalazi najmanji zajednički djelilac (broj sa kojim se mogu podijeliti oba broja bez ostatka). Oblik ove naredbe [A,B,C]= gcd(a,b) daje A najmanji zajednički djelilac B i C tako da važi: A=aB+bC. Funkcija lcm(a,b) za cijele brojeve a i b daje broj u kojem se a i b sadrže bez ostatka. 63

Elementarne operacije sa matricama i poljima brojeva
rem(a,b) daje ostatak pri dijeljenju a sa b. Funkcija znaka sign vraća -1 za one elemente matrice koji su negativni, +1 za pozitivne i 0 za nulte elemente matrice. Primjer 2.10.13 Na primjerima demonstrirati opisane funkcije

» G=gcd(17,6) G= 1 » G=gcd(25,35) G= 5 » [G,C,D]=gcd(25,35) G= 5 C= 3 D= -2 » GCD(0,0) ans = 0 Dakle brojevi 17 i 6 su uzajamno prosti. Po definiciji se usvaja da je gcd(0,0)=0. Demonstrirajmo i funkciju lcm: » lcm(23,34), lcm(12,42) ans = 782 ans = 84
Odredimo ostatak pri dijeljenju 23 i 3, 234 i 3, pa demonstrirajmo funkciju sign.

» rem(23,3) ans = 2 » rem(234,3) ans = 0 » sign([-23 0 12]) 64

MATLAB for Windows ans = -1 0 1

2.11. FUNKCIJE ZA MANIPULACIJU MATRICAMA
Već smo se sreli sa nekim operacijama za manipulaciju kolona i vrsta matrica (operator : i transponovanje). Ponekad ovo nije dovoljno ili nije dovoljno efikasno. Stoga postoje sljedeće funkcije za manipulaciju matricama: rot90, flipud i fliplr. Funkcija rot90(A) "rotira" matricu A za 90° u smjeru kazaljke na satu, dok verzija ove funkcije rot90(A,n) "rotira" matricu A za n x 90° u smjeru kazaljke na satu. Dakle, rot90(A,4) vraća polaznu matricu a rot90(A,-1) rotira matricu za 90° u smjeru suprotnom kretanju kazaljke na časovniku. Funkcija flipup(A) mijenja redosljed vrste. Prva vrsta novodobijene matrice je poslednja matrice A, i zatim se re|aju vrste ka prvoj vrsti matrice A. Slična ovoj je funkcija fliplr(A) koja mjenja redosljed kolona matrice.
Primjer 2.11.1 Na matrici A=[11 12 13 14;21 22 23 24;31 32 33 34] demonstrirati opisane naredbe za manipulaciju matricama.

» A=[11 12 13 14;21 22 23 24;31 32 33 34]; » A,rot90(A) Rezultira kao: A= 11 21 31 ans = 14 13 12 11 12 22 32 24 23 22 21 13 23 33 34 33 32 31 14 24 34

Unošenjem

» rot90(A,4) dobijamo početnu matricu ans = 65

Elementarne operacije sa matricama i poljima brojeva 11 12 13 14 21 22 23 24 31 32 33 34 Za rotaciju u smjeru suprotnom kazaljki na satu koristimo » rot90(A,-1) ans = 31 21 11 32 22 12 33 23 13 34 24 14 Demonstrirajmo naredbe flipud i fliplr. Unošenjem » flipud(A),fliplr(A) dobijamo ans = 31 32 33 34 21 22 23 24 11 12 13 14 ans = 14 13 12 11 24 23 22 21 34 33 32 31 Uočimo da dobijene matrice imaju iste dimenzije kao početna matrica. flipud možemo realizovati pomoću operatora: » A(size(A,1):-1:1,:) ans = 31 32 33 34 21 22 23 24 11 12 13 14 Naredbi fliplr odgovara » A(:,size(A,2):-1:1)

66

3. "Upravljanje" grafičkim okruženje. Predstavljanje funkcija dvije promjenljive može biti u obliku "trodimenzionih (mrežastih) crteža".5 3 3. U rudimentarnom obliku.1 Nacrtati y=[1 2 4 8 16 32] Postupak je sljedeći: » y=[1 2 4 8 16 32].1. Grafik vektora vrste Sa slike 3. Ako nezavisno promjenljivu označimo sa x onda je 69 . kolornih mapa i putem izo linija.MATLAB for Windows glava treća GRAFIKA MATLAB posjeduje mogućnost dobrog grafičkog predstavljanja funkcija jedne promjenjive. kao i samim graficima opisano je u šestoj glavi. VEKTORA I FUNKCIJA JEDNE PROMJENJIVE 3. Primjer 3.1 OSNOVNI OBLIK Najjednostavniji oblik predstavljanja vektora vrste ili vektora kolone je korišćenjem naredbe plot.1. U okviru ove glave dat je pregled grafičkih mogućnosti MATLAB-a kao i opcije za grafičko procesiranje. koliko to dozvoljava površina ekrana.5 2 2.1. 2-D obojenih površina. možemo zapaziti da je za nezavisno promjenjivu uzet redni broj elementa u vektoru y. MATLAB je u stanju da predstavi i funkcije tri promjenljive. » plot(y) 16 14 12 10 8 6 4 2 0 1 1. kao i izuzetno jednostavnog i kvalitetnog predstavljanja funkcija dvije promjenjive.1.1 GRAFI^KO PREDSTAVLJANJE MATRICA.5 5 Slika 3.5 4 4.

y) 9 8 7 6 5 4 3 2 1 0 -1 -2 0 2 4 6 8 Slika 3. (5. (4. » x=[-2 -1 0 1 3 4 7 6]. U tom slučaju se crtanje vektora y u zavisnosti od x vrši sa plot(x. Za prelazak u otvoreni grafički prozor pored kombinacije Alt+Tab može poslužiti opcija Window MATLAB-ovog komandnog prozora.2. Provjeriti da se dobija isti grafik ako zadamo y1=y' i nacrtamo plot(y1).2.. Na komandni prompt se moguće vratiti na više načina.y(4))..y(3)).2 Ako su pri nekom mjerenju za vrijednosti nezavisno promjenljive x=[-2 -1 0 1 3 4 7 6] dobijene vrijednosti koje su zapisane odgovarajućim redom u y=[-1 -0.y(2)). a zatim pritiskati Tab dok se ne pojavi natpis MATLAB Command Window..y).. » plot(x. otvara se grafički prozor za koji važe opšta pravila svih Windows prozora. (3..y(1)). U opštem slučaju sa plot(y) se crta grafik spajajući tačke (i.5 0 1 3 6 9 8].Grafika računar uzeo x=[1 2 3 4 5 6] i nacrtao grafik spajajući tačke (1.y(5)) i (6. Vektor y može biti i vektor kolona. nakon toga se otpuste oba tastera. Na isti način možemo se vratiti u grafički prozor.y(i)) za i=1. a od njih pominjemo dva: pritisnuti Alt.N.2. » y=[-1 -0. Nezavisno promjenljiva može biti zadata posebno.3. (2.y(i)) za i=1. Vektori x i y ne 70 . gdje je N dužina vektora y.. Ukoliko broj elemenata u x i y nije isti umjesto grafika dobićemo poruku greške da se dimenzije ne slažu. nacrtati y(x). Primjer 3. Grafik funkcije y(x) Grafik se u ovom slučaju dobija spajanjem tačaka (x(i).5 0 1 3 6 9 8].. gdje je N broj elemenata vektora x i y. Prilikom crtanja grafika.1.N.y(6)).

1.1 3. Primjer 3. Probati plot(x. » plot(x.3 Nacrtati grafik funkcije y=xsin2(πx) u intervalu -4≤x≤4. Ako matrica y ima n kolona onda naredbom plot(y) dobijamo n krivih od kojih svaka predstavlja grafik po jedne kolone matrice y. Grafik funkcije y=xsin2(πx) za -4≤x≤4 sa korakom 0.y) 4 3 2 1 0 -1 -2 -3 -4 -4 -3 -2 -1 0 1 2 3 4 Slika 3.MATLAB for Windows moraju oba biti vektori vrste ili vektori kolone.1.3. Primjer 3.*sin(pi*x).1. već jedan može biti kolona a drugi vrsta. Posebno je značajna primjena operatora plot za crtanje grafika funkcija sa jednom promjenljivom y=f(x). » y=x.1:4. i obrnuto.^2. » x=-4:.4 Nacrtati grafik pojedinih kolona matrice: 71 .2 VI[E FUNKCIJA NA ISTOM CRTE@U Postoji i mogućnost predstavljanja kolona matrice dimenzija (mxn).y').

4. 72 .1)) za sve vrijednosti i.5 Nacrtati grafik pojedinih kolona matrice y u funkciji vrijednosti x.5 4 -2 0. odnosno bojom linije.2 5 -1.Grafika ⎡ 1 −1 3 ⎤ ⎢ 2 3 0 ⎥ ⎢ ⎥ ⎢ 2 5 − 1⎥ y=⎢ ⎥ 4 − 2⎥ ⎢ 5 ⎢−1 3 0 ⎥ ⎢ ⎥ 1 ⎦ ⎢ ⎥ ⎣− 2 2 » y=[1 -1 3.2 3 0. -1 3 0. 5 4 3 2 1 0 -1 -2 1 2 3 4 5 6 Slika 3.1. » plot(y) Vidimo da je svaka kolona predstavljena različitim tipom. Primjer 3. Grafičko predstavljanje matrice po kolonama I u ovom slučaju je moguće predstaviti sve kolone u funkciji nezavisno promjenljive x. Kao nezavisno promjenljiva uzet je redni broj elementa u koloni. Tako je prvi grafik dobijen spajanjem tačaka (i..y(i.-2 2 1].

Primjer 3.y) 73 .^3. » plot(x.y2]'. » y=[1 -1 3.1. Ukoliko jeste.2 5 -1. a ako nije.5 4 − 2⎥ ⎢−1 3 0 ⎥ ⎢ ⎥ 1 ⎦ ⎢ ⎥ ⎣− 2 2 » x=[1 2 4 5 7 8].6 Nacrtati funkcije y=x2 i y=x3 u intervalu -1≤x≤1. 5 4 3 2 1 0 -1 -2 1 2 3 4 5 6 7 8 Slika 3.2 3 0. » y2=x.5 4 -2. » plot(x. onda će nacrtati vrste matrice y u funkciji od x.-2 2 1].02:1. Grafik matrice y(x) Prethodni postupak se može iskoristiti za crtanje više funkcija na istom grafiku. » y=[y1. Ako to nije slučaj. javiće grešku da se dimenzije ne slažu.MATLAB for Windows ⎡ 1⎤ ⎢2⎥ ⎢ ⎥ ⎢4⎥ x=⎢ ⎥ ⎢ 5⎥ ⎢7⎥ ⎢ ⎥ ⎢ ⎥ ⎣8⎦ ⎡ 1 −1 3 ⎤ ⎢ 2 3 0 ⎥ ⎢ ⎥ ⎢ 2 5 − 1⎥ y=⎢ ⎥ ⎢ 0. » x=-1:0.^2. onda će računar provjeriti da možda dužina vrsta u matrici y nije ista kao i dužina vektora x. -1 3 0. » y1=x.5.y) Dužina vektora x i kolona matrice y mora biti ista.

. y=sin(πx) za -1≤x≤0. Crtanje više funkcija na istom grafiku 3.y2.y1. » y1=x1.6 0.1. y=xex za 0≤x≤1.5 0 0.5 2 1.8 -1 -1 -0.4 0.6 -0.1.1:1.5 1 Slika 3.3 VRSTE LINIJA I OZNAKA 74 ..*exp(x2).Grafika 1 0. » y2=x2.7.6.x3. » x1=-1:.yn).1:0.5 0 -0. » plot(x1.y1.5 1 0..y3) 3 2. Primjer 3.5 -1 -1 -0. » y3=sin(pi*x3).4 -0.x2. » x3=-1:.5 0 0.. Dvije funkcije na istom grafiku Više funkcija se može nacrtati na istom grafiku i na sljedeći način: plot(x1.x2.8 0.xn.2 0 -0.7 Nacrtati na istom grafiku funkcije: y=x za -1≤x≤1.2 -0.5 1 Slika 3. » x2=0:.y2.1:1.

drugu linijom crta-tačka-crta.'-.4 OZNA^AVANJE OSA I GRAFIKA 75 . Boje žuta (yellow) magenta (magenta) cijan (cyan) crvena (red) zelena (green) plava (blue) bijela (white) crna (black) y m c r g b w k Tabela 3.MATLAB for Windows U dosadašnjim primjerima odabiranje tipa linija za crtanje grafika je vršeno automatski ili. Tip linije za crtanje pojedinih grafika se može zadavati po želji.'*r') daje zeleni grafik funkcije y1(x1).'o') daje prvu funkciju iscrtanu punom linijom. Tipovi linija i simbola koji se mogu koristiti dati su u tabeli 3. Tipovi linija i simbola za naredbu plot Možemo mijenjati i boju kojom je nacrtana pojedina kriva. kao i označavanje vrijednosti sljedećim znacima: .x3.x2.1.y3.y2. Tako na primjer plot(x1.2. Boje i njihove skraćenice Napomenućemo da ukoliko printer nije u boji onda se linije različitih boja na printeru prenose različitim tipovima linija. crta-tačka-crta. a funkiju y2(x2) označava crvenim zvjezdicama.1. Naredba plot(x1. o. x. isprekidana.2.. Na raspolaganju su puna linija.y1.'-'. po defaultu.y1. Tipovi linija puna linija tačkasta : tačka crta -.1. tačkasta.x2. 3. kako se često kaže. a treću označenu simbolom o.y2. Moguće boje su date u tabeli 3. *. crtkana -Tipovi simbola tačka .'g'.'. slova o ili x plus + zvijezdica * Tabela 3. +.

. text1. . onda to činimo sa: » text([x1 x2 .5.0.y)=(0.[y1 y2 .0..5. » plot(x...'textn']) Postoji mogućnost da se tekst unese na poziciju koja se može specificirati mišem.. . kao proizvoljan broj oznaka na proizvoljnim mjestima. ispisati njegov naziv..[y1 y2 .. na grafiku. Pošto smo na ekranu dobili grafik. (x2. text2. 76 .. xn].2*pi. U našem primjeru sa sinusoidom unesen je tekst dvije periode u poziciji po (x. xn].(xn.sin(x)) Prije svega uočimo da funkcija x=linspace(a.. kooordinatama (x1..y1).b. yn].5). na primjer abc.Grafika Moguće je označiti ose grafika. Naziv grafika ćemo unijeti sa: » title(' Grafik funkcije y=sin(x) ') Ose možemo označiti kucajući: » xlabel(' vrijednost nezavisno promjenljive x ') » ylabel(' vrijednost funkcije ') Proizvoljan tekst.'text2'. poslije pritiska na bilo koju tipku.['text1'. » x=linspace(-2*pi...y2). Ako se n izostavi pretpostavlja se vrijednost n=100. vraćamo se na komandni displej. Nacrtajmo grafik y=sin(x) u intervalu -2π≤x≤2π. yn].. npr.40). Poslije zadavanja naredbe » gtext('Stavi poziciju') na grafiku se pojavi oznaka pokazivača miša kojim kliknemo na poziciju gdje želimo da se nalazi tekst.n) služi za kreiranje vektora koji je isti kao vektor x=a:(b-a)/(n-1):b. » text(0.5.'abc') Koordinate su zadate u jedinicama koje važe za tekući grafik.'dvije periode') Ukoliko na svakom mjestu treba unijeti tekst različite sadržine....textn.yn) se unosi sa: i unijeti na mjestima sa » text([x1 x2 ...

Tako. naziva i unošenje teksta na grafiku Tako|e.MATLAB for Windows 1 0.8 0.5 GRAFICI KOMPLEKSNIH FUNKCIJA Naredbu plot možemo koristiti i u slučaju kompleksnih funkcija ili matrica. Ako je z kompleksna funkcija onda je plot(z) isto što i plot(real(z).sin(t)). » z=exp(i*t). odnosno plot(x. napomenimo da se sličan način za unošenje teksta.pi). (x2+y2=1).8 -1 -8 -6 -4 -2 0 2 4 6 vrijednost nezavisno promjenljive x 8 Stavi poziciju dvije periode Grafik funkcije y=sin(x) Slika 3.6 -0.4 -0.4 0.2 0 -0.imag(z)).8.2 -0.1. 77 . Mreža na grafiku se crta naredbom: » grid 3. Označavanje osa. gdje je x=cos(t) i y=sin(t). na primjer unošenjem: » t=linspace(-pi.6 0. označavanje osa i naslova grafika može primjeniti za sve 2-D i 3-D grafike. » plot(z) dobijamo isto što i sa plot(cos(t).y). odnosno isto što i crtanje imaginarnog dijela u funkciji od realnog.

1.6 0.t. Drugi često zahtijevani oblik je predstavljanje realnog i imaginarnog dijela u funkciji nezavisno promjenljive.5 0 0.6 SKALIRANJE OSA Mogli smo uočiti na prethodnom primjeru da.5 0 0.4 -0. iako je grafik koji smo crtali u analitičkom obliku predstavljao krug.2 -0.abs(z).4 0. nijesmo to dobili i na grafiku. onda treba unijeti axis('square').real(z).5 1 1 0.8 0.6 -0. Ukoliko želimo da zadati krugovi i na grafiku ostanu krugovi. što se dobija sa plot(t.2 0 -0.9.angle(t)).imag(z)).5 1 1 0.Grafika 1 0.4 0. Na prvobitne dimenzije okvira grafika 78 .2 -0. Naredbom axis('equal') podešavamo da je priraštaj po x i y osi isti.4 0.t.8 -1 -1 -0.8 0.2 -0. Grafik kompleksne funkcije z=eit za -π≤t≤π.6 0.4 -0. 3.2 0 -0.6 -0. odnosno da zadati kvadrati budu kvadrati i na crtežu.8 0. što se dobija sa: plot(t. Kada je riječ o kompleksnim funkcijama recimo da se one ipak najčešće predstavljaju na taj način što se odvojeno crtaju amplituda i faza kompleksne funkcije u zavisnosti od nezavisno promjenljive.4 -0.8 -1 -1 -0.2 0 -0.5 1 Slika 3.5 0 0.6 0.6 -0.8 -1 -1 -0.

Naredbom axis dobijamo informaciju o trenutnim dimenzijama grafika.sin(x)) » axis Dakle.1.B. » z=exp(i*t).5 do 1.5 1.9.0000 -1. Naredba [A. dok za ponovni povratak zadajemo axis('on'). Primjer 3. prikazani su grafici koji se dobijaju u ovom slučaju. » plot(x.5]) » plot(x. B ukazuje da li se prikazuju koordinantne ose ('on' ili 'off') i C može imati vrijednosti 'xy' ili 'ij'. sa automatskim skaliranjem osa.5. » axis('square') » plot(z) » axis('normal') » axis('equal') Ose x i y se postavljaju automatski na osnovu maksimalne i minimalne vrijednosti koordinata x i y. kao rezultat naredbe axis u ovom slučaju pored grafika dobija se i tekući opseg: ans = -4. a zatim postaviti da opseg po y-osi bude od -1. Ako želimo sami zadati u kojim okvirima će biti nacrtan grafik onda to činimo naredbom axis([xmin xmax ymin ymax]).pi).5000 1.5000 Ako ne želimo da prikažemo koordinantne ose otkucaćemo axis('off').8 Nacrtati funkciju y=sin(x) za -4≤x≤4.2:4. i biće naknadno objašnjeno. » t=linspace(-pi. 79 .0000 4. Naredbom axis('normal') poništavaju se sva ograničenja vezana za grafik. Na slici 3. A može biti 'auto' (automatsko skaliranje) ili 'manual' (ručno).sin(x)) » axis([-4 4 -1. » x=-4:. a koristi se za prikazivanje funkcija dvije promjenljive ili matrice. Unijeti okviri se zadržavaju i za naredne grafike sve do njihove promjene ili vraćanja na automatsko skaliranje.C]=axis('state') vraća vijednosti koje ukazuju na trenutno skaliranje crteža. Okvir za crtanje grafika će biti postavljen od xmin do xmax i od ymin do ymax.MATLAB for Windows vraćamo se sa axis('normal'). Vraćanje na automatsko skaliranje se vrši sa axis('axis').

y) » zoom on » zoom out 3 2.4 2. » r=a*(1+cos(phi)).8 1. Vratiti se na grafik default veličine.1:20.6 1.2 2 1. » x=0:.2 4 6 8 10 12 Slika 3.7 GRAFICI POLARNIH FUNKCIJA Funkcija ρ=ρ(ϕ) zadata u polarnom koordinantnom sistemu. » y=x. Na cijeli grafik se vraća naredbom zoom out.'g*') 80 .10 Nacrtati kardioidu r=a(1+cos(ϕ)).r) » polar(phi. Treba pomenuti i mogućnost zumiranja grafika (prikazivanja jednog njegovog dijela) pomoću miša.r.Grafika Napomena: Ne zaboravite da se poslije jednog grafika vratite na automatsko skaliranje ili promijenite skaliranje osa. » polar(phi.6 2. » phi=-pi:pi/40:pi.4 1.1. Zumirani grafik i grafik prirodne veličine 3. za i=2 i -π≤ϕ≤π.1.5 1 0. Nacrtati funkciju y=x1/3 za 0≤x≤20 i izvršiti zumiranje.10.9.^(1/3). Ova akcija se obavlja naredbom zoom on i klikom mišem na dio grafika koji želimo prikazati. Primjer 3.5 2 1. » a=2. » plot(x.1.5 0 0 5 10 15 20 2.ρ). Primjer 3. crta se naredbom polar(ϕ.

odnosno vektor u logaritamskoj razmjeri se može generisati naredbom x=logspace(d1. Primjer 3.pi. dok je radijalna mreža neposredno ugra|ena.1.1.^3+x.8 GRAFICI SA LOGARITAMSKOM PODJELOM Grafici funkcija mogu biti predstavljeni i u logaritamskim razmjerama i to logaritamski samo po x-osi.d2./(x.1≤x≤100. 3. Crtanje grafika sa logaritamskom podjelom nezavisno promjenljive se vrši sa semilogx(x. » x=logspace(-1.y).2. Grafik funkcije u polarnom koordinatnom sistemu Na grafiku se može označiti naslov. Moguće je koristiti i x=logspace(d1.MATLAB for Windows Vidimo da i ovdje kao kod naredbe plot važe pravila za iscrtavanje linija i boja. Ako zadamo x=logspace(d1.11 Nacrtati y=1/(x3+x2-x+1) za 0.0.50). Poslednjom naredbom se crta kardioida u zelenoj linija kao niz zvijezdica. Prethodna naredba generiše n vrijednosti vektora x od 10d1 do 10d2. samo po y-osi ili po obije ose. onda se uzima n=50.^2-x+1).n). » semilogx(x. Nezavisno promjenljiva.y.n) što daje n vrijednosti od 10d1 do π.'g-') » grid 81 . » y=1.11. 120 150 904 3 2 1 180 0 30 60 210 240 270 300 330 Slika 3.d2).

x.2 1 0.^2). » y=exp(x.^2+x+1) za 0.^2+x-1).1. razmjera 2 se 3 može 2 napraviti i po y-osi naredbom Primjer 3. » x=0:.1≤ x ≤10.y.y1) » grid 1.12 Nacrtati y=ex +x-1 i y1=ex -2 x za 0≤x≤5. Crtanje u logaritamskoj razmjeri po x-osi 10 10 10 10 10 10 10 10 10 35 30 25 20 15 10 5 0 -5 0 1 2 3 4 5 Slika 3.50). Logaritamska raspodjela po y-osi Konačno.8 0.^3+x.1. » y1=exp(x. » x=logspace(-1. moguća je logaritamska raspodjela i po x-osi i po y-osi.2 0 -1 10 10 0 10 1 10 2 Slika 3.y). Primjer 3. 82 .13. » semilogy(x.13 Nacrtati y=1/(x.1:5.12.4 1.6 0.y). naredbom loglog(x.^3-2*x.4 0.Grafika Logaritamska semilogy(x.1.

6 -0.1. 83 .14.9 STEPENASTI (BAR) GRAFICI Stepenasti ili bar grafici se dobijaju naredbom bar(y) Primjer 3. » loglog(x.6 0.8 0./(x.15.^2+x+1).^3+x. Bar grafik Slična funkciji bar je i funkcija stairs koja crta stepenasti grafik ali bez vertikalnih linija. Logaritamska raspodjela po x i y-osi 3.1.y) » grid 10 0 10 -1 10 -2 10 -3 10 -1 10 -4 10 0 10 1 Slika 3.2 0 -0. » bar(y) 1 0.4 0. » y=sin(x). » x=-pi:pi/20:pi.MATLAB for Windows » y=1.8 -1 0 10 20 30 40 50 Slika 3.2 -0.4 -0.14 Nacrtati y=sin(x) za -π≤x≤π.

10 PRIKAZ DISKRETNIH VELI^INA U praksi se veoma često radi sa diskretnim veličinama. » stairs(x.y) 0.2 0 -0.6 -4 -3 -2 -1 0 1 2 3 4 2 Slika 3.sqrt(x).x) » stem(n. Primjer 3.1:4.4 0.15 Nacrtati stepenasti dijagram funkcije y=e-x /2 sin(x) u granicama -4≤x≤4. To su veličine koje su definisane samo u tačno utvr|enim vrijednostima nezavisno promjenljive.16 Nacrtati diskretnu funkciju x(n)=(3/4)n za n od 1 do 20. » n=1:20.6 0.^2/2).16.Grafika Primjer 3.':') 84 . Za prikaz diskretnih vrijednosti u MATLAB-u se može koristiti i funkcija stem.1.^n.1. » stem(n.4 -0. » x=(3/4).2 -0.1. kao i vrijednost korijena ove funkcije. » y=exp(-x. Stepenasti grafik 3. » x=-4:.*sin(x).

2 0 .[0 exp(-(0:.5 1 1 .9 0.y. Ovom naredbom crta se funkcija y=f(x) i u boji b popunjava prostor izme|u funkcije y=x i date funkcije.4 0.6 0.18.4 0 .1.17 Nacrtati funkciju y=exp(-x2) u granicama 0≤x≤4 i prostor ispod grafika obojiti crvenom bojom.1 0 0 0 . Prikazivanje stem funkcijom diskretnih promjenljivih Pomoću ove funkcije nije moguć istovremeni prikaz više funkcija. Primjer 3. Popunjavanje ispod crteža pomoću naredbe fill 85 . Da bi se popunio prostor izme|u crteža i x ose moramo se poslužiti malim trikom koji će biti prikazan u sljedećem primjeru.9 0 . 1 0 .x1.7 0.3 0.2 0.7 0 .3 0 .17.5 0.^2) 0 0].1 0 0 5 10 15 20 Slika 3.1:4 4 0].6 0 .5 2 2 .6 0. » fill([0 0:. 3. Za popunjavanje se u MATLAB-u koristi funkcija fill(x.3 0.1.previše ulaznih argumenata.'r') Vidimo da je nezavisno promjenljiva definisana od 0 do 4 i da se vraća na nulu i u skladu sa time je definisana vrijednost funkcije.5 0 .y1) vratila poruku o grešci . Tako bi naredba stem(x.5 4 Slika 3.8 0.8 0 .y.11 POPUNJENI CRTE@I Kod prikazivanja funkcija jedne promjenljive ponekad je veoma značajno označiti područnje ispod grafika.5 0.5 3 3 .1:4).4 0.7 0.8 0.2 0.1 0 0 5 10 15 20 0.'b').MATLAB for Windows 0.

Primjer 3. » compass(Z.1.1.19.1. Funkcija compass(z) je identična funkciji compass(real(z). » t=-2*pi:pi/20:2*pi. 86 . Dužina strelice predstavlja njenu amplitudu. Ovoj funkciji je slična funkcija feather(z). » Z=t.Grafika 3.*exp(j*sin(t)). Prikaz faze i ugla kompleksnih veličina pomoću funkcija compass i feather 3. s tim što se sada počeci strelica nalaze u ekvidistantnim tačkama.13 GRAFICI SA POKRETNIM KRAJEM U MATLAB-u je razvijena funkcija comet koja grafik crta postepeno.12 GRAFICI KOMPLEKSNIH VELI^INA U MATLAB-u je razvijeno nekoliko mogućnosti istovremenog grafičkog prikaza amplitude i faze kompleksnih funkcija jedne promjenljive.18 Prikazati kompleksnu funkciju Z=tejsin(t) za vrijednosti argumenta -2π≤t≤2π pomoću funkcija compass i feather. imag(z)). sa posebno označenim krajem.'m-') » feather(Z) 25 2 0 -2 -4 -6 20 15 10 5 0 -5 -10 -15 -20 -6 -4 -2 0 2 4 6 -25 0 10 20 30 40 50 60 70 80 Slika 3.y) vrši iscrtavanje funkcije u funkciji radijusa ϕ. a pravac ukazuje na fazu kompleksne promjenljive. Funkcija compass(z) prikazuje u obliku strelica sa početkom u koordinantnom početku amplitudu i fazu kompleksne funkcije. Funkcija comet(x.

» y=(b-a)*sin(phi)-l*a*sin((b-a)*phi/a). konturnim crtežima. b>a>0.1 Nacrtati spiralu promjenljivog radijusa.y) 8 6 4 2 0 -2 -4 -6 -8 -8 -6 -4 -2 0 2 4 6 8 Slika 3. » x=(b-a)*cos(phi)+l*a*cos((b-a)*phi/a). Grafički prikaz funkcije sa pokretnim krajem 3. y i z vektori istih dužina. a=1 i λ=2. 3. 87 . crta linije z(x.5. » comet(x. » phi=0:pi/40:2*pi.l=2.y) možemo predstaviti na više načina: linijskim crtežima.a=1. Uzeti b=6.y.2.1 TRODIMENZIONALNI LINIJSKI CRTE@ Funkcija plot3(x.2.20.5. I ovdje važe pravila za oblik linija kojim se crta kao kod funkcije plot.MATLAB for Windows Primjer 3. mrežastim dijagramima.z). kao i nekim specijalizovanim grafičkim funkcijama. » t=0:pi/50:10*pi. Primjer 3. osjenčenim površinama. » b=6.19 Nacrtati uopštenu hipocikloidu zadatu u funkciji parametra ϕ na sljedeći način: x=(b-a)cosϕ+λacos((b-a) ϕ/a) i y=(b-a)sinϕ-λasin((b-a)ϕ/a).y) u 3-D prostoru.2 GRAFI^KO PREDSTAVLJANJE FUNKCIJA DVIJE PROMJENLJIVE I MATRICA Funkciju dvije promjenljive z=f(x.1. gdje su x.

Tako|e se nezavisno promjenljive mogu kreirati naredbom meshgrid(x. Sa axis('xy') vrši se vraćanje u grafički mod sa koordinantnim početkom u lijevom donjem uglu (ovo je po defaultu).z) Primjer 3.x) je adekvatna naredbi meshgrid(x).Grafika » plot3(t.2 "TRODIMENZIONI" GRAFICI MRE@ASTIH POVR[INA Elementarna funkcija za predstavljanje mrežom je mesh(z).2.*cos(t). Spirala sa rastućim poluprečnikom Postoje i funkcije fill3 i comet3 koje su adekvatne odgovarajućim funkcijama jedna promjenljive. Naredba meshgrid(x. Nezavisno promjenljive se generišu naredbom: meshdom(xmin:korakx:xmax. Opšti oblik neredbe mesh(x.y. naredba axis ima sada tri para argumenata koji predstavljaju granice grafika po sve tri ose.z.*sin(t). xlabel. a.z) je adekvatna naredba mesh(x.21. dodata je i funkcija zlabel. a sa korak korak odabiranja. razumljivo. koja je adekvatna naredbi meshdom kada je redosljed elemenata u vektoru y obrnut onom iz funkcije meshgrid.t. text.2 Nacrtati funkciju z=sin(x2+y2)/(x2+y2) za -π<x.z.c) crta grafik sa koordinatama vektora x i y funkciju z u bojama c. I ovdje postoje funkcije title. ylabel. kod funkcija dvije promjenljive ništa se značajnije ne mijenja u odnosu na funkcije jedna promjenljive. 3.y).y.ymax:koraky:ymax) gdje su sa min i max označene gornje i donje granične vrijednosti nezavisno promjenljivih.t) 40 30 20 10 0 40 20 0 -20 -40 -40 -20 0 20 40 Slika 3. [to se označavanja grafika tiče. gtext i grid. [to se tiče skaliranja osa.y. Ovdje postoji mogućnost da se sa axis('ij') pre|e u mod crtanja gdje je koordinantni početak u gornjem lijevom uglu.y<π.2. 88 . Naredbi mesh(x.

Mrežasti crtež funkcije dvije promjenljive a) mesh(z) b) mesh(z.22.^2+eps). Crta mrežastu površ sa linijama koje su paralelne z-osi. » z=sin(x.5 30 20 10 0 0 10 30 20 1 0 -1 0 5 10 15 20 25 0 5 10 15 25 20 Slika 3. » z=x.[40. » [x. » mesh(z) Prilikom definisanja promjenljive z dodata je vrijednost veoma male veličine eps da bi se izbjegla pojava nedefinisanog izraza za x=0 i y=0. Opcija view(2) daje dvodimenzionalni prikaz az=0o i el=90o dok se sa view(3) vraćamo na default vrijednosti az=-37.80]) Funkcija meshz je veoma slična funkciji mesh. tako mesh(z.3 Napisati naredbe kojima se iscrtava hiperbolički paraboloid (sedlasta površ) z=x2-y2 u granicama od -2 do 2 i po x-osi i po y-osi.-pi:pi/10:pi).^2+y.y) sa azimutom (horizontalnom rotacijom) az stepeni i elevacijom (vertikalnom rotacijom) el stepeni. Trenutnu matricu transformacije dimenzija dobijamo sa T=view. » meshz(z) 89 .y]=meshdom(-pi:pi/10:pi.[az el]) daje grafički prikaz funkcije z(x. oblika sin(0)/0.MATLAB for Windows » [x.el) ili view([az. Primjer 3.^2+eps). ova naredba sa tri argumenta daje pogled u pravouglim koordinatama.5o i el=30o.2:2). a trenutni azimut i elevaciju dobijamo sa [az.^2-y.y]=meshdom(-2:.-2:.2.^2+y. 1 0.5 0 -0. Alternativno.el]=view.el]).2:2.^2./(x.5o i el=30o. Ista ova operacija se može obavljati sa naredbom view(az. Komanda mesh ima i alternativne oblike. Ukoliko ne zadamo ove vrijednosti (kao što to nijesmo učinili u prethodnom primjeru) automatski se uzima az=-37.

4 Nacrtati funkciju z=xyexp(-x2) pomoću funkcije waterfall. » waterfall(z) » waterfall(z). Primjer 3.2. Ako se c izostavi podrazumjeva se c=z.view([20 75]) Druga varijanta prikazuje funkciju waterfall pod odgovarajućim azimutom i elevacijom.2.3 GRAFICI OBOJENIH POVR[INA Za crtanje obojenih površina koriste se funkcije surf. » z=x. ovdje ne funkciioniše waterfall(z. » surf(z) 90 .hiperbolički paraboloid Crtanje mrežaste površi može da se obavlja i pomoću funkcije waterfall koja iscrtava mrežu samo po jednoj koordinati. 3. Ostala su pravila kao kod funkcije mesh.z.*y.2.c) crta matricu z u funkciji x i y u bojama definisanim sa c.*exp(-x.^2). Sedlasta površ .y.2.Grafika 4 2 0 -2 -4 20 15 10 5 0 0 5 10 15 20 Slika 3. [20 75]). Funkcija surf(z) ima isti oblik kao mesh. Prmjer 3. surfl i surfc.2.23. Najvažnija funkcija ovog oblika je surf čiji je opšti oblik surf(x.5 Nacrtati sombrero obojenu površinu iz primjera 3.

y]=meshdom(-pi:pi/10:pi.n.2.24.s). » contour([-pi:pi/10:pi].4 KONTURNI GRAFICI Predstavljanje funkcija dvije promjenjive konturnim (izo) linijama se vrši naredbom contour(z).5 30 20 10 0 0 30 20 10 Slika 3.y. » [x.2. » z=x.z./(x.^2+y.5 0 -0. Primjer 3.'r-') 91 .^2+eps).^2+eps). gdje je n broj izo ravni.y ≤π. Surf površina Funkcija surfl adekvatna je funkciji surf. Kod funkcije contour(x.*y. pri čemu se može podešavati položaj izvora svijetlosti.[-pi:pi/10:pi].6 Nacrtati konturni dijagram funkcije z=xysin(x2+y2)/(x2+y2) za -π≤x. 3. » contour(z) Broj ravni presjeka se može proizvoljno mijenjati naredbom contour(z. vektori x i y su nezavisno promjenljive.2.*sin(x. parametri osvjetljavanja i difuzije okoline. a s je string koji definiše tip linije kojim se crta po istim pravilima kojima se crtaju kod funkcije plot.^2+y.n).MATLAB for Windows 1 0.z.-pi:pi/10:pi).

Tip linija za crtanje strelica možemo mijenjati (kao i prilikom primjene naredbe plot) sa quiver(x. prikazujemo amplitudu i pravac svakog elementa matrice z koristeći strelice. Da bi ilustrovali primjenu naredbe quiver objasnićemo još jednu naredbu.1. naredbom contour(z. naredba je: » contour(z. naredba quiver(x..07 -0.. Naredbom: [px. Tako.. na primjer.[-pi:pi/10:pi]..[z1 z2 z3.[0. Ukoliko zadamo dvije realne ulazne matrice x i y. Dužina strelice je proporcionalna amplitudi elementa. gradient.zn]) crtamo konture kroz zadate vrijednosti zi za i=1. Konturni crtež funkcije dvije promjenljive a) contour(z) b) contour([-pi:pi/10:pi].'r-') Konturne linije mogu biti nacrtane kroz tačno odre|ene vrijednosti funkcije z. z=0. Vrlo interesantna kombinacija se može napraviti jednovremenim korišćenjem naredbi contour i quiver. Naredbom quiver(z).35 0.5.Grafika 20 18 16 14 12 10 8 6 4 2 5 10 15 20 -2 -3 1 0 -1 3 2 -3 -2 -1 0 1 2 3 Slika 3.n.y.py]=gradient(z) numerički dobijamo parcijalne izvode matrice z: px=dz/dx i py=dz/dy..27 i z=-0. gdje je z kompleksna matrica.. 92 .25. ako želimo povući konturne linije kroz z=0.2.'tip linije').2.y) daje grafik kao da smo zadali quiver(x+i*y).1]) U opštem slučaju.z.

Automatski se uzima dx=dy=1.-zy). treba koristiti [px. » z=sin(pi*x). prikazuju i konturni crtež u ravni x0y.-1:. Primjer 3.py]=gradient(z.2:2). Ekvipotencijalne linije i linije polja Naredbe hold on i hold off će biti objašnjene kasnije.y]=meshdom(-2:. » z=x.quiver(-zx.2.6 Nacrtati ekvipotencijalne linije i linije polja ako je potencijal zadat sa z=sin(px)sin(py) za -1≤x. » meshc(z) » surfc(z) 93 .7 Prikazati funkciju z=xexp(-x2-y2) u granicama -2≤x. (E=-grad(z)).y]=meshdom(-1:.-2:.hold on. Ove dvije funkcije. » [x.26.MATLAB for Windows Ukoliko želimo zadati stvarna rastojanja odbiraka dx i dy u matrici z u pravcu x i y ose. Primjer 3.dy).hold off 25 20 15 10 5 5 10 15 20 25 Slika 3.2.dx. U sklopu diskusije o prikazima mrežastih površina i obojenih površi vidjeli smo da postoje funkcije meshc i surfc. » contour(z).^2-y.*exp(-x.y≤2 istovremenim prikazom mrežaste površine i konturnog crteža.2:2.08:1. » [zx.08:1). » [x.*sin(pi*y).y≤1. pored odgovarajućih grafika.^2).zy]=gradient(z). odnosno istovremenim prikazom obojene površine i konturnog crteža.

Veoma često je potrebno označiti brojne vrijednosti koje predstavljaju pojedine izo linije. 2-D grafik meshc i surfc Funkcija contour kao i bilo koja grafička komanda ima svoj rezultat.2:2.^2+y. Primjer 3. To se postiže naredbom clabel. » z=x. Konturni crtež je nacrtan a u promjenljivoj A čuvaju se podaci o linijama koje čine crtež.5 0 0 -0. 94 .Grafika 0.2.8 Pomoću izolinija prikazati funkciju z=x/(x2+y2+1) za -2≤x. » A=contour(z). Kada se želi završiti unos dovoljno je kliknuti na dio grafičkog prozora van konturnog dijagrama.manuelno upisivanje pojedinih labela pritiskom miša na izoliniju.'manual') vrši se ručno .2:2).5 0. Prikazati i labele izolinija.^2+1).5 30 20 10 0 0 10 30 20 -0.-2:. Sa » clabel(A) vrši se upisivanje vrijednosti labela.y≤2./(x.y]=meshdom(-2:. Naredbom » clabel(A. U slučaju naredbe contour izlaz je niz brojeva koji predstavljaju pojedine izolinije konturnog grafika. » [x.27.5 30 20 10 0 0 10 30 20 Slika 3.

95 .4 8 6 4 2 5 10 15 20 -0.2 0 -0.^2-y.40) 3. Konturni crtež sa unijetim labelama izolinija Postoji još jedna funkcija za prikaz konturnih crteža contour3 kojom se prikazuje konturni crtež u 3-D.3 -0. » contour3(z) » contour3(z.4 0. Konturni crteži u 3-D: a) contour3(z).4 Slika 3.2.z) i pcolor(x.6 0.4 0.8 0. Primjer 3.1 0.29.28.6 0.40) 1 0.3 0.y. b) contour3(z. x i y predstavljaju nezavisno promjenljive a z funkcije dvije promjenljive x i y.5 PRIKAZIVANJE FUNKCIJE POMO]U KOLORNIH MAPA Grafici funkcije dvije promjenljive mogu se prikazati i pomoću različitih boja.8 0.2 0 30 20 10 0 0 30 20 10 Slika 3.2.z) (alternativno ove funkcije mogu biti imagesc(z) i pcolor(z)). » z=exp(-x.9 Prikazati funkciju z=exp(-x2-y2) kao konturni crtež u tri dimenzije.2 0 20 15 10 5 0 0 5 10 15 20 1 0. Za to služe funkcije imagesc(x.y.^2).2 0.MATLAB for Windows 20 18 16 14 12 10 -0.1 0.

*Y. » y=-2:.^2).y≤2.5 0 0.5 2 -2 -1.10 Nacrtati pomoću funkcije imagesc funkciju dvije promjenljive z=xysin(x2+y2) gdje su -2≤x.5 1 1.Y]=meshdom(x.y.^2+Y.*sin(X.z) -2 -1.2. » z=X.5 1 1.5 -1 -0.5 0 0.y. » imagesc(x. » [X.z) Slika 3. pcolor prikaz funkcije Funkcijom shading bliže specificiramo način primjene naredbe pcolor. Naredbom shading interp dobijamo kolornu mapu bez mreže u kojoj se svaka tačka interpolira. dok shading flat prikazuje crtež bez mreže sa istom bojom unutar 96 .2:2. imagesc prikaz funkcije Istu funkciju možemo prikazati i pomoću funkcije pcolor: » pcolor(x.5 2 Slika 3.Grafika Primjer 3.31.30. » x=-2:.2:2.5 -1 -0.y).

n) odre|uje koordinate (ali ne crta) cilindar sa poluprečnikom R i sa koeficijentom rasta K u n tačaka.y.6 0.y.z]=cylinder([R K].y. » surf(x. a) shading interp. » cylinder([2 1]) » cylinder([1 1]) » cylinder([1 5]) » [x.5 2 Slika 3. Prikaz cilindra: a) R>K.n) vrši i crtanje cilindra. -2 -1.30.6 0.33.2 0 2 0 1 2 1 0 -1 -2 -2 -1 -1 0 1 2 Slika 3.8 0.32.5 -1 -0. Funkcija cylinder([R K].30). dobijamo sa shading faceted.4 0.2. K=1 i n=20. b)shading flat 3.5 0 0. Primjer 3.5 -1 -0. sa mrežom i istom bojom unutar kvadrata.8 0.11 Demonstrirati na nekoliko primjera korišćenje funkcije cylinder.4 0. Podrazumijevane vrijednosti su su R=1.5 0 0. Default podešavanje sa slike 3.z) 1 0.5 1 1.5 1 1. Funkcija [x. a) R<K 97 .MATLAB for Windows kvadrata.z]=cylinder([1 1].2 0 2 1 0 -1 -2 -2 1 0.5 2 -2 -1.6 PRIKAZIVANJE CILINDARA I SFERA Za prikazivanje cilindara služi funkcija cylinder.2.

svakoj vrijednosti funkcije kao kod kolornih mapa odgovara odre|ena boja. ny i nz dužine vektora vx.z]=sphere(n) odre|uje vrijednosti koordinata sfere x. Dimenzije ovih matrica su (nx* ny) x nz (gdje su nx.3.2:1.[1 5]. » slice(v.34.1 Prikazati funkciju tri promjenljive v=xexp(-x2.z2) u granicama -1≤x. Za kreiranje trodimenzionalne oblasti nezavisno promjenljivih služi naredba meshgrid dok za crtanje funkcije služi naredba slice.z≤1.3 GRAFI^KI PRIKAZ FUNKCIJA TRI PROMJENLJIVE Očigledno je na ekranu teško prikazati funkciju tri promjenljive a ponekad je teško i zamisliti neki pogodan način prikazivanja funkcije tri promjenljive.^2-z. 3.^2). Vrijednost n=20 se podrazumjeva.34. naredbom [x. prikazani su kolorni dijagrami.z]=meshgrid(-1:.2:1).2:1.*exp(-x.y. 11 i [1 5]. Recimo.-1:. MATLAB se služi sljedećom logikom: domen nezavisno promjenljivih predstavlja kvadar. » v=x. Prikaz funkcije tri promjenljive Na slici 3.11) Slika 3.vy.[3 6 11].vz) dobijamo matrice x. 98 .Grafika Analogna funkcija postoji za prikazivanje sfera. » [x. vy i vz).-1:. Posljednji parametar predstavlja broj redova u volumenu v jer kao što znamo MATLAB posjeduje mogućnost prikazivanja samo matrica dok se 3-D polje prikazuje u obliku matrice.y. po x. Kroz ravni normalne na ose u odbircima [3 6 11]. ne mogu se prikazati sve vrijednosti već samo presjeci sa nekim ravnima. Funkcija sphere(n) će izvršiti i crtanje sfere.11.y2. y i z osi respektivno.y. Primjer 3.^2-y. y i z ali ne crta sferu. Oblik naredbe [x.y. y i z.z]=meshgrid(vx. vidimo slice prikaz funkcije tri promjenljive.

contour(z) 1 0.y1) » x2=0:. To se čini naredbom subplot(mnp) ili subplot(m.plot(x2.5 0 -0.1:1. » y1=x1. Moguće je izvršiti podjelu ekrana na nxm djelova i crtati grafike u svakom od njih posebno.n.05:1. Moguće vrijednosti za m i n su od 1 do 9.y) dijelimo ekran na 2x2 i crtamo grafik u prvom dijelu.1 Nacrtati na četiri odvojena grafika funkcije: y=x za -1≤x≤1.4.5 -1 -1 0 1 1 0 0 20 15 10 20 40 5 5 10 15 20 0.y≤1 konturno i mrežom. a sa subplot(212). » z=sin(2*pi*(x3.plot(x.y) dijelimo ekran na 2x1 i crtamo grafik u drugom dijelu.*exp(x2).y3]=meshdom(-1:.p).-1:.plot(x. Tako sa subplot(221).4 PROMJENA DIMENZIJA GRAFIKA (VI[E GRAFIKA U GRAFI^KOM PROZORU) U dosadašnjim primjerima smo dobijali grafik nacrtan preko čitavog ekrana čije su dimenzije bile automatski postavljene.mesh(z) » subplot(224). » y2=x2. Crtanje više grafika na jednom ekranu 99 .MATLAB for Windows 3.^2+y3.1:1). » subplot(223).1:1. » subplot(221).35.5 1 3 2 1 0 -1 40 0 0 20 Slika 3. koja dijeli ekran na m djelova po horizontali i n djelova po vertikali.plot(x1. Primjer 3.^2)). » subplot(222). a grafik se crta u p-tom dijelu ekrana. y=ex za 0≤x≤1 i z=sin(2π(x2+y2)) za -1≤x.y2) » [x3. » x1=-1:.

^2-2*x1+1. Na čitav ekran se vraćamo sa subplot(111). O ovim osobinama biće više riječi u šestom poglavlju. zadata naredbom subplot.45 0.1 0.^2).35]) » contour(z2) 20 15 10 5 4 3 2 1 0 -1 0 1 5 10 1 0.3 0. » x1=-1:.35] konturni dijagam.y1) » [x2.4]. Naredbom axes('position'.3 0.4 .36.1:1) » z2=x2.45 0. prikazati funkciju z=xysin(2πx2) u granicama [0.1 .1 0. Tako bi poslije zadnjeg primjera ekran ostao podijeljen na četiri dijela i svi grafici bi bili crtani na četvrtini ekrana.55 0.45 . » axes('position'. ostaje i za naredne grafike.8] mrežastim dijagramom i u granicama [0.1)) a sx i sy su veličine grafika u relativnom iznosu. dimenzije odštampanog grafika mogu dodatno mijenjati.55 0.*sin(2*pi*x2.1:1.1 0. » axes('position'. Na drugi način naredbom axes možemo dobiti grafike koji su nejednake veličine.5 15 0 20 -0.1:1.4.1 0.1 0. Napomenimo da se zadavanjem orijentacije za štampanje grafika (o čemu će biti riječi).1 0. » y1=x1.45 .2 Nacrtati tri odvojena grafika: y=x2-2x+1 za -1≤x≤1 od [0. Više grafika nejednake veličine na ekranu 100 .5 -1 30 20 10 0 0 10 20 30 Slika 3.8]) » mesh(z2) » axes('position'.-1:0.[0.[px py sx sy]) definišemo poziciju grafika od tačke px po x-osi i py po y-osi (relativne koordinate-donji lijevi ugao ekrana je koordinata (0. Primjer 3.Grafika Treba napomenuti da podjela ekrana.[. Treba reći da funkcija axes definiše ose grafika a da je position jedna od osobina osa.1 0.*y2. Zadavanje nove podjele se definiše zadavanjem novih parametara u subplot.4 0.y2]=meshdom(-1:0.0) gornji desni ugao je (1.[0. Na ovaj način naredbom subplot dobijamo grafike jednake veličine.4]) » plot(x1.

» figure(1) » x=-1:.1:1.) gdje d definiše grafički prozor a Osobina definiše traženu osobinu. definišimo treći grafički prozor: » a=figure(3)..MATLAB for Windows 3. » plot(x. osobine prvog grafičkog prozora dobijamo sa: » get(1) Grafički prozor posjeduje vrijednost koja zapravo predstavlja vrijednost pomoću koje se može upravljati grafikom.'Ime prozora'). 'Osobina2'. Tako informaciju o veličini u kojoj se mjere grafici na ekranu dobijamo sa: » get(1.'Units') 101 ..5 RAD SA VI[E OTVORENIH GRAFI^KIH PROZORA U programskom paketu MATLAB postoji mogućnost rada sa više istovremeno otvorenih grafičkih prozrora. 'Osobina3'.'Osobina1'.1 U prvom grafičkom prozoru prikazati funkciju y=x u granicama -1≤x≤1 a u drugom prikazati funkciju y=x2 u istim granicama kao na prethodnom grafiku. i to na jedan od sljedeća dva načina: rednim brojem otvorenog prozora figure(rdbroj) ili imenom figure('Name'.x.5..^2) Grafički prozor u MATLAB-u posjeduje niz osobina čije se vrijednosti mogu dobiti naredbom get. na primjer.x) » figure(2) » plot(x. a osobine ovog grafičkog prozora se mogu dobiti sa get(3) ili sa » get(a) Prozor koji je trenutno aktivan može se dobiti sa gcf » gcf ans = 3 Vrijednost pojedine osobine može se saznati na sljedeći način get(d. Grafički prozor se definiše naredbom figure. Na primjer. Primjer 3.

pcolor itd. Jednu funkciju ove vrste smo već upoznali (shading). Važna funkcija za kontrolu definisanja boja grafika je funkcija colormap(paleta). paleta hsv Opis palete Nijanse zasićenosti 102 . Ovakava prozor se može zatvoriti na sljedeći način » close('Dodatak') dok se svi grafički prozori zatvaraju naredbom » close all Osobinama grafičkog prozora kao i o detaljima upravljanjem grafičkog prozora biće posvećena šesta glava. upravljanje bojama odnosi se prije svega na one grafičke komande kod kojih je boja važan činilac kakve su mesh. Zbog važnosti ovih mogućnosti veliki dio upravljanja bojama može se obavljati kroz zasebne funkcije koje ćemo ovdje opisati. Predefinisane vrijednosti za promjenljivu paleta su date u sljedećoj tabeli. Veoma važan dio tih mogućnosti odnosi se na upravljanje bojama. Naravno. grafički prozori se mogu definisati i imenom na jedan od sljedeća dva načina: » figure('Name'. Name predstavlja osobinu prozora .6 NAREDBE ZA ELEMENTARNU KONTROLU BOJA MATLAB posjeduje niz naredbi i mogućnosti za kontrolu grafika i ostalih elemenata grafičkog okruženja.njegovo ime koje stoji u naslovnoj liniji prozora.Grafika ans = pixels Znači tekući grafik se mjeri u pikselima (ekranskim tačkicama). 3. Kao što smo rekli. Ovom funkcijom se definiše kojim će skupom boja biti prikazani grafici na ekranu. kao što vidimo.'Dodatak') gdje. surf. Tako naredba: » close(3) briše treći grafički prozor. Prozor se iz komandne linije može zatvoriti naredbom close.

3.MATLAB for Windows gray hot cool bone coppe pink prism jet flag Linearna siva boja Crno-crveno-žuto-bijela kombinacija Osjenčena cijan i magenta kombinacija Nijanse sivog sa dodatcima plave boje Linearna bakarna boja Pastelno osjenčena ljubičasta mapa Prizmatična kolorna mapa Varijanta hsv Naizmjenično plavo-crvena-bijela Tabela 3.. gray.2:2..6. Tako naredba » colormap([0 1 0]) 103 . » z=x. Pregled raspoloživih kolornih mapa Primjer 3. flag matrice dimenzija 64x3. Pored predefinisanih matrica.. drugi zeleno.^2+eps).y]=meshdom(-2:. iz tabele 3.3 argument funkcije colormap može predstavljati bilo koja matrica sa tri kolone. treći plavo (ovakav model se naziva rgb).. Svaka vrsta matrica predstavlja jednu boju.*sin(x.^2+eps). » mesh(z) » colormap(hsv) » colormap(gray) » colormap(hot) » colormap(cool) » colormap(bone) » colormap(copper) » colormap(pink) » colormap(prism) » colormap(jet) » colormap(flag) Treba napomenuti da su hsv. » [x.1 Na mrežastom dijagramu funkcije z=xsin(x2+y2)/(x2+y2) demonstrirati naredbu colormap.^2+y.2:2).-2:./(x. Boje su predstavljene sa tri broja od 0 do 1: prvi broj predstavlja crveno.^2+y.

kolornu mapu. odnosno svijetliju. Na automatsko skaliranje se prelazi naredbom caxis('auto') 3. Informaciju o rasponu boja koji je trenutno aktivan može se dobiti naredbom » caxis ans = -0.8415 i 0.8415 Vidimo da su boje skalirane izme|u vrijednosti -0. Dvije osnovne varijante ove funkcije su: colorbar('horiz') i colorbar('vert') kojima se iscrtava legenda boja horizontalno ili vertikalno. često se ne zna kojoj boji odgovara koja veličina funkcije. Iz tog razloga koristi se fukcija colorbar koja uz grafik. i pored svoje "ljepote". za 1≥sv>0. Problem sa naredbom colormap je to što se novim pozivom naredbe » colormap(flag) ne dobija kolorni crtež u 64 već je i dalje u jednoj boji.7 GRAFI^KE KOMANDE Iz grafičkog prozora u komandni prozor se vraćamo pritiskom na bilo koje dugme. Manuelno skaliranje se obavlja istom naredbom u obliku caxis([0 0.8415. za -1≤sv<0. Kolorni grafici.7. Sa komandnog ekrana se prikazuje trenutno aktivni grafički prozor sa 104 . Vraćanje na matrice dimenzija 64x3 se može uraditi eksplicitnim definisanjem dimenzija matrice » colormap(ones(64. često su nejasni.8415 0. iscrtava pravougaonik sa označenim vrijednostima pojedinih boja.3)) » colormap(flag) Važeću kolornu mapu možemo dobiti naredbom T=colormap.Grafika daje crtež u jednoj boji . Naredbom brighten(sv) dobijamo tamniju.u ovom slučaju to je zelena. a slično važi i za gornju granicu 0.7]) Ovom naredbom vrijednosti funkcije koje su manje od 0 predstavljaju se bojom koja odgovara vrijednosti 0. Za funkcije koje dio svog grafičkog prikaza obavljaju u formi različitih boja može se podešavati raspon boja koje su ove kolorne mape u stanju da prikažu. u formi legende. Naime.

3.4. onda treba unijeti hold on. Mogući prekidači i formati u naredbi meta Ipak.MATLAB for Windows figure(gcf). ovdje joj je namjena nešto drugačija nego u prethodnim DOS verzijama MATLAB-a. postavljaju osobine grafika na početnu vrijednost. Prekidač -dps -dpsc -dps2 -dpsc2 Format Postskript format (default) Kolor postskript format Postskript format nivoa 2 Kolor postskript format nivoa 2 Tabela 3. Brisanje grafika unutar trenutnih osa postiže se naredbom cla a naredbom cla reset. Ako se zada naredba clf reset i clg reset. Sadržaj grafičkog prozora može se izbrisati potpuno ravnopravno naredbama clf i clg. Za starije korisnike MATLAB-a potpuno je ravnopravna naredba shg (skraćeno od show graph). Me|utim. se pored brisanja grafika. Naredba meta fajl snima tgekući grafik u postskript formatu pod imenom fajl. pored brisanja grafika do|e i do resetovanja njegovih osobina (osobine grafika se postavljaju na početnu vrijednost). Funkcija meta čuva grafik u postskript formatu. Ukoliko želimo nove grafike crtati preko prethodnih. za memorisanje grafika i kompletnu grafičku obradu obično se koristi naredba print.ps. a da oni ne budu izbrisani. Naredba print fajl potpuno je adekvatna naredbi meta. Ova naredba se poništava sa hold off.1 [TAMPANJE I MEMORISANJE GRAFIKA I u ovoj verziji MATLAB-a postoji naredba meta za memorisanje grafika. Naredba ima i oblik meta fajl -prekidač Gdje su mogući prekidači dati u tabeli 3. a nulu ako je isključen.4.7. Funkcija ishold vraća jedinicu ako je hold on uključen. Opšti oblik naredbe print je: print [fajl] [-sredstvo] [-opcija] 105 .

a drugom naredbom će postojećem grafiku biti dodat novi (dakle stari fajl neće biti prebrisan kao po defaultu). depsc2 kao i veliki broj štampača koji su podržani (HP Laser Jet. Opcije su snimanje fajla u formatu HP plotera hgl . » print -dmeta » print -dbitmap Sa gornje dvije naredbe se u Clipboard (privremenu memoriju) smješta sadržaj ekrana.1 Demonstrirati neke od opcija naredbe print. pored onih kod naredbe meta. tekst procesori. Sredstva. Cannon. deps2. dok naredbom » print fajl1 -dhpgl kreiramo fajl1. kao i fajlovi tipa gif ili pcx formata.7.Grafika Naredbom print snima se u fajl pripremljen za štampu na nekom od sredstava uz neku od opcija.BMP). snimanje grafičkog objekta u . Kombinacija naredbi (izme|u kojih se mogu naći naredbe za iscrtavanje grafika) » print fajl1 » print fajl1 -append dovešće do snimanja fajla fajl1. Ako se navede naziv fajla dobijamo u prvom slučaju fajl tipa WMF Windows meta file a u drugom slučaju BMP . Tako|e moguće je smjestiti fajl u meta formatu u Clipboard -dmeta (ako se navede naziv fajla snimiće se pod ekstenzijom . HP Paint Jet. depsc. Ako želimo sačuvati grafik za naredne sesije primijenićemo naredbu » print fajl1 -dmfile pomoću koje dobijamo MATLAB funkciju fajl1.hgl koji je tako|e pogodan za dalju obradu. Primjer 3.bitmapirani fajl.formatu -dhpgl. 106 . Epsonovi štampači itd).m koja se u nekoj od narednih sesija može pozvati naredbom » fajl1 čime će sadržaj grafičkog prozora biti rekonstruisan.M fajlu -dmfile.WMF) ili u bitmapiranom formatu u Clipboard -dbitmap (ili u fajl pod ekstenzijom . su i za enkapsulirani postskript deps. Za slanje grafika na trenutno instalisani monohromatski štampač -dwin ili kolorni štampač dwinc. Naredbom » print -dwin šalje se sadržaj grafičkog prozora na trenutno instalisani monohromatski štampač. itd. Oba ova fajla mogu importovati gotovi svi komercijalni programi.ps. Adobe ilustrator fajlovi -dill. Corel.

vršeći rotaciju od po 360/n=15 stepeni. Kombinacijom naredbi surface i view prikazujemo Zemlju kao Texturnu-mapu sa podacima iz datoteke topo. Poslije učitavanja datoteke. Napomenimo da ove naredbe nećete moći odraditi na slabijim računarima zbog velikog zahtjevanog memorijskog prostora i zahtjevnosti računanja za ove operacije. Dakle da bi realizovali ovaj primjer poslužićemo se datotekom topo. clear all load topo 107 . Zatim svaku sliku smještamo u matricu M i narednom movie prikazujemo. Vrijednost topomap1 je učitana iz datoteke topo.1 Prikazati Zemljinu kuglu u rotaciji.8 POKRETNE SLIKE . Primjer 3. Da bi se izvršio ovaj zadatak poslužićemo se podacima koje koristi demo program earthmap. Pomoću naredbe sphere odre|ujemo vrijednosti pojedinih koordinata na sferi. Procedura za kreiranje filma izgleda ovako: Prvo se naredbom M=moviein(n) inicijalizuje prostor za smještanje n slika (frejmova) koje će činiti budući film.MATLAB for Windows Grafik će po pravilu biti iscrtan tako da je širina papira manja od njegove visine.FILMOVI MATLAB posjeduje interesantnu mogućnost kreiranja pokretnih slika filmova.mat u promjenljivoj topo pod odre|enim uglom.N) gdje je N opcioni parametar koji odre|uje koliko puta će se prikazati matrica M.8. Za N<0 film se prikazuje obrnutim redosljedom slika. Podrazumjevana vrijednost je N=1. Zatim se nacrta pojedinačni grafik nekom grafičkom komandom. Orijentacija se mijenja naredbom » orient landscape dok se na default portrait orijentaciju vraće sa » orient portrait 3. Zemlju ćemo prikazati u n=24 slike.mat u kojoj se nalaze podaci koje koristi i program earthmap. postavljamo vrijednost palete boja naredbom colormap na vrijednost topomap1 koja nam je pogodna za prikaz Zemljine kugle.i)=getframe. Da bi dobijeni grafik činio i-tu sliku filma i-toj koloni matrice M pridružuje se sadržaj grafika naredbom M(:. Ovaj program su kreirali MATLAB programeri da bi prikazali mogućnosti MATLAB-a. Na kraju se odgovarajući film prikazuje naredbom movie(M. Matrica M posjeduje poslije ove naredbe n kolona.

end movie(M) Na slici 3.y. n=24.'Cdata'.z.37 Dvije sekvence filma iz prethodnog primjera 108 .'Texture'.'Facecolor'.5 cla.M=moviein(n).y.Grafika colormap(topomap1) [x.37 su prikazane dva kadra kreirana prethodnim primjerom.5. M(:.i)=getframe.axis auto surface(x.axis off i=j/15+3. Slika 3.axis xy.z]=sphere(24).topo) view([j 30]) axis square. for j=-37.5:360/n:307.

o čemu će kasnije biti riječi. Grupa funkcija za osnovne statističke obrade prikazana je u tabeli 4. postoji više načina za unošenje podataka.1. Kao što smo vidjeli u poglavlju 1. skup podataka koji se sastoji od 15 uzoraka za 7 različitih varijabli unosi se u obliku matrice dimenzija (15x7). direktno interaktivno unošenje nije pogodno jer.1. uzorci. Zbog toga se preporučuje razbijanje matrice podataka u manje blokove koje se kasnije jednostavnim pridruživanjem vrsta ili kolona spajaju u jednu cjelinu. Na primjer.MATLAB for Windows glava četvrta ANALIZA PODATAKA U ovom dijelu prezentiraćemo neke osnovne funkcije za statističku obradu podataka. neophodno je usvojiti orijentaciju (po vrstama ili kolonama) pri njihovoj obradi. Pošto se podaci obično unose u obliku ure|enog skupa brojeva. dovodi do grešaka. U MATLAB-u je usvojena konvencija po kojoj su podaci (mjerenja. Analiza podataka po kolonama max min mean std sort sum prod maksimalna vrijednost minimalna vrijednost srednja vrijednost standardna devijacija sortiranje suma elemenata proizvod elemenata cumsum kumulativna suma cumprod kumulativni proizvod diff table1 table2 cov spline aproksimativni izvod tabelarni pogled 2-D tabelarni pogled kovarijansa kubna interpolacija median medijana corrcoef korelacioni koeficijenti Tabela 4. opservacije) za različite varijable smješteni u odgovarajuće kolone.1 MAKSIMALNA I MINIMALNA VRIJEDNOST 109 . Funkcije za analizu podataka po kolonama 4. vrlo vjerovatno. Još jednostavniji način je putem korišćenja editora teksta. Ukoliko treba unijeti veliki broj podataka.

0000 3. Primjer 4. pa se na osnovu njih daju maksimalne (minimalne) vrijednosti. a rezultati za pojedine kolone dobijaju se kao odgovarajući elementi vektora vrste kao izlaznog argumenta operatora. max(x) i min(x) daju maksimalnu i minimalnu vrijednost elemenata x.2000 0. Izraz C=max(X. Operatori [M.0000 + 2.6000 8.0000i 3.0000i 5.y(i.Y). Ako je X matrica.0000 z= -2. odnosno min(X) daju vektor vrstu koji sadrži maksimalne (minimalne) vrijednosti pojedinih kolona matrice X.i]=max(X). daje matricu C sa elementima c(i. dok [m.3000 4. kao i većina ostalih funkcija. Za kompleksne elemente x-a računaju se apsolutne vrijednosti.5000 1.0000i -3.4000 1.5000i pojedini operatori daju: » m1=max(x) m1 = 4 110 .0000 + 4.i]=min(X) pored vektora maksimalnih (minimalnih) vrijednosti pojedinih kolona daju i odgovarajuće indekse.j)). Za podatke unešene u obliku matrice operacije se vrše po kolonama.0000 + 3. gdje su X i Y matrice jednake dimenzije. ne prave razliku izme|u vrste i kolone.0000 + 4.i]=max(x) i [m.Analiza podataka Za podatke unešene u obliku vektora.i]=min(x) pored maksimalne (minimalne) vrijednosti elemenata x daju i odgovarajući indeks.j).1. respektivno. Za vektor x.1 Za x= -0. [M.0000 y= -2. max(X).j)=max(x(i. funkcije max i min.

0000 3.0000 5.5000i j= 4 » c=max(y'.1.0000 Primjer 4.0000 4.0000 + 4.0000 1.j]=max(A) M= 4 5 6 j= 2 3 3 » [M1.0000i 8.0000i -3.0000 + 4.0000 B= 1 -1 2 -3 4 5 -4 2 9 ilustrovaćemo primjenu pojedinih operatora: » [M.j1]=min(B) M1 = -4 -1 2 j1 = 3 1 1 » C=max(A.B) C= 1 2 3 111 .z) c= -2.0000i 5.0000 + 2.i]=min(y) m= -2 i= 1 » [zm.0000 + 3.MATLAB for Windows » [m.1000 2.0000 2.2 Za matrice A= -1.j]=max(z) zm = 3.0000 3.0000 6.

median(X) daje vektor vrstu koji sadrži medijane pojedinih kolona matrice X. SREDNJA VRIJEDNOST I MEDIJANA Za vektor x. tj. izraz median(x) daje aritmetičku sredinu dva srednja elementa. Za x=[x1 x2 . Verzija istog operatora sa dva izlazna argumenta. m= 1 n ∑x 1 n i Za matrice... sort(X) daje matricu koja sadrži kolone matrice X sa njihovim elementima pore|anim po veličini.2 URE\IVANJE PODATAKA. Za slučaj da je broj elemenata vektora x paran.I]=sort(X) daje i matricu I koja sadrži indekse elemenata korišćene pri sortiranju. xn] izraz m=mean(x) daje aritmetičku sredinu elemenata vektora x. naravno. imamo: » sort(A) ans = 112 . Ako je X matrica. važi relacija x1=x(i).1 Za matrice A i B iz primjera 4.1. mean(X) daje vektor vrstu koji sadrži srednje vrijednosti pojedinih kolona. operator sort(x) daje novi vektor sa elementima vektora x. Operator mean računa srednju vrijednost.Analiza podataka 4 1 4 5 5 9 4. [x1. tj.2. Operator median računa medijanu za vektore ili matrice. Ovo. sortiranje se vrši po apsolutnoj vrijednosti. važi pod uslovom da vektor ima neparan broj elemenata. Kada su elementi kompleksni brojevi. Za matrice. medijana se definiše kao onaj njegov element od kojeg ima jednak broj većih i manjih elemenata tog vektora. Primjer 4. pored x1 (sortirani vektor x) daje i vektor i koji sadrži indekse pore|anih elemenata.i]=sort(x). ali pore|anim po veličini. Naredba [Y.2. Za vektor.

0000 3.1000 3. Operator cov računa kovarijansu.3 STANDARDNO ODSTUPANJE. 113 . KOVARIJANSA I KORELACIJA Operator std računa standardno odstupanje (devijaciju).MATLAB for Windows -1.3667 » X=median(B) X= -3 2 5 3. Za vektor x. std daje vektor vrstu koji sadrži standardne devijacije pojedinih kolona.0000 5. Ako je X matrica čije kolone sadrže pojedine varijable a vrste pojedine uzorke (mjerenja.6667 4.I]=sort(B) C= -4 -1 2 -3 2 5 1 4 9 I= 3 1 1 2 3 2 1 2 3 » Y=mean(A) Y= 1. cov(x) računa varijansu.0000 » [C. izraz C=cov(X) računa matricu kovarijanse C. Izraz c=diag(cov(X)) računa vektor c sa varijansama svake kolone matrice X. Za vektore. dok izraz sqrt(diag(cov(X))) daje standardne devijacije.0000 1.0000 2. Za matrice.0000 2.3333 3. opservacije). izraz y=std(x) daje skalar y po relaciji y= 1 n ∑( x i =1 n i − x sr ) gdje je n dimenzija vektora x a xsr srednja vrijednost njegovih elemenata.0000 4.0000 6.

1000 Trag matrice A jednostavno dobijamo sa » Tr=sum(diag(A)) Tr = 114 . tada corrcoef(X) daje matricu čiji je (i.j)/sqrt(C(i.0000 2.0000 imamo: » y=sum(x) y= 7 » s=sum(A) s= 4.0000 3.j)).Analiza podataka Operator corrcoef računa korelacione koeficijente. izraz corrcoef(X) daje matricu korelacionih koeficijenata matrice X. Na potpuno analogan način operator prod daje proizvod elemenata vektora ili matrice. tako da u našem slučaju izraz » S=sum(sum(A)) daje S= 25.0000 10.j)*C(j.j)-ti element definisan sa C(i.0000 Očigledno je da se zbir svih elemenata matrice A dobija sa sum(sum(A)). Primjer 4. Za matricu X. izraz s=sum(X) daje vektor vrstu s koji sadrži sume elemenata pojedinih kolona matrice X.4.0000 4. izraz y=sum(x) daje skalar y koji predstavlja zbir elemenata xa. 4.0000 3.0000 1.1000 11.4 SUMA I PROIZVOD ELEMENATA Za vektor x.0000 5.1 Za vektor x=[1 5 0 -2 3] i matricu A A= -1.0000 6.1000 2. Za matricu X. Ako je C=cov(X).

3 Za vektor x=[1 2 3 4 5 6 7] imamo » s=cumsum(x) s= 1 3 6 10 » p=cumprod(x) p= 15 21 28 115 .4. Primjer 4. »s s= 1.^3).MATLAB for Windows 8. dobijaju se pomoću operatora cumsum i cumprod.6922 Kumulativne sume. » s=sum(1.1975 » S=sum(log(n). Naime. čiji su elementi definisani sa si = ∑ x j odnosno pi = ∏ x j . j= i i j =1 Ako je X matrica.2 Za k=10. izračunati sume redova ∑1/ n n =1 k 3 i ∑ (ln n) / n n =1 k » n=1:10.1000 Proizvod elemenata pojedinih kolona matrice A dobićemo sa » p=prod(A) p= -4 31 36 dok se proizvod svih elemenata matrice A dobija sa » P=prod(prod(A)) P= -4464 Primjer 4./n) S= 2. za vektor x izrazi s=cumsum(x) i p=cumprod(x) daju vektore s i p iste dimenzije kao x. izrazi S=cumsum(X) i P=cumprod(X) daju matrice S i P istih dimenzija kao X. odnosno proizvodi.4. čije kolone se sastoje od kumulativnih suma odnosno proizvoda elemenata kolona matrice X./n.

y )∆x ∆y i j i a c i j b d j 116 .5 PRIMJENA SUM I CUMSUM ZA RA^UNANJE INTEGRALA Za funkciju f(x) odre|eni integral može se.y) dvojni integral može se aproksimirati sa I2 = ∫ ∫ zdxdy ≈ ∑ ∑ f ( x . približno izraziti kao I= ∫ a b f ( x )dx ≈ ∑ f ( xi )∆xi i =1 n −1 pri čemu je interval (a.b) podijeljen na n jednakih podintervala. za funkciju dvije promjenljive z=f(x. Na sličan način.Analiza podataka Columns 1 through 6 1 2 6 24 120 720 Column 7 5040 Očigledno je da vektor p sadrži faktorijele brojeva od 1 do 7. po pravougaonom pravilu. Za matricu B B= 1 -1 2 -3 4 5 -4 2 9 izrazi » cumsum(B) » cumprod(B) daju ans = 1 -2 -6 ans = 1 -3 12 -1 3 5 2 7 16 -1 2 -4 10 -8 90 4.

Usvojimo broj sektora po x i y osi. Uzećemo n=40. c. » I=trapz(x. Primjer 4. pa se za datu funkciju y=f(x) odre|eni integral jednostavno dobija kao I=sum(y)*k. Vektori x i y moraju imati iste dimenzije.5.9091 Postoji i funkcija trapz(x.6052 Za dvostruki integral primjenjuje se slična procedura.2 Naći integral I = −2 ∫ x dx 2 2 po trapeznom pravilu a potom u istim granicama naći integrale funkcija y=sin(x)+4 i y=sin(x2). » x=-2:k:2-k.^2)]'. » x=-2:4/40:2.3400 » y1=[sin(x)+4.5. ky=(d-c)/ny . b. Nezavisno promjenljiva x definiše se u opštem slučaju kao x=a:k:b-k.y1) ans = 16.y. Ukoliko se izostavi vektor x podrazumijeva se jedinični razmak izme|u vrijednosti funkcije y.^2.0000 5. » I=sum(y)*k I= 15. d definišemo korake po x i y osi kao kx=(b-a)/nx. ovom funkcijom se računa odvojeno integral svake kolone matrice y. Ukoliko je y matrica koja ima kolona koliko i vektor x elemenata. prvo ćemo usvojiti broj sektora n i definisati korak k=(b-a)/n.y) koja računa integral funkcije po trapeznom pravilu.nx.sin(x. pa za tu vrijednost n imamo: » k=(2-(-2))/40.1 Za funkciju y=sin x+4 naći integral od -2 do 2. Za date granice a i b.MATLAB for Windows Na osnovu ovih izraza očigledno je da se približno integraljenje može vršiti pomoću operatora sum. 117 . » y=sin(x)+4. Primjer 4. ny .broj sektora po x i y osi.3400 1. » trapz(x. » y=x.y) I= 5. pa za date granice a.

Uzećemo k=0. a b Kao i ranije.c:ky:d-ky) pa se dvostruki integral jednostavno dobija kao I2=sum(sum(z))*kx*ky.3 Naći dvostruki integral funkcije z=sinxsiny.1:1. tj. F(x) u diskretnim tačkama xi dobija se zatim jednostavno pomoću operatora cumsum kao F=cumsum(f(x))*k.grid. Primjer 4. » z=sin(x). funkciji F ( x ) = ∫ f ( x )dx .y]=meshdom(a:kx:b-kx.2] i y∈[-1.y).1 I2 = 1.xlabel('x').1.1:2-. Na sličan način može se naći i odre|eni integral sa promjenljivom gornjom granicom.1. definišemo korak k i nezavisno promjenljivu x kao x=a:k:b-k.*.Analiza podataka Sada možemo definisati nezavisno promjenljive x i y pomoću operatora meshdom kao [x. » F=cumsum(y)*0.3].1].4 Naći neodre|eni integral funkcije y=f(x)=sin(πx2).b]. u intervalu [a.*sin(y).y]=meshdom(-1:. Ovakav integral je ustvari jednak neodre|enom integralu sa fiksnom konstantom integracije.1 pa se integral lako dobija sa: » [x.ylabel('funkcija y') 118 . » I2=sum(sum(z)). » y=sin(pi*x.1:3-.-1:.5.^2).5.1 i sa sljedećim nizom naredbi: » x=-1:0. Primjer 4.1. u intervalu [-1.1). za x∈[-1.2847 Do sada smo razmatrali računanje odre|enog integrala. » subplot(221) » plot(x. Usvojićemo korake kx=ky=0.*.

1 0 -1 -0.4 0.MATLAB for Windows » subplot(222) » plot(x.2 0.y]=meshdom(a:kx:b.d].8 0. Primjer 4.3 0. sljedeći niz naredbi: [x.y) F=cumsum(cumsum(z)) mesh(z) mesh(F) u opštem slučaju računa i grafički prikazuje funkciju F(x. y ) = ∫ ∫ z( x . y )dxdy u oblasti definisanoj sa x∈[a.2].y]=meshdom(-1:0.1 i ky=0.5 1 b d Slika 4.6 0. a c 1 0.9 0. Usvojićemo kx=0.9 0.2 pa sa skupom naredbi: » [x.5 1 1 0.^3+y.1].b].1 0 -1 -0.-2:.1] Za usvojene korake kx i ky.2 0.2:2). 119 .F).5 0 x 0.7 0.3 0.4 0.ylabel('integral F') » print sl1 -dmeta dobijamo funkciju F(x) koju možemo nacrtati zajedno sa funkcijom y.1:1.c:ky:d) z=f(x.1 Grafik funkcije y=sin(πx2) i njenog integrala za x∈[-1. kao što je prikazano na slici 4.5 0 x 0.5 Za funkciju z=x3+y3 izračunati i grafički prikazati neodre|eni integral u oblasti definisanoj sa x∈[-1.8 0. Na sličan način može se izračunati i grafički prikazati dvojni neodre|eni integral oblika F ( x . y∈[-2.grid.1.5 0.y).5.5 0.7 0.6 0.xlabel('x'). » z=x.^3. y∈[c.

1 Za vektor x= 1 8 izrazi 27 64 125 » y1=diff(x) 120 . Znači.y) koju možemo grafički prikazati. Vektor y je za jedan element "kraći" od vektora x.6. Primjer 4.1*0.m).n-1. tj. zajedno sa funkcijom z(x. elementi vektora y predstavljaju razlike susjednih elemenata vektora x..2.2.y).6 RAZLIKA ELEMENATA I PRIBLI@NO DIFERENCIRANJE FUNKCIJA Za x=[x1 x2 x3 .. 10 5 0 -5 -10 30 20 10 0 0 15 10 5 0 30 30 20 10 20 10 0 0 30 20 10 Slika 4. opercija Y=diff(X) daje matricu Y čije kolone se sastoje od razlika susjednih elemenata kolona matrice X. xn] izraz y=diff(x) daje vektor y čiji su elementi definisani sa yi= xi+1-xi..Analiza podataka » F=cumsum(cumsum(z))*0.. i=1. tako da Y ima jednu vrstu manje od matrice X. » subplot(223) » mesh(z) » subplot(224) » mesh(F) dobijamo funkciju F(x. kao što je prikazano na sljedećoj slici. length(y)=length(x)-1. operator diff ima oblik diff(X. Ako je X matrica. U ovakvoj verziji.2 Trodimenzioni grafik funkcije z=x3+y3 i njenog integrala 4.. Ovo važi bez obzira da li se radi o vektoru vrsti ili koloni. dodavanjem opcionog ulaznog argumenta.. Navedena operacija može se ponoviti m puta.

121 . izraz za aproksimaciju izvoda dy y − yi −1 ( xi ) ≈ i dx xi − xi −1 pokazuje da se operator diff može koristiti za približno diferenciranje.2) » y3=diff(x. Za matricu A= 1 2 3 6 -1 3 4 2 -4 -1 -3 2 izrazi 4 5 5 8 » B=diff(A) » C=diff(A.2) daju B= 5 -3 0 1 -2 3 -7 0 -5 -5 6 3 C= -7 6 -7 -1 -3 -8 13 3 S obzirom na definiciju izvoda funkcije jedne promjenljive y=f(x) u tački xi. itd.MATLAB for Windows » y2=diff(x.3) daju y1 = 7 19 37 61 y2 = 12 18 24 y3 = 6 6 Očigledno je da važi: y2=diff(y1). y3=diff(y2).

y. Primjer 4.grid 122 .2)/0.1^3. nalazimo na potpuno analogan način sa ym=diff(y./diff(x). » y=x.text(-4.x(2:l-2).3)/0. označen sa ym.1:3.m).grid » text(-4.3].4.y. Primjećujemo da pri crtanju grafika izvoda funkcije moramo "skratiti" vektor x za jedan element.'izvod') » print sl3 -dmeta Zadnje četiri naredbe služe za crtanje. drugi i treći izvod funkcije y=2x3./diff(x).y1.x(2:l-1).y2./dx^m. %Racunamo izvod funkcije » subplot(221) » plot(x.6. obradu i pamćenje grafika funkcije i njenog izvoda.-4.1^2./diff(x).^3.3 Grafik funkcije y=xsin x i njenog prvog izvoda Primjer 4. » y3=diff(y. jer inače računar javlja grešku. » y=2*x.6. » x=-3:0. a može se naći i sa diff(y). Proizvoljni m-ti izvod funkcije y=f(x).x(1:l-1).Analiza podataka Prvi izvod se približno dobija sa diff(y)/dx. » y2=diff(y.'funkcija'). » plot(x.x(1:length(x)-1).y3). u intervalu x∈[-3. » x=-2*pi:pi/10:2*pi.*sin(x). » l=length(x).2 Odrediti i nacrtati prvi. %Racunamo funkciju » y1=diff(y). » y1=diff(y).2 Za funkciju y=xsin x odrediti i nacrtati prvi izvod za -2π≤ x≤ 2π. 6 4 2 0 -2 -4 -6 -8 funkcija izvod -6 -4 -2 0 2 4 6 8 Slika 4. gdje dx=∆x predstavlja priraštaj x-a (korak).y1).

4 Grafik funkcije y=2x3 i njena prva tri izvoda 123 . 60 40 20 0 -20 -40 -60 -3 -2 -1 0 1 2 3 Slika 4.MATLAB for Windows » print sl4 -dmeta Primijetimo da se pri crtanju m-tog izvoda. u opštem slučaju. Razlog leži u kompatibilnosti dimenzija izvoda i nezavisno promjenljive. nezavisno promjenljiva "skraćuje" za m elemenata.

125 . Poslije osnovnih napomena. slično kao gore ali je moguć povratak u MATLAB bez zatvaranja pozvane aplikacije i !naredba| pozvana aplikacija se otvara na nivou ikone. u MATLAB-u se koristi opcija File/New/M-file. što smo označavali sa ». u ovoj glavi su obra|ene funkcije za upravljanje tokom programa. Na primjer. kao i druge pogodne naredbe za kreiranje m-fajlova. To je bio najjednostavniji način za upoznavanje sa pojedinim funkcijama i mogućnostima MATLAB-a. kao i rad sa tekstualnim promjenljivim. možemo dobiti pomoć i dodatna objašnjenja. pritiskom na <F1> ili izborom neke od opcija iz stavke Help menija. Poslije toga. Zbog toga se nameće potreba za pisanjem programa koji će ostati zapisan i trajno sačuvan. Takvi programi u MATLAB-u imaju obaveznu ekstenziju . Me|utim. Program možemo napisati u nekom od editora. čime se otvara neimenovani prazan fajl Untitled. kao što su for. 5. while. mogli smo zapaziti da ono što je zapisano biva uništeno poslije izlaska iz MATLAB-a. a mi ćemo u primjerima koristiti veoma rasprostranjeni Notepad. Ove naredbe imaju suštinski tri oblika: !naredba. if. break i return.m.MATLAB for Windows glava peta PROGRAMIRANJE I M-FAJLOVI Do sada smo sve operacije obavljali na komandnoj liniji.1 PISANJE M-FAJLOVA U NOTEPAD-U U MATLAB-u se mogu izvršavati naredbe MS-DOS-a i Windows-a. otvara se prozor aplikacije koja je pozvana (ili MS-DOS prozor) a povratak u MATLAB je moguć tek nakon gašenja ove aplikacije. program Notepad se može pozvati sa: » !notepad Da bi se otvorio novi fajl. !naredba&. Te naredbe se označavaju uskličnikom !. pa se nazivaju i m-fajlovi. Obra|en je rad sa funkcijskim fajlovima.

Brisanje karaktera se vrši tipkom <Bck Spc> (karakter unazad). a ne mora. Kada se fajl prvi put snima treba unijeti njegovo ime (ovdje je to proba. kucamo redom: % Crtanje grafika funkcije f(x)=cos(x) x=-pi:pi/20:pi. Program sačuvati pod imenom proba. Povratak u fajl koji je otvoren i nije zatvoren u Windows-u je moguć tako|e sa Alt+Tab. Program se izvršava ukucavanjem imena bez ekstenzije. u novi red se ide pritiskom na tipku Enter. Imena MATLAB fajlova su obavezno sa ekstenzijom . Komentari se mogu ispisivati i u programu radi njegovog jednostavnijeg praćenja. Nakon završetka rada sa editorom. U MATLAB se možete vratiti sa Alt+Tab (tasterima zajednički pritisnutim dok se ne pojavi MATLAB COMMAND WINDOW gdje se ovi tasteri otpuste) ili zatvarajući istovremeno fajl sa File/Exit.y) end Treba napomenuti da na kraju programa može biti end. odnosno tipkom <Del> (karakter gdje se kursor nalazi). Program ćemo sačuvati sa File/Save.m. sa kojom se može stvarati i dodatni red izme|u dva već napravljena reda. prilikom čega je neophodno zadati ime fajla. Strelicama se pomijera kursor. Linija sa komentarom počinje znakom %. Fajl se može potražiti po drugim diskovima na računaru.m). Primjer 5.1 Napisati program za crtanje grafika funkcije f(x)=cos(x) -π≤x≤π.Programiranje i M-fajlovi Pisanje programa se vrši na uobičajen način. Pošto smo već ušli u editor za program sa File/New/M-file. Otvaranje već napisanog fajla se može postići sa File/Open M-file pa se zatim izabere fajl sa diska koji se želi otvoriti. on se nalazi u MATLAB-ovom File meniju pod rednim brojem od 1 do 4. Poželjno je na početku programa ispisati komentare. po direktorijumima tekućeg diska ili u spisku datih fajlova. Sa svim ostalim mogućnostima se možete upoznati u prilogu. y=cos(x). program se snima aktiviranjem opcije File/Save. U našem primjeru: » proba 126 .1. Ako je fajl koji se želi prepraviti me|u posljednjim sa kojim se radilo. plot(x.

U MATLAB-u se mogu koristi i drugi editori teksta. Program može pozivati sam sebe. (ili vektor ili matricu) (o unošenju teksta će biti kasnije riječi). Poslije izvršavanja tog pozvanog m-fajla sve varijable ostaju u radnom prostoru i sljedeće naredbe ih mogu koristiti kao poznate. kao i mogućnost privremenog zaustavljanja rada naredbom pause.2 UPRAVLJANJE TOKOM PROGRAMA 5. Naredba input ima oblik: input('tekst po zelji ') Poslije ove naredbe računar ispisuje dati tekst.1 INTERAKCIJA SA KORISNIKOM U grupu naredbi koje nam omogućavaju da u toku izvršavanja programa unosimo promjenljive i djelove programa.y). 127 . a prije end. mada pasivno. a to su echo i diary. Uopšte gledano. pa je u velikom broju slučajeva potrebno željenoj varijabli pridružiti vrijednost ans. 5. tu ćemo svrstati i naredbe koje nam omogućavaju da pratimo.MATLAB for Windows U MATLAB-ovoj notaciji ove fajlove možemo zvati script-fajlovi ili jednostavnije rečeno programi. fajl pri izvršavanju naredbi sam sebe pozivao i tako radio beskonačno puta. rad programa. unesemo liniju sa imenom našeg fajla proba. svrstaćemo naredbe input i keyboard. Na primjer. pravi pauzu i čeka da unesemo broj.2. Važno je istaći da se pozivanje nekog drugog mfajla može izvršiti i unutar programa unoseći samo njegovo ime. Tako bi u našem slučaju. ukoliko smo unijeli varijablu koju u programu označavamo sa a. U Options/Editor Preference možemo definisati neki drugi editor u koji će se ulaziti opcijama File menija. onda poslije linije sa naredbom input slijedi linija sa: a=ans. Uneseni broj računar smješta pod imenom ans. Komentar otkucan na početku programa dobija se sa help proba. Ovakav postupak kada se primjeni na funkcije naziva se rekurzijom i može biti veoma koristan. ako poslije naredbe plot(x.

01:2. ali se rje|e koristi. Naredbom pause privremeno zaustavljamo izvršavanje programa dok ne pritisnemo neku (bilo koju) tipku za nastavak rada.y) pause(3) 128 . Primjer 5. a zatim i izračunati integral u istom intervalu po pravougaonom pravilu sa 40 odbiraka. Tako možemo otkucati i izvršiti više naredbi.2. K» x=0:.Programiranje i M-fajlovi Promjenljivoj. x=a:h:b-a.*sin(x+fi). Naredba keyboard je znatno opštija i moćnija od naredbe input.2. dok naredba keyboard privremeno obustavlja izvršavanje programa i vraća nas na tastaturu. MATLAB prompt mijenja oblik u K». Naredba pause(n) pravi pauzu u izvršavanju programa od n sekundi.^2). h=(b-a)/20. K» b=2.1 Naredbu keyboard ilustrovaćemo na primjeru crtanja parabole y=a+bx2 u granicama x∈[0. plot(x.2 Napisati program koji će na osnovu učitane faze sinusoide nacrtati grafik funkcije f(x)=x2 sin(x+ϕ) u intervalu -π≤x≤π. Poslije ulaska u editor sa File/New/M-file kucamo: fi=input('unesi fazu sinusoide ') a=-pi. y=(x. koja se zadaje naredbom input može se i direktno dodijeliti vrijednost sa: a=input('tekst po zelji').2].a+b*x. Primjer 5. a onda se sa return vratiti i nastaviti sa izvršavanjem programa.^2) K» end K» return » Uočimo da poslije pozivanja naredbe keyboard. K» plot(x. Naredbom input možemo unijeti samo broj (matricu) ili tekst. na primjer a. b=pi. » keyboard K» a=1.

Ovaj mod se ponovo uključuje sa pause on. Naredba diary nam omogućava da napravimo dnevnik onoga što radimo. Ako ukucamo diary ime. Ako se želi specificirati da se dobije echo pojedinih funkcija to će se postići sa echo 'funkcija' on. Primjer 5.2 FOR PETLJA Mogućnost ponavljanja dijela programa zadati broj puta se u MATLAB-u ostvaruje upotrebom for petlje. Ta petlja je ekvivalentna do petlji u fortranu ili for petlji u basicu. sa File/Exit iza|e se iz Notepad-a. gdje je funkcija odgovarajuća MATLAB funkcija. a prilikom izlaska dobija se pitanje: Fajl je mijenjan da li želite da sačuvate promjene? Na ovo pitanje treba odgovoriti potvrdno i dati ime fajlu sa ekstenzijom . odnosno isključenje sa echo off all. Naredba echo se poništava sa echo off.tip. 5.tip onda će računar od tog trenutka zapisivati sve što radimo i što računar ispisuje kao rezultate ili poruke greške na ekranu.MATLAB for Windows int=sum(y)*h end Nakon iskucavanja teksta. Ovo je posebno pogodno za demonstrativne svrhe i za pisanje izvještaja sa objašnjenjima.m. Naredba echo ili echo on nam omogućava da pratimo izvršavanje programa.3 Izračunati vrijednost determinante: 129 . Na ekranu računar ispisuje naredbe koje se u tom trenutku izvršavaju. Sve što je zapisano nalazi se u fajlu ime.2. Postoji mogućnost da se sa pause off onemogući zaustavljanje računara u pause-modu. Ako se želi izvršavanje echo naredbe unutar svih funkcijskih fajlova to se može postići sa echo on all. for petlja se završava narebom end.2. Ukoliko ne bi koristili liniju sa naredbom pause računar bi odmah poslije crtanja grafika nastavio sa radom. Ova opcija se isključuje sa echo 'funkcija' off. Ova naredba nam omogućava da imamo 3 sekunde da vidimo grafik. Uključivanje i isključivanje echo-a se može postići i aktiviranjem stavke menija Options/Turn Echo on (ili off). Dnevnik isključujemo sa diary off. Program je moguće izvršiti pozivom njegovog imena. Pogodna je za otkrivanje grešaka u programu.

j)=i*j.-k.4. Za razliku od njih. 4.7.8.^2. Moguća je višestruka upotreba for petlji. 2.1:-2 y=x.2.4 Formirati matricu 7x7 čiji su elementi a(i. Primjer 5. for x=2:-0.3. 130 .0. end Kada se radi o vektorima onda je for petlja ista kao i do ili for petlja u ostalim programskim jezicima. u MATLAB-u se for petlja može izvršavati i sa matricama.j)=i*j.4. prilikom pisanja programa. 5 i 6.3.Programiranje i M-fajlovi 3k d= 4 8 5 3 11 3 7 −1 − k 0 k 6 4 2k 1 za vrijednosti k=1.k. vršeno je radi bolje preglednosti.-1. for i=1:7 for j=1:7 a(i. d=det(a) end Opšti oblik for petlje je: for v=vektor ili matrica naredbe end For petlja se izvršava tako što promjenljiva v uzima redom elemente vektora v ili kolone matrice v (ako je v matrica) i izvršava naredbe za uzetu vrijednost v. for k=1:6 a=[3*k.2*k.11.5. 3.1]. end end »a Pomijeranje naredbi u for petlji. Jasno je da elementi vektora mogu biti i necjelobrojni i sa negativnim priraštajem.6.

7:-1:1). U tom slučaju bi se naredbe u while petlji izvršavale beskonačno puta. matrica a(i. Poslije while može slijediti izraz koji je uvijek istinit kao na primjer 1==1 ili 1>0. Opšti oblik while petlje je: while izraz naredbe end Primjer 5. n=n+1. uzimajući sve članove koji su po apslolutnoj vrijednosti veći od 0. Tako je. 5.j)=i*j mogla biti formirana sa samo dvije naredbe [i. U vezi sa logičkim operacijama treba napomenuti da je u MATLAB-u izraz logički istinit ako je različit od nule.j]=meshdom(1:7.0001. end s end Dio programa izme|u while i end izvršava se sve dok je izraz koji slijedi poslije while istinit.MATLAB for Windows Treba napomenuti da se u MATLAB-u veliki broj petlji može izbjeći zahvaljujući tome što MATLAB automatski radi sa vektorima. Relacione i logičke operacije 131 .2. Tako operacija | (ili) vraća logičku jedinicu kao rezultat ako je barem jedan od operanada različit od nule a operacija & (i) vraća logičku jedinicu ako su oba operanda različita od nule. Za to se koristi while petlja.1.*j. na primjer..2.3 WHILE PETLJA Dio programa se može ponoviti i neodre|eni broj puta. % racunanje sume reda sa zadatom tacnoscu s=0. % pocetna vrijednost rednog broja elementa while abs((-1)^n/n^2)>10^(-4) s=s+(-1)^n/n^2. sve dok je zadati uslov zadovoljen. I ovaj oblik ponekad može biti od koristi. % pocetna vrijednost sume n=1. a=i.5 Izračunati sumu s = ∑ an gdje je an = ( −1) n n 1 n2 . Prilikom definisanja izraza kao sastavnog dijela while petlje mogu se koristiti relacione i logičke operacije date u tabeli 5.

b) jednako (=) veće ili jednako (≥) manje ili jednako (≤) nije jednako (≠) logičko i logičko ili logičko ne ekskluzivno ili Tabela 5.2.j)=sin(2ij-i)+1/2 za i=j.j)=a(i. a a(i.j)=sin(2ij-i) za i≠j. Relacione i logičke operacije Primjer 5.7 Napisati program za izračunavanje elemenata matrice (5x5). Ako želimo izvršiti dio programa samo ukoliko je zadovoljen neki izraz onda to činimo sa: if izraz naredbe end Primjer 5.4 IF NAREDBA Uslovno izvršavanje dijela programa se ostvaruje if naredbom. a(i.2.1.5.Programiranje i M-fajlovi == >= <= č= & | č xor(a. for i=1:n for j=1:n a(i. end end end 132 .6 Napisati program za računanje kuba brojeva unijetih sa tastature. while 1==1 input('unesite broj ans^3 end ') 5.j)+0.2. n=5. if i==j a(i.j)=sin(2*i*j-i). Postupak ponavljati neodre|en broj puta.

else s(i)=2. U tom slučaju računar izvršava naredbe1 koje slijede poslije if. ako je izraz uz if zadovoljen.2)==0 % rem(m. s(n)=1.MATLAB for Windows a end Moguće je izvršiti jedan dio programa označen sa naredbe1 ukoliko je izraz istinit. Drugi uslov se zadaje izrazom uz elseif i u slučaju zadovoljenja tog izraza izvršava se blok naredbi koji slijedi poslije elseif. % racunanje vektora s pogodnog za simpsonov metod % izracunavanja integrala n=11. s(1)=1.2. if izraz1 naredbe1 elseif izraz2 naredbe2 133 . a drugi dio naredbe2 ukoliko nije. for i=2:n-1 if rem(i.8 Formirati vektor s=[1 4 2 4 2 4 2 4 2 4 1]. To se ostvaruje koristeći if u kombinaciji sa else. for izraz naredbe1 else naredbe2 end Primjer 5. end end s end Zadavanje dva uslova se ostvaruje sa if i elseif uz else. Ako nijedan od izraza nije zadovoljen onda se izvršava blok naredbi poslije else.n) daje ostatak dijeljenja m sa n s(i)=4.

Dakle kreira se grafički prozor i menijem pod naslovom Naslov prozora i dugmadima na kojima pišu opcije. Izbor=menu('Izbor grafickog prikaza'.. for i=1:n for j=1:n if i<j elseif else a(i.i).j)=i-j za i≠j i i<j.^2+y. if(Izbor==1).'Prva opcija'.2.Programiranje i M-fajlovi else naredbe3 end Primjer 5. Primjer 5.j)=i^2 za i=j.mesh(z) elseif(Izbor==3).5 GRAFI^KI MENI Kada se u programu javlja slučaj višestrukog grananja može se koristiti naredba za kreiranje grafičkog prozora menu('Naslov prozora'.j)=-a(j.10 Napisati program kojim se crta sombrero površ uz mogućnost izbora načina grafičkog predstavljanja.'surf'.2. n=7./(x.^2+y.j)=i^2.. 5..surf(z) else. [x. i==j a(i.'pcolor').contour(z) elseif(Izbor==2)..pcolor(z) 134 .'Poslednja opcija').'Druga opcija'.'mesh'.j)=-a(j.-2*pi:.y]=meshdom(-2*pi:.. 'contour'.9 Izračunati elemente matrice a(i.^2+eps). Kada se klikne na neku od opcija zatvara se prozor a izlaz iz naredbe je broj koji ukazuje koja je opcija izabrana.2..^2+eps).2:2*pi).. z=sin(x.j)=i-j. end end end a end a(i.i) za i>j i a(i. a(i.2:2*pi.

3.7 ERROR NAREDBA Prekid izvršavanja programa se može ostvariti i naredbom error koja ima oblik: error('obavjestavanje o razlogu prekida. Za matricu [i. 135 .6 BREAK NAREDBA Iz for.2. while i if petlje se može izaći i prije njihovog regularnog završavanja naredbom break. 5. uz ispisivanje unijetog teksta koji slijedi iza naredbe error (vidi primjer 5.2.8 NAREDBE VEZANE ZA LOGI^KE OPERACIJE Obradimo neke funkcije vezane za logičke operacije any(X) exist('X') all(X) find(X) Vraća jedinicu ako je bilo koja vrijednost u matrica različita od nule. 5. (Objašnjeno u prvom poglavlju). Provjerava da li postoji program ili funkcija X. Za vektor X vraća indekse vektora X koji su različiti od nule. po zelji') Nailaskom na takvu naredbu računar prekida dalji rad.2.j]=find(X) daje vrijednosti koeficijenata matrice X koje ispunjavaju logički uslov po kolonama i vrstama.2).MATLAB for Windows end Ovim naredbama kreira se prozor na slici 5. Slika 5.1 Prozor u kojem se bira opcija 5.1 i u zavisnosti od izbora crta se dvodimenzionalni grafik. Vraća jedinicu ukoliko su sve vrijednosti u matrici (ili vektoru) X različite od nule.

gdje x može biti skalar.0910 0.7098 0.1598 0.2128 0.3175 2 2 3 2 4 2 5 2 1 3 4 3 1 5 2 5 isnan(X) Vraća jedinicu za elemente matrice koji su NaN.1 Definisati funkcijskim fajlom funkciju si(x)=sin(x)/x.Programiranje i M-fajlovi Primjer 5. Fajlovi kojima kreiramo nove funkcije nazivaju se funkcijski fajlovi i obavezno u prvoj liniji imaju naredbu function. » i' i= 1 2 4 1 » j' ans = 1 1 1 2 0. issparse(X) Vraća nulu ako je matrica rijetka. isglobal(X) Vraća jedinicu ako je promjenljiva X globalna promjenljiva (to jest ako važi u svim programima i funkcijama).8024 0. 5.2. vektor ili matrica. Primjer 5.0331 0.4985 0. » x=rand(5) x= 0.j]=find(x>0.4143 0.6248 » [i.11 Za matricu slučajnih brojeva odrediti one koeficijente i i j koji zadovoljavaju logički uslov X>0.3. finite(X) Vraća jedinicu za konačne elemente matrice (nijesu Inf i NaN).7483 0.2746 0.5. isstr(X) Vraća jedinicu ako je matrica zapravo string .) isinf(X) Vraća jedinicu za elemente matrice koji su Inf (beskonačno).5717 0. Osnovnu strukturu funkcijskog fajla prikazaćemo na primjeru definisanja funkcije si(x)=sin(x)/x.2399 0.0269 0.5546 0.5344 0. 136 .3 FUNKCIJSKI FAJLOVI Izuzetna pogodnost koju pruža MATLAB je mogućnost kreiranja novih funkcija i lako pravljenje i pozivanje potprograma.7147 0.8907 0.9379 0.5).1304 0.tekstualni niz.8420 0.0030 0. (Posljedica računanja tipa 0/0 i sl.9554 0. isempty(X) Vraća jedinicu ako je X prazna matrica X=[].1809 0.

možemo probati kako on radi. c(2)=a(3)*b(1)-a(1)*b(3). Rezultat je definisana funkcija sin(a)/a.b) % racunanje vektorskog proizvoda c=axb if length(a)č=3 | length(b)č=3 error('duzina vektora a ili b nije 3') end c(1)=a(2)*b(3)-a(3)*b(2). function s=si(x) % Definisanje funkcije si(x)=sin(x)/x s=sin(x+eps).[-1 0 5]).2:7. plot(x. dobija se sa » help si i služi kao objašnjenje definisane funkcije./(x+eps). Sve promjenljive u function fajlu su lokalnog karaktera: x je ulazna. koji slijedi poslije linije function. c(3)=a(1)*b(2)-a(2)*b(1).MATLAB for Windows Napomenimo da se funkcijski fajl obavezno mora nazvati po imenu funkcije koja se njime kreira dakle u ovom slučaju si. Ako dužina vektora a ili vektora b nije 3.m. function c=vekpr(a.[-1 0 5]) 137 . U prethodnom funkcijskom fajlu korišćena je poruka greške. vektor ili matrica. program prekida dalje izvršavanje naredbi uz poruku "duzina vektora a ili b nije 3".3. a s je izlazna varijabla koja se dobija u obliku ans poslije pozivanja funkcijskog fajla (probajte » si(2) ili » x=-7:. Treba napomenuti da MATLAB ima ugra|enu funkciju cross koja računa vektorski proizvod. end Poslije izlaska uz zapisivanje fajla vekpr.m. Primjer 5. Funkcijski fajlovi se mogu praviti i sa više ulaznih i izlaznih varijabli. Na primjer » r=vekpr([1 2 3].si(x))). tako bi unošenje » cross([1 2 3]. Tekst označen komentarom %.2 Napisati potprogram za računanje vektorskog proizvoda dva trodimenziona vektora. gdje a može biti skalar. end Funkcijski fajl si poziva se sa si(a).

3 Odrediti najbližu i najdalju tačku na elipsoidu a 2 + b2 + c2 = 1.*e.3. k2=-2/sqrt((e*m(1:3)')^2).d2]=raste(e.x2]=raste([1 2 2]. a ravan u vektoru m=[A B C D].^2/2.d1. imali smo samo jednu izlaznu promjenljivu. Ako ga pozovemo sa [x1. Primjer 5.x2. d2=abs(x2*m(1:3)'+m(4))/sqrt(sum(e.^2)). U function fajlovima. Ako je potrebno izvršiti odre|ene operacije sa zadatim varijablama (na primjer radi crtanja grafika na x2 y2 z2 138 . može biti veći i može se dobiti naredbom nargout. if nargout>2 d1=abs(x1*m(1:3)'+m(4))/sqrt(sum(e.^2/2. od date ravni Ax+By+Cz+D=0.d1. koje su najbliže odnosno najdalje od ravni sa koeficijentima A=1 B=0 C=-1 i D=3 i njih dati kao izlazne varijable.Programiranje i M-fajlovi dalo isti rezultat kao naša funkcija.: 2y/b2=kB 2z/c2 =kC 2x/a2 =kA Konstanta k se odre|uje iz uslova da tačka [x y z] leži na elipsi. koje smo do sada razmatrali. Ako ga pozovemo sa [x1. Broj izlaznih promjenljivih. k2=4/(A2a2+B2b2+C2c2) function [x1.x2. dok se broj ulaznih promjenljivih dobija sa nargin. na elipsoidu sa osama a=1 b=2 i c=2 respektivno. Najbliže i najudaljenije tačke su one u kojima je vektor normale na elipsu n=[2x/a2 2y/b2 2z/c2] kolinearan sa vektorom normale ravni [A B C] tj. % x1=k1*m(1:3). Ose elipse zadati u vektoru e=[a b c]. kao i rastojanje tih tacaka od ravni k1=2/sqrt((e*m(1:3)')^2).d2]=raste([1 2 2].m) % Odredjivanje najblize i najudaljenije tacke na elipsoidu od % zadate ravni. x2=k2*m(1:3). me|utim.*e. Funkcijski fajl ne mora imati izlazne promjenljive.[1 0 -1 3]) onda će računati i koordinate tačaka i njihovo rastojanje do ravni. Ako je broj izlaznih argumenata veći od dva onda izračunati i rastojanja tačaka na elipsi i ravni. end end Prethodni funkcijski fajl može se pozivati sa promjenljivim brojem izlaznih argumenata.^2)).[1 0 -1 3]) onda će računati samo tačke x1 i x2.

a ako se zada m. % Ako je zadato m i r onda na visini r iznad Zemlje.3. i1=[1 1 1]'*i.4 -0. y1=[0 1 0]'*y. i=round(x.2 0 -0.2 -0. Ako se zada i r onda uzeti da je tijelo na visini r od površine Zemlje.4 0. Primjer 5. plot(i1. to se može izvršiti funkcijskim programom bez izlaznih promjenljivih. Ako se kao ulazni parametar zada samo m onda uzeti da je tijelo na površini Zemlje. Ako je zadato samo m na povrsini Zemlje.sin(x)). function q=tezina(m.2 Grafik diskretnog signala Broj ulaznih argumenata tako|e može biti promjenljiv.4 Napraviti funkcijski fajl za crtanje diskretnih signala. function dplot(x.6 0. i1=i1(:)./d). Primjer 5.y1) end Diskretni signal sin(pi/10*n) možemo nacrtati sa » x=-2*pi:pi/10:2*pi.y) % pozivom dplot(x.3. r i M onda uzeti da se tijelo m nalazi na rastojanju r od planete mase M.8 0.5 Izračunati težinu tijela mase m.6 -0. 139 .M) % % racunanje tezine tijela. koje nas u daljem radu ne interesuju.8 -1 -20 -15 -10 -5 0 5 10 15 20 Slika 5. » dplot(x. y1=y1(:).r.y) crtamo diskretnu funkciju y(n)=y(x) za x=ndx u % funkciji rednog broja odbirka % d=(max(x)-min(x))/(length(x)-1). 1 0.MATLAB for Windows ekranu) pri čemu treba računati pomoćne varijable.

% Uzeto je Mzem=4. elseif nargin==2 q=6.6 Korišćenjem razvoja u red napraviti program za računanje sin(x) sa zadatom tačnošću etac za relativno male vrijednosti x. end s=x. Kada neki m-fajl koristimo prvi put. on se kompilira i smjesti u memoriju i tako je dostupan za kasniju upotrebu.+(-1)n-1x2n-1/(2n-1)!+. Rzem=6371377 i gama=6. end end Promjenljivi broj ulaznih parametara često se koristi i pri pozivanju function fajlova za računanje varijabli sa odre|enom tačnošću..00001 % if nargin==1 etac=10^(-5).etac) % % sinred(x. n=1.81.672*10^(-11)*m*M/r^2. racunanje sinusa pomucu reda. while f>etac n=n+1. end end Na kraju ovog odjeljka daćemo i nekoliko napomena. f=(-1)^(n-1)*x^(2*n-1)/prod(1:2*n-1).672*10^(-11)*m*4.3. ako nije zadata % tacnost onda se uzima da je etac=0. 140 . s=s+f.. Ako nije zadata tačnost računati sin(x) sa tačnošću 0. else q=6. Primjer 5.etac).. function s=sinred(x..00001.9156*10^24. r i M onda na rastojanju r od planete mase M.Programiranje i M-fajlovi % a ako je zadato m. Razvoj sinusa u red oko nule je oblika: sin(x)=x-x3/3!+x5/5!-x7/7!+. f=x.9156*10^24/(6371377+r)^2.672*10^(-11) % if nargin==1 q=m*9.

Ako jeste.m u direktorijumima po definisanom putu pretraživanja (u MATLABRC. na primjer proba.-------javlja grešku. Svako slovo varijable s smješta se kao jedan elemenat vektora. a ako ga nema 7. koristi je.-------traži fajl proba.mex u direktorijumima po definisanom putu pretraživanja (u MATLABRC. pa je s vektor dimenzija (1x6). uzima njenu vrijednost za računanje. Ako ga na|e izvršava ga. može raditi i sa tekstualim varijablama. » c=abs(s) c= 77 65 84 76 65 66 141 . a ako ga ne na|e. MATLAB. važno je imati u vidu da fajlovi koje pravimo ne smiju imati imena ugra|enih funkcija ili korišćenih varijabli. a ako nije 3. 4. a ako ga nema 5. Ako ga na|e izvršava ga.m u tekućem direktorijumu. 6.-------provjeri da li je proba ugra|ena funkcija.MATLAB for Windows Prilikom pozivanja nekog fajla.-------traži fajl proba. Na osnovu prethodnog.-------Provjeri da li je proba varijabla. ako nije 2.M) i ako ga na|e izvršava ga.-------traži fajl proba. » size(s) ans = 1 6 Vrijednosti ASCII koda koje odgovaraju pojedinim slovima dobijaju se sa abs. proba je nepoznato.M) i ako ga na|e izvršava ga. Ako jeste. 5.4 TEKSTUALNE PROMJENLJIVE (STRINGOVI) Do sada smo posmatrali isključivo varijable koje uzimaju numeričke vrijednosti.mex u tekućem direktorijumu. MATLAB-ov interpreter pravi sljedeće korake: 1. Tako možemo zadati varijablu s čiji će sadržaj biti tekst "MATLAB". » s='MATLAB' s= MATLAB Apostrof na početku i kraju označava da neku promjenjljivu treba tretirati kao tekst. kao uostalom i mnogi drugi programski jezici. a ako ga ne na|e. kao ni imena već postojećih fajlova.-------traži fajl proba.

Poslije % prvog bacanja treba otkucati redne brojeve kocki koje % se ponovo bacaju.s') gdje s označava da se radi o tekstualnim varijablama. % program jamb % program koji simulira bacanja kocki u jambu.2 Funkcija blanks(n) kreira string koji se sastoji od n praznih polja (spaceova). dodajući vrste ili kolone. » e=[c. » disp(e) MATLAB VER4.4. 's') if ans=='da' help jamb 142 .d] e= MATLAB VER4.1 Napraviti m-fajl koji će simulirati bacanje 5 kocaka za igranje jamba. Ukoliko ne želimo da računar ispisuje ime varijable onda možemo koristiti naredbu disp.blanks(2). » setstr(c) ans = MATLAB Složeni vektori mogu se graditi kao i kod operacija sa brojevima. za slučaj tekstualnih promjenljivih. d='VER4.d] f= MATLAB VER4.2'. input('zelis li objasnjenje da ili ne'. Ovo je operacija inverzna operaciji abs.2 » f=[c.Programiranje i M-fajlovi ASCII vrijednosti se pretvaraju u karaktere sa setstr.2 Unošenje tekstulanih promjenljivih se vrši naredbom: » input('proizvoljan tekst'. Primjer 5. Naredba deblank ima suprotno dejstvo naredbi blanks to jest briše bjeline u stringu (space-ove i Tab-ove).

» s='sin(x).'. y(5-length(ans)+1:5)=ceil(rand(1. Veoma važna naredba za rad sa stringovima je eval(s).') pause clc end ans='a'.^2+y').length(ans))*6).:)) x= 2 143 . Ova naredba znači da računar izvrši tekst u promjenljivoj s kao naredbu.MATLAB for Windows disp('pritisnuti bilo koju tipku za nastavak. koje moraju biti iste dužine.5)*6) input(' koje kocke bacas ponovo [x x x] (ako ne bacas [0]) ') if ansč=[0] y(ans)=[].. Me|utim ako zadamo x: » x=2 onda naredbom eval(s) izvršavamo sadržaj varijable s: » eval(s) što je isto kao da smo otkucali: » sin(x).:)) u tom slučaju izvršava naredbe koje su sadržane u pojedinim vrstama. end disp(y) input(' pritisni bilo koju tipku za nastavak ili k za kraj. while(ansč='k') y=ceil(rand(1.'y=3'. » eval(s(1. eval(s(i.*x. Poslužimo se funkcijom str2mat kojom se formira matrica čije su vrste pojedini stringovi i izvrši se automatsko popunjavanje nulama pojedinih vrsta..'z=x..*x.^3' Ovako napisana varijabla s je tekst.'s') clc end Naredba iz fajla clc briše komandni prozor i vraća na komandni prompt. » s=str2mat('x=2'..^3 Varijabla s može imati i više vrsta.

Na isti način mogu se sačuvati i promjenljive za razne vrijednosti i. 4.ps.ps .:)) y= 3 » eval(s(3. print slll2. više promjenljivih ili učitavati više varijabli koje se razlikuju u imenu.ps i vidjećete da su kreirani fajlovi slll1. » for i=1:4 y=x. Ukažimo da je naredba dir adekvatna MS-DOS naredbi i služi za izlistavanje sadržaja direktorijuma. Na primjer. 3. 2. » t=[s r] t= ime5 Ova naredba može biti posebno interesantna kada želimo unutar for petlje sačuvati više grafika. a onda dobija naredbu eval(['print slll' int2str(i)]).ps i slll4. što znači: izvrši sadržaj vektora print sllli za i=1. Ovo naredba biće opisana u jedanaestom poglavlju. što je isto kao i niz naredbi print slll1.y) eval(['print slll' int2str(i)]) end U prethodnom primjeru računar računa i crta stepene funkcije y=xi za i=1. ili učitati sa eval(['load y' int2str(i)]).ps.^i.ps. 2. slll3. print slll3. » r=int2str(5). » s='ime'. Probajte » dir *.ps. kada unutar petlje dobijamo n grafika i želimo ih sačuvati pod imenima slll1. onda to možemo učiniti sa: » x=-2:.. slll2. sllln. 144 .1:2. naredbom eval(['save y' int2str(i)]). print slll4.Programiranje i M-fajlovi » eval(s(2. slll2..:)) z= 7 Naredba int2str(j) pretvara cjelobrojnu vrijednost j u tekstualnu varijablu i tretira je kao tekst. 4. 3.ps. plot(x. slll3.ps. pri čemu imamo automatsko dodavanje broja i kao dijela teksta u imenu fajla.

ps. Funkcija strrep(a. npr. dok funkcija isspace(a) vraća jedinicu za one karaktere koji su bjeline (space-ovi ili tab-ovi) a za ostale vraća nulu.'deseti') ans = [] Naredba upper(a) pretvara sva slova u stringu u velika. sl12.b) koja vraća jedinicu ako su stringovi a i b isti. naredbom eval(['print sl' int2str(i) int2str(j)]).b..'a') ans = 3 17 28 nalazi se pozicija u stringu recenica sve pozicije gdje se pojavljuje slovo a. » strrep(a. Stringove možemo porediti naredbom strcmp(a. naredbama » recenica='dvadeset deveti avgust hiljadu devetsto devedeset prve godine'. sl21. » findstr(recenica.c) u stringu a mijenja string b sa stringom c. a nulu u suprotnom. Naredba findstr('a'. Npr.MATLAB for Windows Moguće je koristiti i višestruke petlje i višestruke indekse. pozicije u kojima se u istom stringu pojavljuje string 'dev' se dobijaju naredbom » findstr(recenica. sl11. itd.'dev') ans = 10 32 41 Ako stringa b nema u stringu a rezultat je prazna matrica » findstr(recenica.ps. Posmatrajmo sljedeći primjer » a='Niz karaktera koji se mjenja'. Npr.'b') nalazi sve pozicije u stringu a gdje se pojavljuje string b.'koji'. » A=upper(a) A= STRING » AA=lower(a) AA = string Funkcija isletter(a) vraća nulu za one karaktere stringa koji nijesu slova a za slova vraća jedinicu. a naredba lower(a) pretvara slova u mala: » a='sTRIng'.ps.'promjenljiv') 145 .

% definisanje vektora s=[1 4 2 4 2 4 2 . » s='sin' » feval(s. tako funkcija num2str(x) konvertuje broj x u string koji ima iste elemente.. Takva je funkcija feval(s. Naredbom strtok(a.5.m čiji je sadržaj: function in=simp(f. 5. U MATLAB-u postoje i funkcije koje konvertuju podatke.[-1:.x) kojom se izračunava funkcija pod imenom s (ugra|ena ili definisana function fajlom) za vrijednosti x. tako naredbom » strtok(a.'r') ans = Niz ka iz niza a odsjeca se niz do prvog pojavljivanja slova r.b) odsjeca u stringu a onaj dio do pozicije gdje se pojavljuje string b.1 Napraviti funkcijski potprogram za izračunavanje integrala po Simpsonovom pravilu.5 FUNKCIJE ^IJI SU ARGUMENTI DRUGE FUNKCIJE U MATLAB-u postoje funkcije čiji argumenti mogu biti druge funkcije.tac) % % Racunanje integrala funkcije f u granicama od a do b sa tacnoscu % tac. Snimimo function fajl simp. u granicama od a do b sa tačnošću tac. n=4. end while abs(in-is)>tac is=in. Ako nije data tacnost uzeto je da je tac=0. 2 4 1] 146 .a..001 in=10^99.Programiranje i M-fajlovi ans = Niz karaktera promjenljiv se mjenja Dakle u nizu a mijenjamo riječ koji sa riječi promjenljiv.b. n=2*n. is=0. if nargin==3 tac=0.5:1]) Primjer 5.001.

» simp(f.pi.a.b.5.00001. h=(b-a)/n.1. postiže se sa » simp(f. Primjer 5.-1.*sin(x). sa tačnošću 0. U MATLAB-u postoje dvije ugra|ene funkcije za izračunavanje odre|enog integrala: I= ∫ f ( x)dx a b u obliku I=quad(f.0. Potrebno je definisati funkciju f(x)=xsin(x). U ovom primjeru treba reći da bi korektnije bilo definisati relativnu umjesto apsolutne greške.tac. gdje je f naziv funkcije. sa tačnošću 0.001. Primjer 5.2 Izračunati integral funkcije f(x)=sin(x) od 0 do π.5. Tačnost je automatski 0.2*ones(1.korak).00001).000001.b. To ćemo učiniti prosto naredbom » f='x.000001.MATLAB for Windows s1=[4*ones(1. in=sum(y. b gornja granica. a donja granica. function s=sx(x) 147 . Zadata tačnost. 0. s=[1 s1(:)' 4 1]. » quad('sin'.*cos(x)'.000001) Napominjemo da se na ovaj način mogu računati jedino integrali ugra|enih funkcija ili funkcija definisanih m-fajlovima. tac željena tačnost i korak korak integracije (koji se može izostaviti i tada se uzima neka default vrijednost).0.a.tac. npr.3 Izračunati integral funkcije f(x)=xsin(x) od 0 do π. Razlika izme|u ova dva algoritma je u brzini konvergencije koja je kod funkcije quad8 veća ali je istovremeno složenost izračunavanja povećana.1).n/2-1)]. korak) ili I=quad8(f. x=a:h:b.*s)*h/3. koju ćemo zvati sx(x). end end Izračunajmo sada integral funkcije f(x)=xsin(x)cos(x) u intervalu od -1 do 1.1. Naredba while bi u tom slučaju bila: while abs((in-is)/in)>tac.0. y=eval(f).n/2-1).

end Poslije izlaska iz editora.001) ans = -0. Primjer 5.pi. U funkcijskom fajlu ff.grid i sa slike vidimo da se jedna nula nalazi u blizini tačke -1.001) Nulu funkcije definisane m fajlom ili ugra|ene funkcije.ff(x)).5 0 0.5 -1 -0. Na|imo nule oko ovih tačaka sa tačnošću 0.0.4459 9 8 7 6 5 4 3 2 1 0 -2 -1.0.001) ans = -1.-0.-1. » plot(x. integral računamo sa: » quad('sx'. » fzero('ff'.5.5 a druga u okolini tačke -0.5. end Nacrtajmo ovu funkciju » x=-2:.001.tac). možemo dobiti sa fzero(f.5 1 1.0.m definišimo funkciju: function y=ff(x) y=x.3 Grafik funkcije y=x +x2-2x-1 3 148 .0.5 2 Slika 5.^2-2*x-1.a. u okolini tačke x=a.4 Naći nule funkcije y=x3+x2-2x-1 za x<0.5.^3+x.*sin(x).01:2.Programiranje i M-fajlovi s=x.5.8017 » fzero('ff'.

5. Za to služe funkcije ode23 (metode nižeg reda) i ode45 (metode višeg reda).kon).y) yp=cos(t)-t.tol.y) 149 . dok je kon kontrolni broj (ako je različit od nule. » plot(t. Dakle pomoću ovih funkcija riješavamo diferencijalnu jednačinu: y'=f(y. iteracije se ne ispisuju). » plot(t. Naredba MATLAB-a kojom se rješavaju diferencijalne jednačine je [t.-1.5. (Očigledno je riješenje ove diferencijalne jednačine y=tcos(t)).1). Izlaz t i y predstavljaju nezavisnu i zavisnu promjenljivu.6 Riješiti diferencijalnu jednačinu y'=-yt za -1≤t≤3 i ako je y0=0.t) mora biti implementirana u .y) Primjer 5.yo.to.y) yp=-y.mogu se izostaviti.5 Riješiti diferencijalnu jednačinu y'=cos(t)-tsin(t) za 0≤t≤3 i ako je y0=1. Funkcija f(y.MATLAB for Windows Tako|e u MATLAB-u postoje veoma korisne funkcije za rješavanje diferencijalnih jednačina metodom Runge-Kutta.y) Naredba ode23 može da posluži za rješavanje sistema od dvije jednačine sa dvije ili više nepoznatih. Postoje i adekvatne funkcije ode23p i ode45p koje pored izračunavanja rješenja diferencijalne jednačine vrši i iscrtavanje grafika.0. gdje je f funkcija.tk. Prvo se u fajlu sss snimi funkcija cos(t)-tsin(t) pa nakon snimanja ovog fajla funkcijom ode23 riješimo diferencijalnu jednačinu.t) gdje je t nezavisna promjenljiva.m fajlu. Posljednja dva argumenta su opcioni .*t. Primjer 5. end » [t.y]=ode23('f'.3.5.3. function yp=sss(t. to i tk granice u kojima se traži rješenje. yo je početna vrijednost u tački to.*sin(t). function yp=sss(t. end » [t. tol je greška.y]=ode23('sss'.7 Riješiti sistem diferencijalnih jednačina: y1'=y2+sqrt(y1) i y2'=-y1+sin(y1/2) za početne vrijednosti y10=0 i y20=1 za -2≤t≤2.0).y]=ode23('sss'. Primjer 5. function yp=sss(t.

[0 4*pi].y) Veoma je interesantna funkcija fmin('s'. Naredbom » fplot('sin'. » plot(t.Programiranje i M-fajlovi yp(1)=y(2)+sqrt(y(1)).[-2*pi 2*pi -2*pi 2*pi]) 150 .y]=ode23('sss'.-2. Na slici 5.xk) kojom se traži minimum funkcije s u intervalu od xo do xk.[-2*pi 2*pi -2*pi 2*pi].0 .5774 Pored ove funkcije postoji i funkcija fimns koja služi za traženje minimuma funkcije više promjenljivih. yp(2)=-y(1)-sin(y(1)/2).[0 4*pi]. Naredba » fplot('abs(exp(-j*x*(0:9))*ones(10. U MATLAB-u postoji funkcija fplot koja služi za crtanje funkcije u nekom zadatom intervalu.sin(x).'-*') Naredbom » fplot('[tan(x). dok se naredbom » fplot('sin(x)'. Na primjer za funkciju function y=fff(x) y=x.[0 2*pi]. Ovu funkciju ćemo objasniti kroz sljedeće primjere.4.2.4) ans = 0.[0 4*pi]) iscrtava se funkcija sin(x) u intervalu 0≤x≤4π. Naredbom » fplot('[sin(x).'-+') prikazuje ista funkcija u istom intervalu pomoću markera -+. Ove dvije funkcije imaju mnoštvo opcija sa kojim se možete upoznati u helpu.b) » fplot('tan'. end » [t.[0 1]).cos(x)]'. Funkcija y=tan(x) u granicama -2π≤x≤2π i -2π≤y≤2π se crta naredbom (slika 5. end na|imo minimum u intervalu 0≤x≤4 » fmin('fff'.4a prikazana je ova funkcija.'-o') crta apsolutnu vrijednost sume reda e-jxn za n od 0 do 9 u granicama 0≤x≤2π sa markerima '-o'.1))'.xo.^3-x-1.cos(x)]'.'-x') prikazuju se funkcije sin(x) i cos(x) u intervalu 0≤x≤4π sa markerima '-x'.

08 0.MATLAB for Windows se u granicama -2π≤x≤2π i -2π≤y≤2π.8 0. Na slikama 5. [0.6 -0. [-4 4 -10 10]) i primijetimo da ova funkcija ima singularitet u x=-2 (vertikalnu asimptotu) i u x=1 (postoji granična vrijednost).1e-3) Nacrtajmo i funkciju -(x2-2x+1)/(x2+x-2) u granicama -4≤x≤4 i -10≤y≤10 » fplot('-(x.4 -0.06 0. crtaju funkcije sin(x).4f prikazane su funkcije -(x2-2x+1)/(x2-x-2) i -(x2-2x+1)/(x2-1) » fplot('-(x.6 0.4e i 5. [-4 4 -10 10]) 10 9 8 7 6 5 4 3 2 1 0 0 -6 1 2 3 4 5 6 -6 -4 -2 0 2 4 6 -2 -4 0 4 2 6 a) 6 4 2 0 -2 -4 -6 -6 -4 -2 0 2 4 6 1 0.2 0 -0.^2-2*x+1).^2+x-2)'.8 -1 0.^2-2*x+1).4d) » fplot('sin(1 .^2-x-2)'./(x.04 b) 0. [-4 4 -10 10]) » fplot('-(x.01≤x≤0.^2-1)'.1 sa tačnošću 10-3 se crta naredbom (slika 5.4c Funkcija 1/sin(x) u granicama 0.01 0.2 -0./ x)'.4 0.1 c) d) 151 . cos(x) i tan(x) što je prikazano na slici 5.1].^2-2*x+1)./(x.02 0./(x.

Korišćenje funkcije fplot f) 152 .4.Programiranje i M-fajlovi 10 8 6 4 2 0 -2 -4 -6 -8 -10 -4 -3 -2 -1 0 1 2 3 4 10 8 6 4 2 0 -2 -4 -6 -8 -10 -4 -3 -2 -1 0 1 2 3 4 e) Slika 5.

Posebno je važno upravljanje pojedinim grafičkim objektima koji se kreiraju uobičajenim grafičkim funkcijama. koordinatnog sistema. kolorne matrice podataka. teksta. Na kraju poglavlja dat je kompleksan primjer u kom je obuhvaćen rad sa najvažnijim grafičkim objektima i njihovim osobinama. 6. Osnovni ekran je tako|e grafički objekat kojeg karakteriše identifikator 0.1 OSNOVNI EKRAN (ROOT) Svakom grafičkom objektu u MATLAB-u dodijeljen je numerički identifikator (handle) koji jedinstveno odre|uje objekat i pomoću kojeg se sa objektom rukuje-upravlja. Napomenimo da numerički identifikatori pojedinih objekata koji su dati u knjizi mogu uzimati vrijednosti koje se ne poklapaju sa onim koje su date kao rezultat. popunjenih poligona. grafičkog prozora. ulazno izlaznog menija i grafičkih kontrola. Tekuće osobine osnovnog ekrana se mogu dobiti naredbom: » get(0) gdje su osobine osnovnog ekrana: CurrentFigure = [1] Diary = off DiaryFile = diary Echo = off Format = short FormatSpacing = loose PointerLocation = [547 3] PointerWindow = [0] ScreenDepth = [4] 153 . U sklopu ovog poglavlja vodilo se računa o grafičkim komandama koje prilikom rada kreiraju jedan odnosno više objekata. linija. površina.MATLAB for Windows glava šesta GRAFIČKI OBJEKTI U ovom poglavlju će biti objašnjene funkcije za kontrolu pojedinih elemenata grafičkog okruženja MATLAB-a: osnovnog ekrana.

Definiše format zapisivanja matrica. Moguće vrijednosti su 'pixels' .Grafički objekti ScreenSize = [1 1 640 480] Units = pixels ButtonDownFcn = Children = [1] Clipping = on Interruptible = no Parent = [] Type = root UserData = [] Visible = on Objasnimo neke od osobina osnovnog prozora: CurrentFigure Trenutno aktivni grafički prozor. 'short'. Promjena tekućeg grafičkog prozora se može postići sa gcf=broj. default vrijednost koja odgovara naredbi format short. Jedinica u kojoj se mjeri grafički prozor. Ako je to osnovni prozor vrijednost ove osobine je 0. 154 Diary DiaryFile Echo Format FormatSpacing PointerLocation PointerWindow ScreenSize Units . Moguće vrijednosti ove osobine su 'compact' i 'loose' koje odgovaraju naredbama format compact i format loose. Pokazuje stanje naredbe echo. Vektor sa četiri elementa koji determinišu početne i krajnje tačke grafičkog prozora. Ova osobina se može dobiti i sa gcf. Veličina ekrana. a ako jeste 'on'. Default vrijednost osobine je 'diary'.ekranska tačka. Da li je uključeno kreiranje dnevnika. vrijednost ove osobine je 'off'. Grafički prozori koji se otvaraju redom dobijaju brojeve od jedan pa nadalje. Fajl u kom se smješta dnevnik. Koji je način prikazivanja brojeva uključen. U kom se prozoru trenutno nalazi pokazivač miša. Npr. Ako nije. Pozicija pokazivača miša.

Naredba get omogućava da se dobiju i pojedine osobine grafičkog prozora. Tako se ne može promijeniti vrijednost osobine ScreenSize.txt Potpuno su adekvatne i naredbe » set(0.'Diary'.[1 1 234 432]) ??? Error using ==> set Read-only properties can't be modified. naredbi » figure(2). » get(0. Postoji 155 . ScreenSize možemo pisati bez razlike i malim i velikim slovima.2) adekvatna je naredba » gcf=2 odnosno. Parent Numerički identifikator roditelja tekućeg grafičkog objekta.'DiaryFile'. 'centimeters' centimetri i 'points' . 'inches' . donji lijevi ugao grafičkog prozora (0. Za postavljanje osobina koristi se naredba set.'CurrentFigure'.54cm). Npr. Children Vektor numeričkih identifikatora grafičkih prozora. Napomenimo da nazive osobina npr.normalizovane vrijednosti.1/72 inča. npr. Osnovni ekran nema roditelja pa je vrijednost ove osobine prazna matrica []. » set(0.MATLAB for Windows 'normalized' .1).'Diary') daje sadržaj osobine Diary.'long') » format long Postoji tako|e i niz osobina koje se mogu samo pročitati i kod kojih pokušaj mijenjanja prouzrokuje grešku. naredbi » set(0.inči (1inč=2.'Format'.txt') adekvatna je naredba » diary dnevnik.'dnevnik.'ScreenSize'.'on'.0) a gornji desni (1. » set(0. U ovom pregledu su obra|ene osobine koje se mogu mijenjati kako naredbom set tako i nekom od već definisanih naredbi.

'Color'. 6.'w') daje bijelu pozadinu. Numerički identifikator trenutnog koordinantnog sistema koji se za tekući grafički prozor može dobiti naredbom gca. Ako se ne navodi broj grafičkog prozora. npr: Name NumberTitle .3 0.8 1]) Colormap CurrentAxes CurrentObject MinColormap MenuBar Veličina kolorne mape. Definiše prikazivanje rednog broja figure u naslovu grafičkog prozora. 156 Boja pozadine. Edit. Ime grafika.2 GRAFI^KI PROZOR (FIGURE) Grafički prozor se kreira sa naredbom figure. sa naredbom figure kreiraju se prozori počev od 1 pa redom nadalje.[0. ili se boja pozadine definiše vektorom od tri broja izme|u 0 i 1 po RGB pravilu » set(1.Grafički objekti čitav niz osobina grafičkih objekata kojima se može prići samo naredbom set i sa njima ćemo se još srijetati. Definiše da li će grafički prozor imati standardan Windows meni sa opcijama File. Minimalan broj boja koje predstavljaju kolornu mapu.'Color'. Identifikator tekućeg grafičkog objekta. Sa nekim specifičnostima ove naredbe smo se već srijetali u okviru trećeg poglavlja. Prvi grafički prozor se može kreirati tako što se neka funkcija grafički prikaže ili se prazan grafički prozor dobija naredbom figure(1). Osobine ovakvog prozora se dobijaju naredbom » get(1) Color » set(1. (Obično 64x3). a ako je 'off' ne prikazuje se redni broj. Ako je 'on' prikazan je broj. Naredbom set(0) možemo da vidimo moguće vrijednosti koje mogu uzimati pojedine osobine. Može se zadati karakterom po pravilima iz naredbe plot. Window i Help (vrijednost osobine 'figure') ili bez ovih funkcija ('none').

'Vel2'.'off') » figure('Color'.5 5.'inches'.6 0.'Pixels'.21x29.'Prozor2'. Primjer 6. PaperType Tip papira.'NumberTitle'.1 Kreirajmo dva grafička prozora imena Prozor2 sa i bez broja prozora sa različitim bojama pozadine.'Name'. Primjer 6.[45 45 120 210]) » figure('Name'. Pokazivač miša je u obliku časovnika kada je računar zauzet nekom operacijom pa se na ovaj način onemogućava zadavanje operacija mišem.4]) » figure('Name'.[2.'Units'. itd. Mogu biti 'usletter' .2. Strijelica je sa 'arrow' a časovnik 'watch'. Position Pozicija grafičkog prozora na ekranu (vektor sa četiri elementa).'Units'.2. PaperOrintation Orijentacija papira.'Name'. » figure('Color'. Units Jedinice u kojima se mjeri veličina papira.'Position'. PaperPosition Pozicija papira (vektor sa četiri elementa) .'r'.5 2.3 0.'Vel3'. Vrijednosti ove osobine mogu biti: 'add' dodaje grafik u tekući grafički prozor. 'replace' stari grafik mijenja sa novim.[0. b5 itd. Pointer Oznaka pokazivača miša. Ova se osobina može podešavati naredbom orient.'Position'.8x11 1/2 inča.MATLAB for Windows PaperType Tip papira na koji se može štampati grafički objekat.to jest margine na štampajućem papiru. 'a4' .2 0.[0. PaperUnits Jedinice u kojima se mjeri veličina papira koja odgovara grafičkom prozoru.2 Formirati grafičke prozore različitih veličina sa različitim mjernim jedinicama.'Position'.8 1].'Units'. može biti uspravljena 'portrait' ili položena 'landscape'.'Vel4'.[100 100 400 300]) 157 . a moguće je uzeti i više drugih tipova me|u kojima a4.'Position'. PaperSize Veličina papira (vektor sa dva elementa).'Units'. » figure('Name'.'Points'. 'new' otvara novi grafički prozor i u njemu prikazuje novi grafik.5 5.'Prozor2') NextPlot Osobina definiše gdje će biti prikazan naredni grafik.'Normalized'.7cm.'Vel1'.2 0.5]) » figure('Name'. Predefinisan je usletter.

značajne naredbe za upravljanje osama su cla i gca. naredbom » delete(gca) brišu se tekuće ose. dodijeliti nekoj promjenljivoj vrijednost numeričkog identifikatora koji opisuje te ose » a=axes('Box'.. Za brisanje grafičkih objekata. objekat iz kojeg je kreiran grafički prozor.vrijednost1. Naredba gca daje numerički identifikator koji je priključen tekućim osama.Grafički objekti Type Visible Children Parent Tip grafičkog objekta (ovdje 'figure').. Naredbom delete file. Osama se može upravljati naredbom axes.'on'. tako da naredba » delete(gcf) briše tekući grafički prozor. Objekti kreirani unutar grafičkog prozora. Naredba cla briše sve objekte unutar tekućih osa.6]) a= 76..2 0.) Osobine tekućeg grafika se mogu dobiti sa » get(gca) Moguće je istovremeno sa kreiranjem koordinantog sistema.'Position'. briše se fajl sa diska. 6.osobina2. Osobine tekućih osa se mogu ravnopravno postavljati sa set(gca. Tako|e.2 0.. dok se naredbom cla reset brišu svi objekti unutar trenutnih osa i vraćaju osobine grafičkog prozora na default predefinisane.) axes(osobina1..vrijednost2. Naime delete(a) briše grafički objekat kome je dodijeljen numerički identifikator a. Ako je 'on' prozor je vidljiv odnosno 'off' ako je nevidljiv.6 0. Npr.0004 Naredbom 158 .osobina1.vrijednost2. Roditelj.osobina2. Ista naredba se može primijeniti na bilo koji grafički objekat. pa i osa može da posluži naredba delete.[0.. U tom pogledu ova je naredba potpuno analogna DOS naredbi DEL.vrijednost1.3 KONTROLA OSA Veoma važan grafički objekat je koordinantni sistem sa osama.

y) » set(a. Boja grafika u kome se iscrtavaju koordinante ose.2 Grafik iz prethodnog zadatka nacrtati na zelenoj pozadini.'color'. kojom se definiše redosljed boja kojim će se isrtavati linije na ekranu. 'helvetica'. Naredbom axes..pointima.'off') Clim Color » set(a. Veličina fonta u tačkama . bez argumenata. Ako se ništa ne zada. Predefinisano je [-Nan -Nan]. crta se prazan koordinantni sistem. Npr.'g') ColorOrder Vektor sa dva elementa koji definišu predstavljanje u pseudo bojama. » x=-4:. Font u kojem će se ispisivati tekst na osama. » plot(x. » y=x. prvi definiše odnos dužina vertikale sa horizontalnom osom a drugi odnos jedinica u kojima se mjere koordinante ose. Najvažnije osobine grafičkog objekta su: AspectRatio Vektor sa dva elementa.3.3. Box Primjer 6. Vrijednostima pojedinih osobina se u tom slučaju dodjeljuju neke predefinisane vrijednosti.1:4. itd. U ovom slučaju koordinantni sistem zauzima čitav grafički prozor. Ova se veličina može postavljati naredbom caxis.1 Nacrtati krivu y=x3-2x2 u intervalu -4≤x≤4 i onemogućiti iscrtavanje pravougaonika oko osa. Prekriženi font.^2. Primjer 6. Pravougaonik oko tekućih osa. 159 FontAngle FontName FontSize FontStrikeThrough . Ako je 'on' crta se pravougaonik oko osa a sa 'off' se ne crta.. 'w'. pretpostavljaju se prvih šest boja iz MATLAB palete.^3-2*x. Moguće vrijednosti 'on' ili 'off'.'box'.MATLAB for Windows » axes(a) čini se tekućim koordinantni sistem čiji je identifikator a. Ove se osobine mogu postavljati kao u naredbi plot sa 'r'. Ugao pod kojim se prikazuje tekst. Matrica dimenzija m x 3.

Grafički objekti FontWeight FontUnderline FontWeight Stil fonta. Predefinisana vrijednost je 'normal', a moguće vrijednosti su 'light' (posvjetljena slova), 'bold', (podebljana slova). Podvučeni font. Moguće vrijednosti 'on' ili 'off'. Debljina fonta. Moguće vrijednosti 'normal' i 'bold'.

Primjer 6.3.3 Na prethodni grafik nanijeti font Swiss veličine 30 prekrižen. » set(a,'FontName','Swiss','FontSize',30,'FontStrikeThrough','on') GridLineStyle Odre|uje oblik linija koje služe za mrežu. Moguće vrijednosti '-', '--', '-.', ':' i '.'. Ova se mreža iscrtava naredbom grid. LineWidth Debljina linije kojom se iscrtavaju ose. Primjer 6.3.4 Prikazati na prethodnom grafiku mrežu u obliku pune linije. Neka debljina osa bude 2. » set(a,'GridLineStyle','-','LineWidth',2) » grid NextPlot Definiše poziciju iscrtavanja novog grafika. 'new' grafik se crta u novom koordinantnom sistemu, 'add' - dodaje se u postojeći, 'replace' - mijenja tekući grafik u koordinantnom sistemu. Position Vektor sa četiri elementa koji definišu poziciju koordinantnog sistema na ekranu. TickDir Pozicija crtica kojim se označavaju pojedine vrijednosti na koordinatnim osama. Predefinisano je 'in' (crtice orjentisane unutar grafika) i 'out' (crtice orjentisane van grafika). TickLength Dužina crtice kojom se označavaju pojedine vrijednosti na koordinantnim osama. Title Naslov prozora. Ovo je tekstualni objekat čiji se numerički identifikator dobija naredbom » get(gca,'Title') Osobine ovog objekta se dobijaju naredbom » get(get(gca,'Title')) dok se osobine postavljaju naredbom 160

MATLAB for Windows » set(get(gca,'Title'),'Osobina1','Vrijednost1',...) Tekstualni objekti su i labele koordinatnih osa - osobina XLabel, YLabel i ZLabel. Units View Veličine u kojima se mjere veličine koordinatnih osa. Moguće jedinice su 'pixels', 'normalized', 'inches', 'centimiters' i 'points'. Vektor sa dva elementa koji služi za preslikavanje 3-D grafika u 2-D zonu. Može se postavljati naredbom view, i vezan je za grafike tipa 'mesh', 'watterfall' i 'surf'. Za definisanje x-ose se koriste naredbe: XColor XDir XGrid XScale XTick XTickLabels Boja x-ose. Orjentacije x-ose. Moguće vrijednosti su 'normal' x-osa orjentisan u pravcu porasta vrijednosti x i 'reverse' suprotno. Može imati vrijednosti 'on' i 'off'. Ako je 'on' iscrtava se mreža normalna na x-osu. Definiše način skaliranja x-ose. Moguće vrijednosti su 'linear' i 'log'. Markeri koji se nalaze na nekim tačkama grafika. Definiše poziciju labele na x-osi gdje postoji XTick.

Primjer 6.3.5 Na grafik iz prethodnih zadataka nanijeti oznake na x-osi a, b, i c. Ujedno neka boja x-ose bude plava. » set(a,'XTickLabels',['a' 'b' 'c']','XColor','b') XTickaLabelMode Moguće vrijednosti 'manual' - ručno postavljanje labela, 'auto' - automatsko postavljanje labela. XLim Vektor sa dva elementa od kojih prvi definiše donju granicu a drugi gornju granicu x-ose. Ova se osobina može postavljati i naredbom axis. Iste osobine kao za x-osu postoje i za druge dvije koordinantne ose. Ove se osobine razlikuju samo po prvom slovu imena. Children Numerički identifikatori svih objekata kreiranih koordinatnih osa.

161

Grafički objekti Primjer 6.3.6 Unutar osa nacrtati funkcije y=x2 i y=2x+4 i naći identifikatore ovih objekata. » a=axes; » x=-4:0.1:4; » plot(x,x.^2,x,2*x+4) » get(a,'Children') ans = 62.0001 61.0001 Parent Visible Numerički identifikator grafičkog prozora u kom su se kreirale ose. Definiše vidljivost osa.

Primjer 6.3.7 Učiniti nevidljivim ose date numeričkim identifikatorom a iz prethodnog zadatka. » set(a,'Visible','off')

6.4. GRAFI^KI OBJEKTI OD KOJIH SE SASTOJI GRAFIK
Osnovni objekti od kojih se sastoji grafik su: linija (line), površina (surface), kolorna slika matrice (image), popunjeni poligon (patch) i tekstualni objekti (text). Ovi grafički objekti se mogu dobiti naredbama line, patch, surface i image. Me|utim nama su interesantniji grafički objekti koji nastaju crtanjem nekih uobičajenih grafika.

6.4.1 LINIJA - LINE
Grafički objekti tipa linije se dobijaju kao rezultat slijedećih naredbi: plot, polar, semilogx, semilogy, loglog, stem, compass, plot3, contour, itd... Svim ovim naredbama, osim contour, dobija se onoliko objekata koliko se funkcija na jednom grafiku crta. Naredbom contour dobija se onoliko objekata koliko je izolinija na ekranu. Primjer 6.4.1 Odrediti numeričke identifikator prilikom crtanja jedne funkcije naredbom plot i prilikom crtanja dvije funkcije naredbom plot. Nacrtajmo prvo funkciju y=sin(x2). 162

MATLAB for Windows » x=-1:0.02:1; » a=plot(x,sin(x.^2)) Numerički identifikator linije grafika je a= 62.0002 Odredimo numeričke identifikatore funkcija nacrtanih na jednom grafiku y=sin(x2) i y=sin(x2)/(x+3). » b=plot(x,sin(x.^2),'r',x,sin(x.^2)./(x+3)) b= 69.0004 70.0004 Naredbom contour dobija se više objekata tipa linija. Primjer 6.4.2 Nacrtati izodijagram z=sin(x2+y2-2xy) u granicama -2≤x≤2 i -2≤y≤2. Odrediti numerički identifikator svih linija u grafiku. » [x,y]=meshdom(-2:.1:2,-2:.1:2); » z=sin(x.^2+y.^2-2*x.*y); » [a,b]=contour(z); Numerički identifikatori izolinija smješteni su u vektoru b »b b= 74.0002 75.0001 76.0001 77.0001 78.0001 79.0001 80.0001 81.0001 82.0001 Naredbom get(a(1)) dobijaju se osobine objekta tipa linija. Naredbama meshc i surfc, pored više objekata tipa linija, stvara se jedan objekat koji predstavlja površinu i tipa je surface. 163

Grafički objekti Primjer 6.4.3 Nacrtati meshc dijagram promjenljive z iz prethodnog primjera i odrediti tip ovako kreiranih grafičkih objekata. » a=meshc(z) a= 75.0002 80.0002 81.0002 82.0002 83.0002 84.0002 85.0002 86.0002 87.0001 88.0001 » get(a(1),'Type') ans = surface » get(a(2),'Type') ans = line Prvi kreirani grafički objekat je tipa površine (surface) dok su ostali tipa linije (line). Neke od značajnijih osobina objekta tipa linije (line) su: Color Boja linije. LineStyle Oblik linije. LineWidth Debljina linije. Xdata Podaci po x-osi. Slične su osobine Ydata i Zdata (ova posljednja kod naredbe plot3). Parent Roditeljski koordinatni sistem. Type Za ovaj grafički objekat 'line'. Primjer 6.4.4 Nacrtati funkciju y=sin(x) za -2π≤x≤2π i podesiti širinu linije na 2 i neka je grafik predstavljen bojom [0.3 0.8 1]. » x=-pi:0.02:pi; » a=plot(x,sin(x)); » set(a,'LineWidth',2,'Color',[0.3 0.8 1])

6.4.2 POPUNJENI POLIGON - PATCH
164

8].[1 0.^2+eps).4. Funkcija waterfall daje više objekata tipa patch. Tako|e se ovaj tip grafičkog objekta dobija kao prvi objekat pri naredbama meshc i surfc.-2:.^2+y. » x=1:20.^2+eps).'FaceColor'. Definisati zatim boju površina izme|u linija kao crvenu 'r' i boju linija kao [0 1 0.MATLAB for Windows Popunjeni poligon se dobija naredbama fill i fill3. 'both' mreža po obje koordinate. Primjer 6. Debljina granične linije. MeshStyle Mreža kojom se isacrtavaju mesh dijagrami. Ove vrijednosti imaju potpuno isti smisao kao u naredbi shading. Važne osobine ovih grafika su: EdgeColor FaceColor LineWidth Type Boja granične linije.y]=meshdom(-2:. » [x.6 Nacrtati surf dijagram z=sin(x2+y2+eps)/(x2+y2+eps) u granicama -2≤x.4.sqrt(x). Parent i ostale.8].1:2. Boja površi. 'interp' ili se može precizirati vrijednost boje kojom se linije iscrtavaju. Children. Naredbe Xdata.^2+y.3 POVR[INA .5) 6. EdgeColor Boja linija. Za ovaj grafički objekat tip je 'patch'.'EdgeColor'.0001 » set(a. Zdata. 'row' samo po redovima i 'column' samo po kolonama. Može imati i vrijednosti 'none'. 'flat'.[0 0.'LineWidth'.4./(x. Zatim podesiti boje površine i granice. » a=fill(x. analogne su kao kod ostalih grafičkih objekata. Ydata.y≤2.'r') a= 62. pcolor. » a=surf(z) 165 .3 0. FaceColor Boja površi unutar granica romba koji čine čvorišta četiri susjedne tačke. a debljinu granice postaviti na 5.1:2).SURFACE Objekat tipa površina (surface) se dobija kao rezultat sljedećih grafičkih komandi: mesh.3 0. Primjer 6.2].5 Nacrtati funkciju y=sqrt(x) kao poligon popunjen crvenom bojom. surf. » z=sin(x.

4 KOLORNA SLIKA MATRICE . čiji se numerički identifikator može dobiti naredbom » get(gca. Ugao rotacije tekstualnog objekta. Pomenimo neke specifične osobine ovog tipa objekata: HorizontalAligment VerticalAligment Rotation Horizontalno poravnavanje. 6.'FontSize'.'r') 6.'Edgecolor'. Zlabel). 'bottom'.'xlabel') dok se osobine tekstualnog objekta dobijaju naredbom » get(get(gca.IMAGE Ovaj tip grafičkog objekta se može kreirati naredbom imagesc.5 TEKSTUALNI OBJEKAT .Grafički objekti » set(a.[0 1 0.2]. 'baseline' i 'middle' (default). Ylabel. Tip ovog objekta je 'text'. Moguće vrijednosti 'top'.1. i tom prilikom može se nekoj promjenljivoj dodijeliti numerički identifikator ovog objekta » a=text(30. surface i patch.'xlabel'). 'right' i 'center'. Xlabel.4.'FontSize') Analogno se mogu postavljati osobine ovakvog objekta sa » set(get(gca.'Naslov grafika') Analogno prethodnom razmatranju.20) 166 . Moguće vrijednost su 'left' (default). Vertikalno poravnavanje. osobine ovog objekta se mogu dobiti naredbom » get(a) Veliki broj osobina tekstualnog objekta je zajednički za ostale objekte.'xlabel'). 'cap'.4. Već je napomenuto da kada se kreiraju ose istovremeno se kreira i više tekstualnih objekata (Title. postoji tako|e niz osobina koje se odnose na font. Tip grafičkog objekta (Type) je image.'Facecolor'. Kod teksualnog objekta. Upravljanje sa ovim grafičkim objektom se obavlja na sličan način kao sa line.30.'xlabel')) odnosno sadržaj osobine FontSize sa » get(get(gca.TEXT Tekstualni objekat se može kreirati naredbom text.

MATLAB for Windows Primjer 6.4.7 Za 0≤x≤1 naredbom plot nacrtati funkciju y=exp(-x2)sin(x2). Nakon toga unijeti xlabel-u sa sadržajem 'Potpis ispod crteža' u plavoj boji i podvučeno. » x=0:0.01:1; » y=exp(-x.^2).*sin(x.^2); » plot(x,y) » set(get(gca,'xlabel'),'String','Potpis ispod crteza','Color','b','FontUnderline','on')

6.5 GRAFI^KE KONTROLE
Naredba je karakteristika tekstualnog okruženja. Grafičko okruženje podrazumjeva interaktivni rad, to jest da se niz operacija, parametara može zadavati klikom miša na odgovarajuće grafičke kontrole. MATLAB tako|e podržava ovu koncepciju. Grafičke kontrole koje se mogu koristiti u MATLAB-u su: frame (površina), text (polje sa tekstom), edit (polje za unos teksta), popupmenu (meni), check (prekidač), radio (prekidač), slider (klizač), pushbutton (taster). Grafičke kontrole se formiraju naredbom uicontrol. Svakoj kontroli se pridružuje numerički identifikator pomoću kojeg se upravlja kontrolom.

6.5.1 FRAME KONTROLA
Frame kontrola se koristi za iscrtavanje površine koja će da nosi ostale kontrole. Ova kontrola sa default osobinama se formira naredbom » a=uicontrol('Style','frame') sa get(a) se dobijaju osobine ove kontrole. Sve osobine kontrola su iste samo što od kontrole do kontrole neke od njih imaju drugačiju namjenu. Osobine ove kontrole se postavljaju naredbom set. Važnije osobine ove kontrole su BackgroundColor Position Style Units Type Boja površine; Vektor sa četiri elementa čiji prvi par pokazuje donji lijevi ugao a drugi par je dimenzija površine; 'frame'; Veličina u kojoj se mjeri veličina površine; 'uicontrol'.

Pored ovih postoji i niz drugih osobina za ovu kontrolu manje značajnih. Primjer 6.5.1 Kreirati grafički prozor i na njemu unijeti frame kontrolu koja će služiti kao nosilac ostalih kontrola. 167

Grafički objekti » PrvaGP=figure('NumberTitle','off','Name','Program za 2-D prikaze',... 'Resize','off','Position',[6 6 628 412]); » Frame1=uicontrol(PrvaGP,'Style','frame','Position',[400 1 340 410],... 'BackgroundColor',[0.62 0.22 0.40]);

6.5.2 TEXT KONTROLA
Text grafička kontrola se formira naredbom » a=uicontrol('Style','text'); Važnije osobine ove kontrole su BackgroundColor Boja pozadine; ForegroundColor Boja slova; HorizontalAlignment Horizontalno poravnavanje; Position Pozicija kontrole; String Tekst koji se upisuje u kontrolu; Style 'text'; Units Mjerna veličina; Type 'uicontrol'; Visible 'on' kontrola je vidljiva, 'off' kontrola je nevidljiva. Primjer 6.5.2 Prethodno definisanu text kontrolu pozicionirati na početnu tačku (200,200) širine i visine 100x20 pointa sa upisanim tekstom 'Proba' u žutoj boji preko pozadine u crvenoj boji. » set(a,'Position',[200 200 100 20],'BackgroundColor',[1 0 0],... 'ForegroundColor',[0 1 1],'String','Proba')

6.5.3 EDIT KONTROLA
Edit kontrola se kreira naredbom » a=uicontrol('Style','edit'); gdje je a numerički identifikator pomoću kojeg se može upravljati kontrolom. Značenje osobina BackgroundColor, ForegroundColor, HorizontalAlignment i Type je isto kao kod text kontrole. Razlika ove i text kontrole se ogleda u činjenici što se tekstualni sadržaj ove kontrole može mijenjati tako što se na nju klikne mišem i unese novi tekst čime se mijenja sadržaj osobine string. Primjer 6.5.3 Kreirajmo edit kontrolu u kojoj piše 'Pocetak' kliknimo na nju i upišimo 'Kraj'. Naredbom get pogledajmo zatim sadržaj String osobine kontrole 168

MATLAB for Windows » a=uicontrol('Style','edit','Position',[120 200 100 20],'String','Pocetak') » get(a,'String') ans = Kraj Veoma važna osobine ove (pa i drugih kontrola) je Callback gdje se upisuje niz naredbi koji će se izvršiti kada se aktivira ova kontrola. Na primjer u edit kontrolu upišimo String1 » String1='Pocetak'; » a=uicontrol('Style','edit','Position',[120 200 100 20],... 'String',String1,'Callback','String1=get(a,''String'')') a= 61.0001 Klikom na kontrolu i upisom stringa mjenja se i promjenljiva String1, npr. neka se prvo upiše 'Nastavak', pa zatim 'Kraj'. » String1 = Nastavak String1 = Kraj Primijetimo da kada se javi potreba da se u okviru Callback koristi apostrof ovdje se mora unijeti dvaput. Ako se sadržaj Callback stringa prostire u više redova uokviruje se srednjim zagradama, redovi počiju apostrofom a završavaju apostofom, pa se postavlja zarez i tri tačke pa novi red. Posljednji red završava se apostrofom. Primjer 6.5.4 Neka se u grafičkom prozoru unesu tekst kontrola sa promjenljivom 'N=' i edit kontrola u kojoj se u početku nalazi string '20'. Neka je početna vrijednost promjenljive N=20 i neka se pomoću edit kontrole upisom brojeva u nju unosi i mijenja sadržaj promjenljive N. » N=20; » uicontrol('Style','text','Position',[120 200 40 20],'String','N=') » a=uicontrol('Style','edit','Position',[160 200 60 20],... 'String','20','Callback','N=str2num(get(a,''String''))') Unesimo u edit kontrolu vrijednost 234 i pročitajmo sadržaj promjenljive N N= 169

Grafički objekti 234

6.5.4 POPUPMENU KONTROLA
Ova kontrola se koristi za iscrtavanje menija u kojem se bira jedna od ponu|enih opcija. Opcija koja je trenutno izabrana prikazana je u zatvorenom meniju. Sa menijem se radi tako što se klikne na strelicu na dolje i izabere odovarajuća opcija. Osobine BackgroundColor, ForegroundColor, Position, Units, Callback, Type imaju isto značenje kao u dosadašnjim kontrolama. Osobina String definiše sadržaj opcija kontrole dok je Style 'popupmenu'. Primjer 6.5.5 U grafički prozor definisan primjerom 6.5.1 unijeti popupmenu koji ima opcije 'mesh', 'surf', 'waterfall', 'contour', 'meshc', 'surfc', 'interp' i 'flat'. Neka je početna vrijednost promjenljive Grafik=1 (što znači da je izabrana default vrijednost - prva vrijednost u meniju 'mesh'). » Grafik=1; » Menielementi=str2mat('mesh','surf','waterfall','contour',... 'meshc','surfc','interp','flat'); » Popup1=uicontrol(PrvaGP,'Style','popupmenu','String',Menielementi,... 'Position',[435 300 100 20],'Callback','Grafik=get(Popup1,''Value'');'); Otvorite meni i kliknite na 'surf', kako je u promjenljivu Grafik smješten sadržaj Value osobine popupmenija ova promjenljiva uzima vrijednost 2. » Grafik Grafik = 2

6.5.5 RADIO KONTROLA
Ova kontrola je kružnog oblika. Aktivira se klikom na nju a istim postupkom i deaktivira. Kada je kontrola aktivna ima upisan crni krug. Ovakve kontrole se koriste u grupama i obično je samo jedna od njih aktivna. Klik na jednu od ovih kontrola obično izaziva "gašenje" ostalih. Style ove kontrole je 'radio'. Najznačajnija osobina ove kontrole je 'Value' koja ima vrijednost 0 ako prekidač nije uključen i 1 u suprotnom. Primjer 6.5.6 Kreirati u grafičkom prozoru iz prethodnog primjera dvije radio kontrole koje jedna drugu isključuju, ujedno neka klik na prvu kontrolu (koja je u početku uključena) prouzrokuje da promjenljiva SQRT uzme vrijednost 0 a klik na drugu daje SQRT=1. 170

MATLAB for Windows » SQRT=0; » Radio1=uicontrol(PrvaGP,'Style','Radio','Position',... [445 254 15 15],'Value',1,'Callback',... 'set(Radio1,''Value'',1);set(Radio2,''Value'',0);SQRT=0;',... 'Backgroundcolor',[0.8 0.8 0.8]); » Radio2=uicontrol(PrvaGP,'Style','Radio','Position',... [505 254 15 15],'Value',0,'Callback',... 'set(Radio2,''Value'',1);set(Radio1,''Value'',0);SQRT=1;',... 'Backgroundcolor',[0.8 0.8 0.8]);

6.5.6 CHECK KONTROLA
Check kontrola, slično kao radio, predstavlja prekidač. Razlika u odnosu na radio kontrolu je ta što se ova kontrola koristi samostalno i predstavlja jednu opciju sa dvije mogućnosti. Pravougaonog je oblika i kada je kontrola uključena u njoj je upisan znak x. Po načinu rada ova kontrola je slična sa radio kontrolom.

6.5.7 SLIDER KONTROLA
U Windows okruženju veoma često se pojedine naredbe zadaju pomoću klizača. U MATLAB-u klizač je kontrola sa stilom 'slider'. Izgled klizača prikazan je na slici 6.1. Slika 6.1 Klizač kontrola Kvadratić na klizaču predstavlja trenutnu vrijednost neke veličine. Klikom na strelice kvadratić se pomijera u jednom ili drugom pravcu. Klikom na površ klizača oko kvadratića pomjeraj je nešto veći u datom smjeru, a kvadatić se može i prevući do željene pozicije. Osobine koje izdvajaju klizač od ostalih kontrola su Max Min Value maksimalna vrijednost koja se može postići klizačem. Klizač u krajnje desnoj ili gornjoj poziciji. Default vrijednost ove osobine je 1. minimalna vrijednost koja se može postići klizačem. Klizač u krajnje lijevoj ili donjoj poziciji. Default vrijednost 0. vrijednost trenutne pozicije klizača izme|u Min i Max. 171

Nesumnjivo najznačajniji dio ove kontrole predstavlja Callback string.').7 Povezati slider kontrolu sa edit kontrolom iz primjera 6. 6..'Slider'. Oblik ove naredbe je a=uimenu('Label'.5. 'M=fix(get(Slider1. 'String'..6 UIMENU U dosadašnjem radu vidjeli smo da grafički prozor može biti sa standardnim menijem ili bez njega. » PushClose=uicontrol(PrvaGP..'Position'.8]).8 0.'text'.5.'. 'M=str2num(get(Edit1...8 Kreirati pushbutton sa upisanim stringom 'Close' koji dovodi do zatvaranja tekućeg grafičkog prozora.[460 388 145 20]. » M=20.'].''string''. » Tekst1=uicontrol(PrvaGP.) 172 .8].'edit'. 6.'20'. 'min'.'Callback'.'Vrijednost1'.8 0..[550 20 60 30].'Callback'.[427 390 30 15].Grafički objekti Primjer 6. » Slider1=uicontrol(PrvaGP.. Ovaj pushbutton pridružiti prozoru čiji je identifikator PrvaGP.'). Cancel.'Position'.''String'')). 'String'.'Style'.'Osobina1'.4.'Value'.'NaslovOpcije'.'close(gcf)..'NaslovOpcije'....256...'Label'.8 0.'M='.set(Edit1..[405 390 25 15].'Backgroundcolor'.'Osobine'.''String''))).'Background'.'max'.'Style'. Neka se promjena veličine M može obavljati klizačem i edit kontrolom i neka ove dvije kontrole ažuriraju jedna na drugu. 'String'.'Vrijednosti'.. Primjer 6.''Value''.. ['set(Slider1.'pushbutton'.'Style'.5.8 0. ^ak i ako ste relativno neiskusni Windows korisnik sreli ste se sa velikim brojem ovih dugmadi na kojima najčešće piše OK.str2num(get(Edit1.[0.8]).'Position'...[0.8 PUSHBUTTON KONTROLA Pushbutton je taster (dugme) u Windows okruženju čijim se pritiskom odvija neka operacija. Help.8 0.. U okviru jedne opcije menija mogu se formirati podmeniji naredbom b=uimenu(a...'Position'.'Style'.) Numerički identifikator a služi za upravljanje ovom opcijom menija..'Backgroundcolor'.num2str(fix(M))).[0.'Callback'. » Edit1=uicontrol(PrvaGP... Dodatne opcije menija se mogu dodavati naredbom uimenu.5.20.8 0.'Close'. itd...''value'')).0..

» Meni(1)=uimenu(PrvaGP. » Meni(3)=uimenu(Meni(1).'Callback'... Separator je naziv istoimene opcije uimenu-a koja može biti uključena i isključena ('on' ili 'off').'Label'. Funkcija 3 i Izbor funkcije čine grupu i neka je na početku čekirana prva opcije i neka se me|usobno isključuju.'Funkcija&1'. Primjer 6. 3.'Label'.'Label'.'Funkcija3').. 1.'Colormap'). koje se dijele separatorima (linijama). » Meni(4)=uimenu(Meni(1).')..1 Dodati standardnom meniju grafičkog prozora PrvaGP meni Options i u njemu nekoliko podopcija. Uobičajeno sve opcije menija imaju u imenu jedno podvučeno slovo koje služi za brzo startovanje opcije sa tastature.3 Opcije menija Funkcija 1. Važnije osobine menija su: Enable koja ima vrijednost 'on' ako se opcija menija može startovati. Funkcija 2.'Funkcija2'). 'off' ako se opcija ne može startovati.'Label'.2 U prethodnom primjeru podvući različite karaktere koji služe za startovanje opcija sa tastature.'&Options'). U ovom primjeru podvučeni su karakteri O.'Label'. gdje su podopcije Funkcija 1. 2.'Label'.''Checked''.'Funkcija&2'.'Izbor funkcije').'Label'.'Label'.'Label'.'Label'.'on'.MATLAB for Windows gdje je a numerički identifikator menija a b je identifikator opcije tog menija. » Meni(5)=uimenu(Meni(1).'Funkcija&3').''off'').'Label'.'Funkcija&2'). Veoma često se jedan meni dijeli u sekcije. Izbor funkcije i Colormap. 'set(Meni(2:5). Funkcija 2. » Meni(6)=uimenu(Meni(1). I meni opisan identifikatorom b može posjedovati svoje podopcije. Position pozicija u meniju.'&Options').6.'Options').'Callback'. Primjer 6. » Meni(1)=uimenu(PrvaGP.set(Meni(2). Meni(3)=uimenu(Meni(1). I i C.'Funkcija1'). Meni(1)=uimenu(PrvaGP.'Label'.'&Izbor funkcije')..'Label'. » Meni(3)=uimenu(Meni(1).'&Colormap'). » Meni(6)=uimenu(Meni(1). Ovo se podešava osobinom menija Checked koja može imati vrijednosti 'on' i 'off'.''Checked''. 173 . skupine srodnih opcija. » Meni(2)=uimenu(Meni(1).6. Funkcija 3.'Funkcija&1').'Label'.'Label'. » Meni(5)=uimenu(Meni(1).''on''). » Meni(4)=uimenu(Meni(1).'off'.'Checked'. » Meni(2)=uimenu(Meni(1).'Checked'.. Meni(2)=uimenu(Meni(1). Ispred tog slova treba stavljati znak &. Primjer 6.6. Pored pojedinih trenutno aktivnih opcija postavlja se znak čekiranja √.

fajl sa definicijama funkcija (FUNK.y)). Program se sastoji od definicije grafičkog prozora (D2CRTEZ.''Checked''. Meni(6)=uimenu(Meni(1). postavljaju se inicijalne vrijednosti N i M (broja odbiraka po x i y). 6.y≤2π. 'set(Meni(2:5). Pored 2-D crteža paralelno sa stranicama ovog crteža može se crtati funkcije sum(z) i sum(z').7.1 PROGRAM D2CRTEZ. Print .mesh).'&Colormap'.smještanje grafičkog prozora u Clipboard i Close za zatvaranje grafičkog prozora.'Label'.''Checked''.y) a za SQRT=1 crta se z=f1/2(x.M). Dvije radio kontrole se koriste da bi se preciziralo da li se crta funkcija z=f(x.Grafički objekti 'set(Meni(2:5).''off''). Grafik (definiše tip grafičkog prikaza predefinisano Grafik=1 .. Broj 174 .'&Izbor funkcije'.'Callback'.set(Meni(3). U okviru grafičkog prozora može se izabrati oblik 2-D crteža kao i broj odbiraka po x i y osi (M i N).''Checked''.''off'').. Vidimo da i ovaj grafički objekat ima Callback string kojim se može pozvati niz operacija aktiviranjem datog objekta.'off'.'Label'.M).y) ili kvadratni korijen funkcije. U meniju grafičkog prozora dodata je opcija Options u kojoj se bira funkcija koja se crta (tri predefinisane ili sa Izbor funkcije upisom funkcije u otvorenom pomoćnom grafičkom prozoru) i kolorne mape prikaza (Colormap).y) -2π≤x.'Checked'..''off'').set(Meni(5).').''Checked''. Meni(5)=uimenu(Meni(1). 6.M u kojem će se crtati funkcija z=f(x.'Separator'. promjenljiva definiše funkciju koja se crta (vrijednosti od 1 do 3 predefinisane vrijednosti i 4 definiše neku fukciju definisanu od korisnika).''on'').. Paleta je kolorna mapa koja se koristi (predefinisano 'hsv').''on'').'off'.'Label'. U frame-u postoje i tri push dugmeta: Start ..7 INTERAKTIVNI PROGRAM ZA CRTANJE 2-D CRTE@A U ovom programu će biti prezentiran program D2CRTEZ. Podešavanje broja odbiraka se obavlja paralelno pomoću slider i edit kontrole. programa sa definicijom pomoćnog grafičkog prozora (POMOCNI. Izbor da li će ovi crteži biti prikazani se obavlja sa dvije check kontrole.''on'').'). Izbor tipa grafičkog predstavljanja se obavlja pomoću popupmenu kontrole.M Nakon brisanja sadržaja radnog prostora. SQRT (za SQRT=0 crta se funkcija z=f(x.'Funkcija&3'.M) i program u kome se vrši proračun i crtanje funkcije z=f(x.'Callback'.''Checked''.M). i koji predstavlja sublimat primjera iz ove glave. 'set(Meni(2:5).'on'). Meni(4)=uimenu(Meni(1).y) (CRTANJE.'Checked'..za početak crtanja grafika.set(Meni(4).').''Checked''.

8 0.'20'.2]).. 'M=fix(get(Slider1.'Backgroundcolor'.'edit'. NovaFunkcija predstavlja od korisnika definisanu funkciju clear all.MATLAB for Windows promjenljiva u kojoj se smješta broj iscrtavanja funkcija.'Callback'.[400 1 340 410].'Position'.'Slider'.'off'.[0.40]).''Value''. ['set(Slider1.'Pointer'.^2-y. Funkcija=1.8])..'watch'.62 0.[0 0 0.8])..'edit'.[405 390 25 15].8 0.[460 348 145 20]. Broj=0..'off'...5.. Slider1=uicontrol(PrvaGP.7 Tekst1=uicontrol(PrvaGP. Edit1=uicontrol(PrvaGP.''String''))). 'String'.8 0. Za definisanje broja odbiraka po x i y (M i N) koriste se dva para slider.'Position'..'Style'..'Style'.8 0.'Style'. 'BackgroundColor'.[405 350 25 15]...8 0..'.'Style'.. M=20.20.str2num(get(Edit1.5. Slider2=uicontrol(PrvaGP. 'String'. Grafik=1. 'N=str2num(get(Edit2. NovaFunkcija='exp(-x.'Backgroundcolor'.'text'.'Value'...8 0.1) PrvaGP=figure('NumberTitle'...8]).'max'..[460 388 145 20].. 175 .'Backgroundcolor'.'Slider'.'Program za 2-D prikaze'. edit i text kontola kao u primjeru 6.'Position'.'Style'.str2num(get(Edit1. 'String'.'Style'. Zatim definišimo grafički prozor (PrvaGP) i frame kontrolu koja će biti podloga ostalih kontrola (primjer 6...').''String'')).'].'Color'.''value''))..[427 390 30 15].'Position'.[427 350 30 15]...''string''..8 0. Edit2=uicontrol(PrvaGP... 'min'..'Position'.''Value''.'20'.'Callback'.'Backgroundcolor'.[0.''String''))).[0.8 0.'text'.0.''String'')). 'M=str2num(get(Edit1. Tekst2=uicontrol(PrvaGP. SQRT=0.'Position'..set(Edit1.'M='.[6 6 628 412].'frame'.'Position'.[0.22 0. 'String'.num2str(fix(M)))...'N='.'Callback'. Frame1=uicontrol(PrvaGP..'Position'.'Style'. ['set(Slider1. N=20..'...'].256... PaLeTa='hsv'.[0..'Name'.8]). 'Resize'.^2)'..

U popupmenu-u bira se način grafičkog prikaza (primjer 6.'text'.[570 204 15 15].0...5) Menielementi=str2mat('mesh'.8 0.'). [485 254 15 15].'Position'. 'BackgroundColor'..'plot(sum(z))'.Grafički objekti 'min'.'Style'. i ispod toga dvije check kontrole definišu crtanje 1-D grafika plot(sum(z)) i plot(sum(z')) Tekst6=uicontrol('Style'. 'BackgroundColor'..'max'.''Value'').[435 300 100 20]..1).'Position'.'Radio'.20.8 0.''Value''. 'BackgroundColor'. Radio1=uicontrol(PrvaGP.[475 204 15 15]. 'BackgroundColor'.'Style'..'interp'.'surfc'.8]).8]).8 0.'Style'. Tekst7=uicontrol('Style'...8]).8 0. Check1=uicontrol('Style'.[0. Popup1=uicontrol(PrvaGP. 'BackgroundColor'...set(Edit2.'Value'.'Text'.8 0.''Value''.''Value''. Radio2=uicontrol(PrvaGP. 'Backgroundcolor'.0).1).set(Radio1..'Position'.'String'.8 0...8]).[0. Check2=uicontrol('Style'.'Check'.'Da'.'Text'..'text'.'contour'..'Grafik=get(Popup1.[505 254 40 15].'Check'.8 0..'Callback'.'SQRT'..8 0. 'set(Radio1..'Value'.8]).'.'String'..'plot(sum(z''))'.[0...8 0.SQRT=0..'Position'.8 0...256.'Ne'.''string''.num2str(fix(N))). 'meshc'.set(Radio2..[0.[0.'Position'. Tekst4=uicontrol('Style'. 'Position'..'Value'.8 0.'Callback'....0)..8 0.'String'.1..'String'..'String'. 'N=fix(get(Slider2.SQRT=1.8 0.'flat').').'String'...'Position'.[405 254 40 15]..'Radio'.'waterfall'.8 0. Tekst5=uicontrol('Style'.8]). 'Backgroundcolor'..'Position'.8]).8 0.. 'set(Radio2.8])..'surf'.[495 204 75 15].[0. 176 .8]).'Callback'.''value'')).'Callback'.Menielementi.[0.'Position'.'text'.[405 204 70 15].8 0. 'BackgroundColor'..[0.8 0. Dvije radio kontrole definišu vrijednost promjenljive SQRT Tekst3=uicontrol('Style'...8 0...[0. [545 254 15 15].[445 254 40 15].0.''Value''..'Position'.'popupmenu'.. 'BackgroundColor'..'.5...

8].''Checked''.set(Meni(2).').''on'').'Label'.''on'')..''Checked''....''Checked''....'Label'.. Meni(5)=uimenu(Meni(1).'&gray'.8 0.'Label'.'Callback'. proširen sa menijem Options. dok se naredbama Meni(2)=uimenu(Meni(1).'Callback'.'Print'.. 177 . Print smješta sadržaj grafičkog prozora u Clipboard PushPrint=uicontrol(PrvaGP.'Background'..'Checked'.set(Meni(2:5).''off'').').'Position'.M.'off'.... PushStart=uicontrol(PrvaGP. 'String'.''off'').'print -dmeta').''Checked''.[0.[550 20 60 30].'&Options').'&Colormap'..MATLAB for Windows Na dnu frame kontrole nalaze se tri pushbuttona.'Style'....'Callback'. Meni(4)=uimenu(Meni(1).set(Meni(2:5). Meni(3)=uimenu(Meni(1).disp([''Bilo je ''.8 0.'Position'.'Label'.''Checked''. 'String'.'Start'.num2str(Broj)..'Style'.[410 20 60 30]. 'set(Meni(7). Meni(7)=uimenu(Meni(6).'Background'...'Position'.''Checked''.'Funkcija&3'. 'Funkcija=3... ['PaLeTa=''hsv''.'' izracunavanja''])'). Funkcija 2.''on''). ovaj meni proširuje opcijama Funkcija 1. 'String'.8 0..'off'. Standardni MATLAB meni je naredbom Meni(1)=uimenu(PrvaGP.'Checked'. Meni(8)=uimenu(Meni(6).8]..'&Izbor funkcije'.'Label'. Opcija Colormap otvara dodatni meni u kome se može izabrati kolorna mapa za crtanje podataka Meni(6)=uimenu(Meni(1).8 0.'Callback'..[0.[480 20 60 30]. dok klik na četvrtu otvara prozor u kome korisnik može unijeti proizvoljnu funkciju koja se želi nacrtati. Start poziva program CRTANJE.''on'').set(Meni(3)..set(Meni(2:5).'Callback'.[0.set(Meni(7:11).'Checked'.'Callback'..'Callback'.'on')..set(Meni(4)..''off''). 'close(gcf)..'Checked'.'pushbutton'.'off'.'Label'. 'pomocni.'pushbutton'.'.''Checked''..'&hsv'.'Funkcija&2'.'Label'.'Separator'.8 0.'Funkcija&1'. 'Funkcija=1.'Callback'.'on'. Klik na prve tri funkcije definiše crtanje predefinisanih funkcija.'Style'.').'Checked'..8 0.'Label'. 'Funkcija=2.'Callback'. dok Close zatvara grafički prozor i u MATLAB-ovom komandnom prozoru prikazuje broj izvršenih grafičkih prikaza PushClose=uicontrol(PrvaGP.M.'off'.'Checked'. Funkcija 3 i Izbor Funkcije.8].'crtanje').''off'')..'pushbutton'.'off'.'Background'.']).'Close'.''Checked''.'). Prilikom izbor četvrte opcije poziva se program POMOCNI.

'Pointer'.''on'').'off'....'on'. Na slici 6. ['PaLeTa=''cool''.''on'').']).''off'').'Checked'..M Oblast nezavisno promjenljive se definiše naredbom [x.'arrow').'Label'..set(Meni(7:11). čime se omogućuje rad sa objektima unutar grafičkog prozora.'Callback'. 'set(Meni(11)... ['PaLeTa=''jet''.'&cool'...'...'off'.''off'').''off''). set(PrvaGP..set(Meni(7:11).. Meni(9)=uimenu(Meni(6)..'Label'. Na kraju programa pokazivač miša se postavlja na strelicu.'Checked'. 178 .7.'Checked'.''Checked''.'Label'.2 PROGRAM ZA PRORA^UN I CRTANJE ..'Callback'.'h&ot'.-2*pi:4*pi/N:2*pi)..''Checked''.''on'').''Checked''..''on'').CRTANJE.y]=meshdom(-2*pi:4*pi/M:2*pi.'.''Checked''.Grafički objekti ['PaLeTa=''gray''.'.']).. Meni(11)=uimenu(Meni(6). 'set(MENU(9).2 Izgled grafičkog prozora sa kontrolama 6.']). ['PaLeTa=''hot''.'.''off'').2 je prikazan osnovni grafički prozor sa kontrolama. Meni(10)=uimenu(Meni(6)..'Callback'. 'set(Meni(8). 'set(Meni(10).''Checked''..set(Meni(7:11).']).''Checked''..''Checked''.'&jet'.set(Meni(7:11).''Checked''. Slika 6.

NovaFunkcija.'off').y) if(SQRT==0&Funkcijač=4) z=funk(x.-2*pi:4*pi/N:2*pi.12 0.'. else eval(['z='.-2*pi:4*pi/N:2*pi. elseif(SQRT==1&Funkcijač=4) z=sqrt(funk(x.y.35 0.z). ili se uzima od korisnika definisana.25 0.'Visible'. i uzimajući u obzir promjenljivu SQRT računa se funkcija z=f(x.-2*pi:4*pi/N:2*pi. end Zatim se postavlja odgovarajuća kolorna mapa i veličina osa colormap(PaLeTa). U zavisnosti od izbora tipa grafičkog prikaza u popupmeniju crta se odgovarajući 2-D grafik uz istovremeno smještanje novokreiranih grafičkih objekata u promjenljivu Graf if(Grafik==1) Graf=mesh(-2*pi:4*pi/M:2*pi.y.MATLAB for Windows U zavisnosti da li je funkcija jedna od tri predefinisane. elseif(SQRT==0&Funkcija==4) eval(['z='.']). elseif(Grafik==2) Graf=surf(-2*pi:4*pi/M:2*pi.z).Funkcija)). z=sqrt(z).NovaFunkcija. Ose=axes('Position'.-2*pi:4*pi/N:2*pi.Funkcija). elseif(Grafik==3) Graf=waterfall(-2*pi:4*pi/M:2*pi. elseif(Grafik==5) 179 .[0.Graf]=contour(-2*pi:4*pi/M:2*pi. end Ako je prethodno već bilo crtanja promjenljiva Broj je veći od nule pa treba izbrisati tekuće ose i tekuće grafike (čiji se numerički identifikatori čuvaju u promjenljivim Graf i Ose) if(Broj>0) delete(Graf).']).z).z).'. elseif(Grafik==4) [priv.5]). set(Ose.

plot(sum(z').-2*pi:4*pi/N:2*pi)].axes('Position'. axis([-2*pi 2*pi min(sum(z)) max(sum(z))]) end if(get(Check2. if(Grafik==7) shading interp.05 0. Graf=[Graf.z). elseif(Grafik==8) shading flat.-2*pi:4*pi/N:2*pi.25 0.[0. Graf=[Graf.12 0. elseif(Grafik==6) Graf=surfc(-2*pi:4*pi/M:2*pi.35 0.-2*pi:4*pi/N:2*pi.sum(z))].axes('Position'.15 0.plot(-2*pi:4*pi/M:2*pi.z).'Value')==1) Ose=[Ose. axis([min(sum(z')) max(sum(z')) -2*pi 2*pi]) end Na kraju ovog programa inkrementira se broj izračunavanja 180 .-2*pi:4*pi/N:2*pi.Grafički objekti Graf=meshc(-2*pi:4*pi/M:2*pi.'Value')==1) Ose=[Ose.76 0.2])].z).[0. else Graf=pcolor(-2*pi:4*pi/M:2*pi.5])]. end end Za različite tipove grafika na razne načine se definišu granice axis i pogled na grafik view if(Grafik==1|Grafik==2|Grafik==3) view([10 80]) axis([-2*pi 2*pi -2*pi 2*pi min(min(z)) max(max(z))]) elseif(Grafik==5|Grafik==6) view([10 50]) axis([-2*pi 2*pi -2*pi 2*pi min(min(z)) max(max(z))]) else axis([-2*pi 2*pi -2*pi 2*pi]) end U zavisnosti od sadržaja check kontrola vrši se crtanje 1-D grafika uz dopunjavanje vektora u kojem se čuvaju ose (Ose) i vektora sa grafikom (Graf) if(get(Check1.

'Position'.95]. [0..'Color'.''String'')....'off'.. edit kontrole u kojoj se po MATLAB pravilima zapisuje funkcija dvije promjenljive i dvije pushbutton kontrole.95 0.MATLAB for Windows Broj=Broj+1.y). OK kojom se potvr|uje izbor funkcije i Cancel kojom se poništava.'none'). 'Unos 2-D Funkcije'. u promjenljivu NovaFunkcija smješta sadržaj edit kontrole i potom zatvara pomoćni grafički prozor OK1=uicontrol(DrugiGP. z=exp(-x2y2). Ovaj prozor se sastoji od text kontrole u kojoj je piše f(x. kao što smo već vidjeli.95 0..'Callback'.'NumberTitle'. ['NovaFunkcija=get(Edit3.M U okviru ovog programa koji je realizovan kao skript fajl korisnik programa može da izabere proizvoljnu funkciju.'off'.'Name'. Na početku ovog programa crta se grafički prozor bez menija i sa naslovom 'Unos 2-D funkcije' DrugiGP=figure('Position'. Početna funkcija je.3 dat je grafik na kojem je data prva predefinisana funkcija.''off'').set(Meni(2:5).3 POMO]NI PROZOR .''Checked''.'Pushbutton'. 181 . Svi parametri grafika se mogu sa njega pročitati.[60 300 500 65]..'watch'.. Sadržaj ove funkcije se smješta u promjenljivu NovaFunkcija.'off'.close(gcf)'])... Na slici 6.'Resize'.Funkcija=4.'Pointer'.'OK'.. Klik na OK dovodi do potvrde opcije Izbor funkcije u Options meniju.'String'.7.''on'').POMOCNI...3 Grafički prozor sa dijagramima 6.'Enable'. postavlja vrijednost promjenljive Funkcija na 4.'off'.'.'Menubar'. [130 10 70 20].. 'set(Meni(5).'InvertHardcopy'.''Checked''. Slika 6..'Style'.

'String'.'Pushbutton'.'close(gcf). if(Izbor==1) z=sin(x.^2+y.'on').M je function z=funk(x.M U ovom funkcijskom programu nalaze se tri predefinisane funkcije čiji se izbor obavlja na osnovu promjenljive Izbor.'Enable'.NovaFunkcija.'BackgroundColor'.^2+y. Predefinisane funkcije su z=f(x. [245 10 70 20].4 prikazan je pomoćni grafički prozor.7.'Position'..'off'.[1 1 1]). z=f(x.y.'arrow').[20 38 40 15].y)=x2-y2 Rezultat ovog fajla vraća se programu CRTANJE.4 Pomoćni grafički prozor 6.[58 38 400 15]. 'f(x. Na slici 6.'Cancel'.Izbor).M. Definicija text i edit kontrole je Tekst8=uicontrol(DrugiGP..'ForegroundColor'.'BackgroundColor'.y)=sin(x2+y2+eps)/(x2+y2+eps)..Grafički objekti Cancel zatvara ovaj grafički prozor bez promjene ostalih parametara Cancel=uicontrol(DrugiGP..[0 0 0. Sadržaj potprograma FUNK.8]. Tokom crtanja pomoćnog grafičkog prozora onemogućena je upotreba miša što se ostvaruje naredbama set([OK1 Cancel].'Callback'..[1 1 1]). Edit3=uicontrol(DrugiGP. 'String'..'Position'.'Pointer'. elseif(Izbor==2) 182 . set(gcf.'String'.y)=xy sin(x2+y2+eps)/(x2+y2+eps).^2+eps).[0 0 0.'Style'. z=f(x.y)='.'Enable'.'Edit'.'Position'...8].'Style'.^2+eps).'Style'. Slika 6.'ForegroundColor'.')..4 POTPROGRAM FUNK./(x.'Text'.

*sin(x.^2.^2+y.*y.^2+y. elseif(Izbor==3) z=x.MATLAB for Windows z=x.^2+eps). end 183 .^2-y./(x.^2+eps).

185 .. pa se i polinom može predstaviti vektorom čiji su članovi koeficijenti polinoma.(x-n(i)) Koeficijenti polinoma se dobijaju naredbom poly(n).. odnosno u faktorizovanom obliku: y=(x-n(1))(x-n(2)).1. +c(n)x+c(n+1) Tako predstavljen polinom je odre|en svojim koeficijentima c(i)..1. 7.0000 + 0.(n+1).5000 Polinom se može zadati i preko nula.. dobijaju se naredbom roots(c).0000 .2. U prethodnom primjeru dobijamo: » p=roots(c) p= 0 1.1 DEFINISANJE POLINOMA Polinom n-tog reda možemo predstaviti u obliku: y=c(1)xn+c(2)xn-1+ . POLINOMI 7..0000i -0. me|u kojima najznačajnije mjesto zauzima brza Fourierova transformacija.1 Polinom y=2x4-3x3+x se zapisuje vektorom: » c=[2 -3 0 1 0] Nule polinoma čiji su koeficijenti u vektoru c. Primjer 7.2 Odrediti koeficijente polinoma y=(x-1)(x-3)(x+1)(x-2).0000i 1. i=1. U drugom dijelu su opisane funkcije za obradu signala.MATLAB for Windows glava sedma POLINOMI I OBRADA SIGNALA U ovoj glavi obra|eni su polinomi. Koeficijenti se u MATLAB-u mogu zapisati u obliku vektora... Primjer 7.0.1. odnosno mogućnosti MATLAB-a u radu sa polinomima.

naredbom roots(poly(x)) trebao bi da se dobije polazni vektor.9989 8. Primjer 7.1. Naći koeficijente ovog polinoma i korijene.0424 10.0002 7.0000 6.1120 12.0000 5.0000 4. » c=poly(n) c= 1 -5 5 5 -6 Može se pokazati da ove naredbe usljed primjenjenih algoritama pokazuju odre|ena odstupanja.0005 18.9836 10.0877 14.0000 1.0000 3.8824 14.0191 16. KARAKTERISTI^NI POLINOM I SOPSTVENE VRIJEDNOSTI MATRICE Ulazni argument naredbe poly može biti i matrica. usljed akumulisanja greške pri računanju.0051 8.Polinomi i obrada signala » n=[1 3 -1 2].3 Polinom je zadat sa dvadeset nula od jedan do dvadeset.2. U tom slučaju poly(a) daje koeficijente karakterističnog polinoma matrice a. rezultati se ponekad ne podudaraju.9259 12.9954 18.1.9470 16. Ako je matrica a data sa: 186 .0000 7. » roots(poly(1:20)) ans = 20.0000 2. Tako.

MATLAB for Windows

, ⎡ a (11) a (1,2) ⎢ a (2,1) a (2,2) a=⎢ ⎢ M M ⎢ ⎣ a (n,1) a (n,2) onda je njen karakteristični polinom: , a (11) − λ p( λ ) = a (2,1) M a (1,2)

L L O L

a (1, n) ⎤ a ( 2, n) ⎥ ⎥ M ⎥ ⎥ a ( n, n) ⎦

L

a (1, n) a ( 2, n) M

a (2,2) − λ L M O

L a ( n, n) − λ a (n,1) a (n,2) Sopstvene vrijednosti matrice su jednake nulama karakterističnog polinoma.
Primjer 7.1.4 Odrediti koeficijente karakterističnog polinoma matrice a, kao i njene sopstvene vrijednosti. ⎡ 1 2 − 1⎤ a=⎢ 2 4 7⎥ ⎢ ⎥ ⎢− 3 1 2 ⎥ ⎣ ⎦

» a=[1 2 -1;2 4 7;-3 1 2]; » poly(a) ans = 1.0000 -7.0000 0.0000 63.0000 » lambda=roots(ans) lambda = 4.7831 + 1.2927i 4.7831 - 1.2927i -2.5663

7.1.3 MNO@ENJE POLINOMA
Dva polinoma čiji su koeficijenti zadati vektorima c1, odnosno c2, se množe naredbom conv(c1,c2).
Primjer 7.1.5 Pomnožiti polinome:
187

Polinomi i obrada signala
y1=x3+2x2-3x

i

y2=-2x4+3x2+5x+4

Polinom y=y1*y2 ima koeficijente c koji su:

» c1=[1 2 -3 0]; » c2=[-2 0 3 5 4]; » c=conv(c1,c2) c= -2 -4 9 11 pa je:

5 -7 -12

0

y=y1*y2=-2x7-4x6+9x5+11x4+5x3-7x2-12x

Više polinoma se mogu množiti uzastopnom primjenom naredbe conv.

7.1.4 IZRA^UNAVANJE POLINOMA
Vrijednost polinoma se može izračunati za vrijednosti x (x može biti skalar ili vektor) naredbom polyval(c,x). Ako je x skalar onda se izračunava vrijednost polinoma za dato x, a ako je x vektor onda se izračunava vrijednost polinoma za svaki element x-a.
Primjer 7.1.6 Nacrtati funkciju y koja je jednaka polinomu 4-tog reda sa nulama [1 3 -1 2 3], u intervalu -1≤x≤4.

» n=[1 3 -1 2 3]; » c=poly(n) c= 1 -8 20 -10 -21 18 » x=-1:.1:4; » y=polyval(c,x); » plot(x,y) Ako želimo izračunati polinom čiji su elementi x matrice, onda se to postiže naredbom polyvalm(c,x).
Primjer 7.1.7 Izračunati vrijednost polinoma y=2x2-x+1, ako je x matrica:
⎡ 1 3⎤ x=⎢ ⎥ ⎣2 7⎦

188

MATLAB for Windows

» x=[1 3;2 7]; » y=polyvalm([2 -1 1],x) y= 14 45 30 104

7.1.5 DIJELJENJE POLINOMA
Posmatrajmo količnik dva polinoma y1 i y2 čiji su koeficijenti definisani vektorima c1 i c2.
y= c1(1) x n + c1(2) x n−1 + ...+ c1( n) x + c1( n + 1) c2(1) x m + c2(2) x m−1 + ...+ c1( m) x + c1(m + 1)

Ukoliko je stepen brojioca veći ili jednak od stepena imenioca, onda je prethodni izraz moguće transformisati u:

y=

y1( x ) r ( x) = + q( x) y 2( x ) y 2( x )

gdje je q(x) količnik polinoma y1 i y2, a r(x) ostatak. Koeficijenti polinoma q(x) i p(x) se dobijaju naredbom [r,q]=deconv(y1,y2).
Primjer 7.1.8 Podijeliti polinome čiji su koeficijenti zadati vekorima c1 i c2.

» c1=[1 2 -3 0]; » c2=[-2 0 3 5 4]; » [q,r]=deconv(c2,c1) q= -2 4 r= 0 0 -11 17 4 [to znači da je: − 2 x 4 + 3x 2 + 5x + 4 − 11x 2 + 17 x + 4 = − 2x + 4 x 3 + 2 x 2 − 3x x 3 + 2 x 2 − 3x

7.1.6 RAZVOJ U RACIONALNE RAZLOMKE
189

Polinomi i obrada signala

Naredbom residue odre|ujemo polove, koeficijente razvoja i slobodni član pri razvoju količnika dva polinoma c1 i c2 u racionalne razlomke. c1( x ) r (1) r ( 2) r ( n) = + + ...+ + k ( x) c2( x ) x − p(1) x − p(2) x − p( n) Primjer 7.1.9 Razviti u racionalne razlomke izraz: 1 5 4 3 x − 9 x + 25x − 15x 2 − 26 x + 24 » c1=1; » c2=[1 -9 25 -15 -26 24]; » [r,p,k]=residue(c1,c2) r= 0.0333 -0.1250 0.1667 -0.0833 0.0083 p= 4.0000 3.0000 2.0000 1.0000 -1.0000 k= [] Primjer 7.1.10 Ponoviti prethodni primjer ako je u brojiocu x7.
» c1=[1 0 0 0 0 0 0 0]; » c2=[1 -9 25 -15 -26 24]; » [r,p,k]=residue(c1,c2) r= 546.1333 -273.3750 21.3333 -0.0833 -0.0083 p= 4.0000 190

MATLAB for Windows

3.0000 2.0000 1.0000 -1.0000 k= 1 9 56 Može se ostvariti i inverzna operacija. Na osnovu razvoja, definisanog sa r, p, k, oblik količnika dva polinoma dobija se sa » [c1,c2]=residue(r,p,k)

7.1.7 INTERPOLACIJA POLINOMOM
Polinom n-tog reda, koji aproksimira podatke date u vektorima x i y u smislu najmanjih kvadrata, dobija se naredbom c=polyfit(x,y,n).
Primjer 7.1.11 Odrediti polinom 4-tog reda koji aproksimira podatke date vektorima x i y, a zatim nacrtati dobijeni polinom za date podatke.

» x=[.1 .3 .4 .44 .5 .7 .8]; » y=[1 1.5 1.6 1.4 1.1 1.1 1.5]; » c=polyfit(x,y,4) c= 13.2447 1.3735 -20.3555 10.3114 0.1641 » xf=.1:.01:.8; » yf=polyval(c,xf); » plot(xf,yf,x,y,'o') Proceduru fitovanja i crtanja krivih i podataka možemo napraviti koristeći funkcijski fajl. Napravićemo fajl interpol.m. function interpol(x,y,n,znak,ni) % interpol(x,y,n,znak,ni) interpolira podatke x i y polinomima % n-tog reda i crta ih.Vrijednosti x i y crta simbolom definisanim % u znak. Polinom se izracunava u ni tacaka i crta punom linijom % interpol(x,y,n,znak) uzima automatski ni=100 % interpol(x,y,n) uzima automatski znak='*' i ni=100 % c=polyfit(x,y,n) if nargin<5 ni=100;
191

2 OBRADA SIGNALA Sve funkcije sa kojima smo do sada radili bile su diskretne. end plot(x. izvoda. odnosno signala..5) 2. sortiranje.12 Interpolirati podatke x i y polinomom 5-tog reda. if nargin==3 znak='*'.2 0.54 1. yp=polyval(c..4 0. iako se lako desi da zaboravimo na njihovu prirodu.znak.8 1 Slika 7.24 0. standardne devijacije. nalaženje srednje vrijednosti niza. integrala. » y=[0.y. » interpol(x. U tabeli 7.y.6 0.46 0. 192 .38 2. Dodatne.1 Podaci i fitovana kriva iz primjera 7. » x=[0 0. postoji i niz posebnih funkcija namijenjenih obradi diskretnih signala.79 0.1 daćemo samo one koje se nalaze u osnovnom MATLAB-u. specijalizovane funkcije za obradu signala se mogu instalisati u okviru SIGNAL TOOLBOX-a. bilo radi odre|enog računanja.11 0.yp) end Primjer 7.12 7.1 0.5 1 0. U svim slučajevima smo.xp). reklo bi se opštih funkcija za obradu nizova.58 0. Pored tih.29 0. posmatrajući njihove kontinualne grafike na ekranu.95].35 0. predstavljenih u obliku nizova (vektora).1.5 0 0 0.03]. bilo radi crtanja. zadavali diskretne vrijednosti nezavisno promjenljive (najčešće x od xmin do xmax sa odre|enim korakom diskretizacije). Pojedine primjere obrade signala smo već i do sada upoznali: nalaženje maksimalnog i minimalnog elementa.67 2.xp.Polinomi i obrada signala end xp=min(x):(max(x)-min(x))/ni:max(x).22 1.95 1.1.5 2 1.

1 Teorijski pregled Kratko ćemo se osvrnuti na osnovne elemente Fourierove analize.2. Fk ≅ ∑ f (n∆x)e n =1 N − jk∆xπ / l ∆x 193 .1. Funkcije za obradu signala 7.1.1 FOURIEROVA ANALIZA 7. korišćenjem pravougaonog pravila.MATLAB for Windows Funkcije za obradu signala fft ifft fftshift fft2 ifft2 conv conv2 deconv cov filter freqz freqs xcorr xcorr2 brza Fourierova transformacija inverzna brza FT preure|ivanje rezultata FFT dvodimenziona FFT inverzna dvodimenziona FFT konvolucija signala dvodimenziona konvolucija signala dekonvolucija kovarijansa direktna realizacija diskretnog sistema frekventni odziv diskretnog sistema frekventni odziv analognog sistema kroskorelaciona funkcija dvodimenziona kroskorelaciona funkcija Tabela 7. Periodičnu funkciju sa periodom 2l možemo razviti u Fourierov red (pod uslovom da su zadovoljeni Dirichletovi uslovi): f ( x) = k =−∞ ∑Fe k ∞ jkxπ / l gdje su Fourierovi koeficijenti Fk = 1 2l ∫ f ( x )e 0 2l − jkxπ / l dx Aproksimacija ove vrijednosti može se ostvariti zamjenom integrala sa sumom.2.

dobijamo: Fk ≅ ∑ f$(n)e − jk∆xπ / l n =1 N što je. trebao biti ∆x≤1/fm. po teoremi o odabiranju. Rednom broju odbirka k odgovara učestanost: k ⎯ → ω = kπ / l = 2 kπ / ( N∆x) ⎯ i to samo za k≤N/2. unutar periode 2l. Pošto je broj odbiraka signala. to je l/∆x=N/2. Rednom broju odgovara učestanost: k ⎯ → ω = 2 kπ / ( N∆x ) ⎯ 7. jednak N. dobijamo: F ( jω ) = ∑ f (n∆x)e n =1 N − jωn∆x ∆x Odbirke Fourierove transformacije za ω=k∆ω dobijamo kao: F (k ) = ∑ n =1 N f (n∆x )e − jk∆ωn∆x ∆x = f ∑ ~ ( n) e N n =1 − jkn 2 π / N gdje je f(n)=f(n∆x)∆x.2 Računanje Diskretna Fourierova transformacija signala označenog sa f (čije vrijednosti su elementi vektora f) za razne vrijednosti k računa se po standardnom 194 . a znamo da je ∆ω∆x=2π/N. Ponovo smo dobili da se odbirci Fourierove transformacije mogu aproksimirati diskretnom Fourierovom transformacijom.1. Prema tome. Na sličan način se mogu dobiti i odbirci Fourierove transformacije neperiodičnog signala koja ima oblik: F ( jω ) = −∞ ∫ f ( x )e ∞ − jωx dx Uzimajući da je signal bitno različit od nule samo u intervalu od 0 do 2l i zamjenjujući integral sumom. Uzimajući da je f(n)=f(n∆x) ∆x/2l. po definiciji.2. gdje je fm maksimalna frekvencija u signalu f(x).Polinomi i obrada signala gdje je ∆x korak odabiranja koji bi. koeficijenti Fourierovog reda mogu se aproksimirati vrijednostima diskretne Fourierove transformacije signala f(n)=f(n∆x)∆x/2l. Za k veće od N/2 dobijaju se preslikane negativne učestanosti. diskretna Fourierova transformacija.

014 0. » n=64. 256. 128.. vrši dopunjavanje signala nulama (zero padding).MATLAB for Windows algoritmu razbijanja po frekvenciji naredbom fft(f).008 0. » l=2. Ovaj algoritam se primjenjuje za broj odbiraka koji je stepen broja 2. 16.012 0. 195 . Uzmimo da je n=64.2.M) je ista kao naredba fft(f).1 Odrediti koeficijente Fourierovog reda funkcije date na slici 7. pa time i rasporeda harmonika.1.016 0.01 0.M) gdje se.004 0. Da bi mogli koristiti fft algoritme taj broj mora biti oblika 2m. 7. U slučaju da je broj odbiraka različit od ovog broja primjenjuje se sporiji algoritam direktnog izračunavanja. Dopunjavanje nulama ne utiče na oblik Fourierove transformacije. 8.. već samo na gustinu odabiranja. to ih je radi crtanja neophodno preurediti. Kod Fourierovog reda dolazi do promjene periode.2. N=2m (N=4. ako je M>length(f). 0. Periodični signal f(x) Prvo treba odrediti korak odabiranja (imajući u vidu teoremu o odabiranju).002 0 -4 -2 0 2 4 6 8 Slika 7. Za M=length(f) naredba fft(f. 64.2. 32.3 Preure|ivanje rezultata Pošto su rezultati dobijeni tako da samo do N/2 imaju prirodni raspored.006 0. U skladu sa preure|ivanjem potrebno je prenumerisati i frekventnu osu. a za M<length(f) vrši se odsijecanje signala do dužine M. To se ostvaruje naredbom fftshift(F) gdje je F već izračunata Fourierova transformacija signala f.2.. Primjer 7.). Postoji i drugi oblik naredbe za izračunavanje Fourierove transformacije fft(f. Odbirke funkcije ćemo računati u tačkama xi=i∆x=i4/64. Interval jedne periode 0≤x≤4 ćemo podijeliti na dva dijela 0≤x<2 i 2≤x<4 i računati odbirke u tim djelovima. Broj odbiraka unutar periode je jednak broju koeficijenata Fourierovog reda koje računamo.

potrebno preurediti rezultate. Prvih n/2 harmonika su zaista harmonici funkcije f(x).abs(Fp)) » stem(k.45 0. Da bismo odredili vrijednosti odbiraka Fourierive transformacije treba.15 0.3 0. Ponovo se tačan račun može izvesti jedino na osnovu teoreme o odabiranju. » f1=(-0. 196 . » f=[f1 f2].2.3.Polinomi i obrada signala » dx=2*l/n.1 0.4 0. a preostali dio od n/2+1 do n su preslikane negativne vrijednosti. koji će biti dovoljno mali da se signal izme|u dva odbirka puno ne mijenja. » Fp=fftshift(F). Zbog toga je. » f2=(0.5*x2-1)*dx/(2*l).5*x1+1)*dx/(2*l). 0. radi crtanja spektra u obliku u kojem se najčešće predstavlja.05 0 -40 -30 -20 -10 0 10 20 30 40 Slika 7.2 0.3 Spektar (amplitudska karakteristika) periodičnog signala f(x) Primjer 7. U intervalu za 0≤x<1 uzimamo vrijednosti zadate funkcije.35 0. » F=fft(f). Time smo dobili Fourierovu transformaciju signala f(x). » x1=0:dx:l-dx. » k=-n/2:n/2-1. ali i prenumerisati redni broj harmonika. prije svega. Mi ćemo se ovdje poslužiti procjenom i proizvoljno uzeti korak odabiranja. » plot(k.2 Odrediti odbirke Fourierove transformacije signala f(x)=sin2(xπ) za 0≤x<1 i f(x)=0 drugdje. » x2=l:dx:2*l-dx.5 0.abs(Fp)) Tako smo konačno dobili amplitudsku karakteristiku signala f(x) koja je prikazana na slici 7. odrediti korak odabiranja.25 0.

gustina odbiraka Fourierove transformacje će biti veća.3 0. » n=50.45 0.1.05 0 -3 -2 -1 0 1 2 3 Slika 7. » x=0:dx:2*l-dx.1.abs(Fp)) 0. » dx=2*l/n. » Fp=fftshift(F).MATLAB for Windows pomnožene korakom odabiranja.15 0. a izvan tog intervala. » l=0.2 0. koje su izračunate prema izrazima datim u 7.1. » plot(fr. Umjesto rednog broja odbiraka bolje je imati na nezavisno promjenljivoj osi vrijednosti učestanosti ω ili frekvencije fr.35 0. [to više tačaka uzmemo.4 Inverzna transformacija Inverzna diskretna Fourierova transformacija ima oblik: 1 f$(n) = N ∑ F ( k )e n =1 N jkn 2 π / N 197 . još proizvoljan broj vrijednosti f(x)=0.2.^2*dx.5.5 0.1 0. » f=(sin(pi*x)). » F=fft(f).4 Amplituda Fourierove transformacije signala f(x) 7. Uzmimo n=50 i odredimo odbirke Fourierove transformacije.4 0. » fr=k/(n*dx). U ovom slučaju za primjenu fft algoritama nije nephodno uzet broj odbiraka 2m već se može koristiti i nešto sporiji algiritam sa proračun FT. » k=-length(Fp)/2:length(Fp)/2-1.2.25 0.

2 RA^UNANJE I CRTANJE FREKVENTNOG ODZIVA 7. za inverznu transformaciju.5 -1 40 30 20 10 0 0 10 20 30 40 300 250 200 150 100 50 0 40 30 20 10 0 0 10 20 30 40 Slika 7.2.5 0 -0.3 Izračunati i z(x.y)=sinxsiny za -π≤x.N) Primjer 7.y]=meshdom(-pi:2*pi/32:pi-pi/16.5 Dvodimenzioni signal i njegova FT 7.M. » [x.1.-pi:2*pi/32:pi-pi/16). % Pomjeranje rezultata » mesh(abs(Zp)) % Crtanje amplitudske karakteristike 1 0. nacrtati dvodimenzionu transformaciju signala Uzećemo n=32 odbirka unutar oblasti (periode).2. » z=sin(x). Razlikuje se od direktne jedino po znaku u eksponentu i zbog dijeljenja sa N.2. a poziva se sa fft2(f). Postoji i oblik ovih naredbi fft2(f.5 Dvodimenziona transformacija Dvodimenziona diskretna Fourierova transformacija definiše se analogno jednodimenzionoj. » mesh(z) » Z=fft2(z).2. % Racunanje dvodimenzione FT » Zp=fftshift(Z). Inverzna diskretna Fourierova transformacija transformacije F se dobija sa ifft(F). ili sa ifft2(F).Polinomi i obrada signala i daje signal na osnovu transformacije.1 Analogni domen Frekventni odziv sistema u analognom domenu definisanog funkcijom prenosa: 198 . 7.y<π.*sin(y).2.

w).5].6 (amplitudska i fazna karakteristika analognog sistema) su se mogli dobiti naredbom » freqs(a.2.+ a (m) s + a (m + 1) dobija se sa h=freqs(a. » h=freqs(a.b. » semilogx(w.5 H ( s) = 2 s + s+1 za učestanosti ω od 0..b. Ako se želi nacrtati amplitudski i frekventni dijagram poziva se ova funkcija bez izlaznog argumenta freqs(a.b. » a=[1 . gdje je w frekvencija.4 Nacrtati amplitudsku i faznu karakteristiku sistema čija je funkcija prenosa data sa: s + 0..1 do 100. u četrdeset tačaka.4 0.abs(h)) » grid » semilogx(w. Ova funkcija se nalazi u okviru SIGNAL TOOLBOX-a.b.2 1 0.2 0 -1 10 20 0 -20 -40 -60 -80 -100 -1 10 10 0 10 1 10 2 10 0 10 1 10 2 Slika 7.angle(h)*180/pi) » grid Bez računanja odziva h crteži sa slike 7.8 0.2.+ a (n) s + a (n + 1) b(1) s m + b(2) s m−1 + .. a h vrijednost frekventnog odziva.w).2 Diskretni domen Za diskretni sistem opisan sa: 199 ..40).MATLAB for Windows H ( s) = a (1) s n + a (2) s n −1 + .6 Amplitudska i fazna karakteristika analognog sistema 7.2. Primjer 7.6 0.w). » b=[1 1 1].2. » w=logspace(-1.w) 1.

3 RA^UNANJE SIGNALA NA IZLAZU IZ DISKRETNOG SISTEMA Ako je diskretni sistem opisan jednačinom datom u 7.b.3594 z − 2 − 1083z − 3 + 019343z − 4 .3 0.1 0 -4 -3 -2 -1 0 1 2 3 4 Slika 7. .2..2.N.4 0. Funkcija freqz bez izlaznog argumenta crta amplitudsku i faznu karakteristiku.40112 z −1 + 2.5 Nacrtati amplitudsku i faznu karakteristiku diskretnog sistema: H ( z) = 0.6 0.6 Izračunati impulsni odziv diskretnog sistema datog sa: 200 .00735z −3 1 − 2.00001 0.b.2. » w=-pi:pi/30:pi.5 0.19343].044636z −2 + 0.b.016709 0.016709 z −1 + 0.'whole') kojom se odre|uje vrijednost vektora h i w (odziva i frekvencije) u N tačaka na čitavom jediničnom krugu.00735].. dobija kao y=filter(a.w). gdje je w vrijednost učestanosti za koje se računa frekventni odziv.083 0. za dati ulazni signal x.2.+ b(m) z − m+1 frekventni odziv se dobija sa y=freqz(a. » b=[1 -2..abs(h)) » grid 1 0.7 Amplitudska karakteristika diskretnog sistema 7.40112 2..8 0.2.w).2 0.+ a (n) z − n +1 b(1) + b(2) z −1 + . Primjer 7. » a=[0. » h=freqz(a.7 0.x). onda se signal na izlazu iz tog diskretnog sistema.3594 -1. Interesantan oblik ove funkcije je [h.00001 + 0.Polinomi i obrada signala H ( z) = a (1) + a (2) z −1 + . » plot(w.2. Primjer 7.044636 0.w]=freqz(a.b.9 0.

2 0. Kroskorelacija se računa sa r=xcorr(x.2. » a=[0.19343].00001 + 0. tj.40112 z −1 + 2. izlazni signal je jednak konvoluciji signala x i h. 201 . » plot(y) » grid Izlazni signal se može računati i na osnovu impulsnog odziva h(n) i ulaznog signala x(n). Primjer 7.3594 z − 2 − 1083z − 3 + 019343z − 4 Za računanje impulsnog odziva uzećemo da je ulazni signal x=[1 zeros(1.50)].083 0.50)].MATLAB for Windows H ( z) = 0.044636 0.016709 z −1 + 0.y).4 KROSKORELACIONA FUNKCIJA I SPEKTRALNA GUSTINA SNAGE SLU^AJNIH SIGNALA Kroskorelacija dva slučajna signala x(n) i y(n) definiše se kao matematičko očekivanje proizvoda signala x i konjugovano kompleksne vrijednosti signala y: r(n)=Ešx(m)y*(m-n)ć.3594 -1. Kao što je poznato.00001 0.15 0. » b=[1 -2.00735z −3 .x). » y=filter(a.40112 2. 0.044636z −2 + 0. Autokorelacija signala x je definisana sa: r(n)=Ešx(m)x*(m-n)ć i računa se sa r=xcorr(x). 1 − 2.b.05 0 -0. y=conv(x.2.7 Izračunati i nacrtati autokorelacionu funkciju signala x(n) koji se dobija kao jedna realizacija slučajnog signala sa uniformnom raspodjelom od 0 do 1. » x=[1 zeros(1.05 0 10 20 30 40 50 60 Slika 7.25 0.h).016709 0.1 0. .8 Impulsni odziv diskretnog sistema 7.00735].

'string').Polinomi i obrada signala » x=rand(1.10 Unbiased autokorelaciona funkcija 7.05 0 0 20 40 60 80 100 Slika 7. gdje je k indeks odgovarajuće pozicije. Primjer 7.8 Naći unbiased autokorelaciju signala iz prethodnog primjera.2.1 0. dok coeff daje normalizovanu vrijednost tako da je maksimalna vrijednost 1. za unbiased 1/(M-|k|).3 0. Spektralna gustina snage signala x definisana je kao Fourierova transformacija autokorelacione funkcije. » plot(ru) 0.2 0. Gausov šum sa varijansom 1. » r=xcorr(x).5 DVODIMENZIONI SIGNALI 202 .50). ako je string biased računa se 1/M vrijednosti autokorelacione funkcije. » ru=xcorr(x. i računa se sa sx=fft(r).15 0.35 0. 18 16 14 12 10 8 6 4 2 0 0 20 40 60 80 100 Slika 7. » plot(r) Uočimo razliku da je u ovoj verziji rand slučajni signal sa uniformnom raspodjelom na intervalu (0. bijeli.9 Autokorelaciona funkcija Ovim oblicima kroskorelacione funkcije mogu se pridružiti oblici sa odre|enim opcijama koje se definišu stringom xcorr(x. Za signal x dužine M.25 0.2.1) dok je randn normalni.'unbiased').

još jedanput ćemo istaći da je veliki broj algoritama.1. Na kraju. funkcija prozora i funkcija za obradu slučajnih signala. Te funkcije su date u tabeli 7. 203 . a korišćenje im je slično kao i za jednodimenzione slučajeve. sadržan u SIGNAL TOOLBOX-u. metoda projektovanja diskretnih sistema.MATLAB for Windows Jedan broj funkcija za obradu signala definisan je i za dvodimenzione signale.

.... Ako se definiše slika linearnog operatora predstavljenog sa A kao Im(A)=šy∈R | y=Ax za neko x∈Rć i kernel operatora A kao Ker(A)=šx∈R | Ax=0ć poznato je da navedeni problem ima rješenje ako i samo ako je ispunjen uslov y∈Im(A)..+a2nxn=y2 ......... am1x1+am2x2+.. a rješenje je jedinstveno ako i samo ako je Ker(A)=š0ć.. sistem je nekonzistentan. kada je r(A)=r(W)=n (ii) beskonačno mnogo rješenja. kada je r(A)=r(W)<n.. tj. 2o za r(A)=r(W) postoji najmanje jedno rješenje. važi: 1o za r(A)≠r(W) nema rješenja..+a1nxn=y1 a21x1+a22x2+. i to: (i) jedinstveno rješenje. u vektorsko-matričnoj formulaciji: za datu matricu A∈Rmxn i vektor y∈Rm.. ako definišemo rang matrice r(A) kao broj linearno nezavisnih kolona (ili vrsta) i formiramo proširenu matricu W=[A | y]. kako to utiče na rješenje? 205 .. nije dovoljna sa numeričke tačke gledišta.. Aritmetika sa konačnom preciznošću i približno tačni ulazni podaci u praktičnim primjenama..+amnxn=ym tj... Ovakva karakterizacija skupa rješenja. Alternativno.MATLAB for Windows glava osma LINEARNA ALGEBRA I MATRIČNE FUNKCIJE Centralni numerički problem u linearnoj algebri predstavlja rješavanje sistema linearnih jednačina oblika a11x1+a12x2+.. me|utim... nameću slijedeća pitanja: (a) Ako se A i y "malo" promijene...... naći vektor x∈Rn koji zadovoljava relaciju Ax=y...

"rastojanje u vektorskom prostoru".. [V. Tako izraz s=eig(A) daje vektor kolonu s koji sadrži sopstvene vrijednosti matrice A. n. formiramo matricu V=[v1 v2 .2.n. i matricu V čije kolone su sopstveni vektori od A.z2. itd. tada očigledno važi AV=VD. formu. .. To nam omogućava pojam norme vektora i matrica. kompleksnu Jordanovu formu i odgovarajuću matricu sopstvenih vektora možemo zamijeniti sa tzv.k+1=σk+ iωk.D]=eig(A). gdje je D=diagšz1.. Tako se iz kompleksne dobija realna Jordanova forma.. Ukoliko u spektru A postoji konjugovano kompleksni par sopstvenih vrijednosti zk. odre|ivanje singularnih vrijednosti.. tj. Napomenimo da matrica V definiše transformaciju sličnosti koja matricu A prevodi u dijagonalnu.1 SOPSTVENE VRIJEDNOSTI I SOPSTVENI VEKTORI Sopstvene vrijednosti matrice A∈Rnxn su definisane kao n korijena njenog karakterističnog polinoma p(z)=|zI-A|. ovaj operator ih daje u normalizovanoj formi tako da nijedan element nije veći od 1. kako možemo odrediti x tako da je Ax "blizu" y? Da bi kvantifikovali odgovore na ovakva pitanja potreban je jezik kojim ćemo precizirati pojmove kao što su: "male promjene". tj. Operator eig nalazi sopstvene vrijednosti i sopstvene vektore. odre|ivanje sopstvenih vrijednosti i vektora. pridruženi vektor vi koji zadovoljava relaciju Avi=zivi. koje se mogu naći u literaturi.z2. Za zi iz spektra A.. MATLAB raspolaže skupom moćnih i numerički pouzdanih operatora za tretiranje problema iz linearne algebre: karakterizaciju linearnih operatora i vektorskih prostora i podprostora.. naziva se sopstveni vektor matrice A. Jordanovu. tada i pridruženi par sopstvenih vektora ima oblik vk. itd. i=1..k+1=q+is.znć dijagonalna matrica formirana od sopstvenih vrijednosti koja se naziva i Jordanova forma matrice A. dobićemo dijagonalnu matricu D. 8.. Skup ovih korijena šz1.Linearna algebra i matrične funkcije (b) [to znači kada je matrica A "skoro singularna"? (c) Ukoliko b∉Im(A). i realnim vektorima q i s u matrici V. već ćemo navesti najvažnije operatore i pojedine definicije pojmova.znć nazivamo spektrom matrice A. . vn]. "blizu singularnosti". Ako od vektora vi. i=1.. Ukoliko hoćemo da radimo samo sa realnim vrijednostima... tako da važi A*V=V*D. Jordanovim blokovima na k-tom i k+1-om mjestu u matrici D... Za višestruke sopstvene vrijednosti potrebno je izvršiti odre|ene modifikacije. Iscrpni tretman teorijskih i numeričkih problema iz ove oblasti može se naći u literaturi. Ovdje nećemo ulaziti u detalje iz teorije. Pošto sopstveni vektori nijesu jednoznačni. 206 . sa sopstvenim vrijednostima na glavnoj dijagonali. Ukoliko imamo dva izlazna argumenta.

7792 207 .3253 0.0283 -0.5000 1.MATLAB for Windows Za simetrične matrice.5000 1.7000 i nesimetričnoj matrici B= -1 -4 0 1 -1 0 4 2 -3 » s=eig(A) daje sopstvene vrijednosti: s= -2.4489 0.1000 1. U tom slučaju.8634 7.2821 0.1000 2.5000 2.2000 2.5029 0.5630 0.3000 3. dok za nesimetrične često postoje kompleksni parovi sopstvenih vrijednosti.6000 2.9000 2.7792 dok » [X. kompleksnu Jordanovu formu možemo prevesti u realnu upotrebom operatora cdf2rdf (skraćenica od: complex diagonal form to real diagonal form).L]=eig(A) daje sopstvene vrijednosti u L i sopstvene vektore u X X= 0. Primjer 8.6171 L= -2.1873 -1.0828 -0.4431 -0.5938 0.6939 0.5000 -1.1.0553 0 0 0 0 3.7340 0.1000 3.1 Ilustrovaćemo operator eig na simetričnoj matrici A= 3. ukoliko želimo da radimo sa realnim vrijednostima.1000 0.7948 0.0553 3.3000 2.5372 0.1000 -1.8634 0 0 0 0 7.0059 0.4063 0. sopstvene vrijednosti su uvijek realne.1000 2.1873 0 0 0 0 -1.

zbog prisustva kompleksnih spostvenih vrijednosti.6804 0.6804 + 0. Sopstvene vrijednosti i vektore matrice B dobijamo sa » [X.0000 .2722 1. za matricu B.Linearna algebra i matrične funkcije Ako želimo samo sopstvene vrijednosti možemo ih.0000 0.J]=cdf2rdf(X.2. Naredba oblika s=eig(A. tada se generalisane sopstvene vrijednosti λ definišu kao netrivijalna rješenja jednačine g(z)=|A-zB|=0. 208 .6804 .5443i 0 0. dobiti i sa » r=roots(poly(B)) kao što je istaknuto u glavi 7. koji odgovara skalaru λ i zadovoljava relaciju Ax=λBx.0000i 0 0 0 -1.0000i pri čemu vidimo da su.0000 0. dok oblik iste naredbe sa dva izlazna argumenta [V.0000 + 2. Ako su A i B kvadratne matrice dimenzije (nxn). naziva se generalisani sopstveni vektor. Prevešćemo ih u realnu Jordanovu formu sa » [Xr.2722 0 1. matrice X i D kompleksne.0.5443i 0 .D]=eig(B) X= 0 0 + 0.D) Xr = 0 0 0.4082i D= -3. beskonačan ili prazan (za detalje konsultovati literaturu).4082i 0. npr.4082 J= -3 0 0 0 -1 2 0 -2 -1 Operator eig može poslužiti i za računanje generalisanih sopstvenih vrijednosti i vektora.B) daje vektor s koji sadrži generalisane sopstvene vrijednosti. Za ovako na|ene vrijednosti važi relacija AV=BVD.5443 0 0. Napomenimo da broj generalisanih sopstvenih vrijednosti zavisi od ranga matrice B: ima ih n ukoliko je r(B)=n a za r(B)<n skup generalisanih sopstvenih vrijednosti može biti konačan. Pridruženi vektor x.D]=eig(A.2722 0.0.0000 0 0 0 -1.B) daje matricu X sa generalisanim sopstvenim vektorima i dijagonalnu matricu D sa generalisanim sopstvenim vrijednostima na dijagonali.

» [Au.1806 0 0 0 13.3257 0. Q-Z dekompozicija računa gornje trougaone matrice Au i Bu.d]=eig(A.1.2 Za matrice A= 2 1 2 1 3 -1 1 1 2 B= 1 2 3 4 5 6 7 8 10 naći generalisane sopstvene vrijednosti i vektore. Primjer 8.8795 -0.Q.B) 209 .1806 13.9609 0.Z.2 Q-Z DEKOMPOZICIJA Za kvadratne matrice A i B.8338 -0.B) daje ans = -0. matricu generalisanih sopstvenih vektora V i matrice Q i Z koje zadovoljavaju relacije: QAZ=Au i QBZ=Bu.5927 -0.3470 0.4470 dok izraz » [x.2.B) daje i generalisane sopstvene vektore: x= 0.5140 0.9609 0 0 0 0.6201 0. i data je kao posebni operator radi mogućnosti korišćenja me|u-rezultata.4470 8.4836 d= -0. Ovakva dekompozicija se inače koristi kao me|ukorak pri računanju generalisanih sopstvenih vrijednosti i vektora.1 Za matrice A i B iz prethodnog primjera naći Q-Z dekompoziciju.2663 -0. » eig(A.V]=qz(A.MATLAB for Windows Primjer 8.Bu.

p. j=1.. nazivaju se singularne vrijednosti matrice A.8338 -0. . Pokazuje se da izme|u nenultih singularnih vrijednosti matrice A i sopstvenih vrijednosti λi matrice ATA važi relacija σi=λi.5140 0.2182 Q= 0. vn] i dijagonalna matrica S=diagšs1.9662 0..7740 V= 0.3470 0.4836 8. 2.5430 0. i=1..5927 -0..3257 0.8795 0. Za datu matricu A∈Rmxn postoje ortogonalne kvadratne matrice U=[u1 u2 .0345 0.2088 -0. sa singularnim vrijednostima na glavnoj dijagonali.7872 2... i=1.Linearna algebra i matrične funkcije Au = 0.8542 0..s2. nazivaju se lijevi i desni singularni vektori. . p.m. p=minšm. i ortogonalne matrice U i V. a u zadnje vrijeme koriste se i kao analitički aparat u mnogim primjenama..3470 0. dok izraz sa višestrukim argumentima oblika [U.3820 0.0000 2.4744 0.2663 -0.6928 -0.8787 0. Skalari σi.0000 3. 2.7150 0. .... .0310 -0. 210 . ..3 SINGULARNE VRIJEDNOSTI I PRIDRU@ENA DEKOMPOZICIJA MATRICA Singularne vrijednosti predstavljaju jedan od najvažnijih pojmova u matričnoj numerici.. um] i V=[v1 v2 .4761 0. a vektori ui.spć.6321 -0.9338 Bu = -0..nć.2554 -0.n..0125 0.7847 3.6201 0. i=1.3257 0. .9542 0 16.0373 -0.V]=svd(X) daje dijagonalnu matricu S iste dimenzije kao X.8192 3.S.1510 0.8795 -0.. takve da važi relacija UAV=S. i vj.4013 0 0 0. Za računanje singularnih vrijednosti koristi se operator svd.. Izraz s=svd(X) daje vektor s koji sadrži singularne vrijednosti. respektivno.0000 0.2632 0. .4528 Z= 0.

8835 0.S.2298 0.8196 -0.MATLAB for Windows Primjer 8.3.7849 0.6196 -0. računaju se samo prvih n kolona matrice U a matrica S ima dimenziju nxn.S. za A∈Rmxn.6196 -0.6196 Izraz [U.5143 » [U.4082 S= 9.2408 -0.5247 0.7849 0.7849 0.4082 0.V]=svd(A.5255 0.7849 0.8196 -0.2 Izračunati redukovanu verziju matrica za dekompoziciju pomoću singularnih vrijednosti matrice A iz prethodnog primjera.5255 0 0 0.S.4019 0.2408 0.V]=svd(A.3.8165 0.2298 0.8835 0. Naime.5143 V= 0.5247 0.5143 0 0 V= 0.0) daje redukovanu verziju matrica S i U.1 A= 1 2 3 4 5 6 » s=svd(A) s= 9.V]=svd(A) U= 0. m>n.0) U= 0.6196 211 .4019 S= 9. Primjer 8. » [U.5255 0 0 0.

9530 » np=norm(x.4) 212 .Linearna algebra i matrične funkcije Dekompozicija preko singularnih vrijednosti omogućava numerički pouzdane.inf) norm(x. norm(x) norm(x. sliku i kernel pridruženog linearnog operatora. što omogućava jednostavno računanje mnogih važnih osobina matrice kao što su: rang.1) 1/ 2 ⎛ n ⎞ n p = || x||p = ⎜ ∑ | xi |p ⎟ ⎝ i =1 ⎠ 1/ p n1 = || x||1 = ∑|x | i i =1 n ⎛ n ⎞ n2 =|| x||2 = ⎜ ∑ xi 2 ⎟ ⎝ i =1 ⎠ norm(x.0000 -2. 8.-inf) ∞-norma -∞-norma n∞ =|| x||∞ = max | x |i i n−∞ =|| x||−∞ = min | x |i i Tabela 8.1) n1 = 19.2. Vektorske norme Primjer 8.5000 » n2=norm(x.0000 3. Detaljna analiza prezentirana je u literaturi.0000 ilustrovati neke od postojećih normi.0000 4.1 i 8. Zbog toga se i u MATLAB-u koristi kao osnovni algoritam pri izračunavanju. » n1=norm(x. Koriste se u mnogim teorijskim razmatranjima i u pravljenju stabilnih algoritama za računanje.4.0000 -3. ime p-norma 1-norma 2-norma (Euklidova) Vektorske norme definicija i oznaka MATLAB operator norm(x. stabilne i tačne faktorizacije pravougaonih matrica. lijevi i desni inverz.1 Na vektoru x= 1. Navešćemo njihove definicije i odgovarajuće operatore MATLAB-a u tabelama 8.2).3.p) norm(x.4 NORME VEKTORA I MATRICA Norme vektora i matrica predstavljaju skalare koji daju informacije o njihovoj "veličini".0000 2.1. norme matrice i sl. Postoji više različitih normi za vektore i matrice.2) n2 = 7.5000 -4.

norm(A.2) norm(A.-inf) n_inf = 1 Matrična norme definicija i oznaka N 2 = A 2 = max σ i ( A) i ime 2-norma 1-norma MATLAB operator norm(A).4. Matrične norme Primjer 8.1) N1 = 17 » N2=norm(A.'fro') 213 .2.0215 » Ninf=norm(A.inf) ninf = 4.7542 » ninf=norm(x. » N1=norm(A.inf) norm(x.2) N2 = 14.'fro') NF = A F ⎛ m n ⎞ = ⎜ ∑ ∑ aij2 ⎟ ⎝ i =1 j =1 ⎠ 1/ 2 Tabela 8.inf) Ninf = 21 » Nf=norm(A.1) N1 = A 1 = N∞ = A ∞ max ∑ a j i =1 n i j =1 m ij ∞-norma Frobeniusova norma = max ∑ a ij norm(x.MATLAB for Windows np = 5.2 Na matrici A= -1 2 3 4 2 -4 5 6 3 -4 5 -1 8 -6 4 -3 ilustrovati različite matrične norme.5000 » n_inf=norm(x.

Izraz » Nfk=Nf^2 daje kvadrat Frobeniusove norme: Nfk = 287 Singularne vrijednosti matrice A dobićemo sa » s=svd(A) s= 14.0215 8.4.6086 1.^2) s2 = 287.0000 čime smo provjerili navedenu relaciju.2)*norm(x.+ σ 2p .4.9551 2.4 Na primjeru matrice A= 2 -1 3 4 1 -5 i vektora x= 1 -2 4 provjeriti Schwartz-ovu nejednakost: ||A||2≤||A||2||x||2 » n2=norm(A*x.. Primjer 8.3 Za matricu A iz prethodnog primjera provjeriti relaciju 2 || A||2 = σ1 + σ 2 +.9411 Primjer 8.2) nn2 = 30.8440 a sumu njihovih kvadrata sa » s2=sum(s.Linearna algebra i matrične funkcije Nf = 16.0832 » nn2=norm(A. koja povezuje Frobeniusovu normu i singularne F 2 vrijednosti matrice.2) n2 = 24..4403 214 .

db=det(B) daju iste ove veličine za matricu B 215 .1000 0 0 0 0 0 0.1000 0 0 0 0 0 0. On predstavlja indikator osjetljivosti rješenja sistema linearnih jednačina na greške u ulaznim podacima.1 Odrediti determinantu i kondicioni broj za matrice A= 1 -1 -1 -1 -1 0 1 -1 -1 -1 0 0 1 -1 -1 0 0 0 1 -1 0 0 0 0 1 B= 0.da=det(A) daju determinantu i kondicioni broj matrice A ka = 29. kao i indikator tačnosti rezultata dobijenih pri invertovanju matrica i rješavanju sistema linearnih jednačina. Primjer 8. ne postoji neka korelacija izme|u ova dva skalara pridružena istoj matrici. Prirodno je očekivati da je determinanta kvadratne matrice na neki način povezana sa kondicionim brojem. izrazi » kb=cond(B).1000 Izrazi » ka=cond(A).5 KONDICIONI BROJ MATRICE Kondicioni broj matrice predstavlja odnos najveće i najmanje singularne vrijednosti.MATLAB for Windows 8.1000 0 0 0 0 0 0.5. S druge strane. Me|utim. Kondicioni broj matrice X dobija se izrazom cond(X). Za matricu kažemo da je perfektno kondicionirana ako je kondicioni broj jednak jedinici.1000 0 0 0 0 0 0. Takav slučaj je sa ortogonalnim matricama.4275 da = 1 što znači da matrica sa determinantom jednakom jedinici ne mora biti dobro kondicionirana.

U]=lu(A).5000 1.0000 0 0. U∈Rnxn. jer predstavlja jedan od osnovnih načina faktorizacije matrica. daje matrice L i U.Linearna algebra i matrične funkcije kb = 1 db = 1. L∈Rnxn. U MATLAB-u postoji i operator rcond koji može poslužiti za procjenu podešenosti matrice za računanje. Izraz rc=rcond(X) daje procjenu recipročne vrijednosti kondicionog broja. Navodimo ga najviše iz pedagoških razloga. matrica je perfektno kondicionirana za rc=1. pri čemu L ima donju trougaonu formu a U gornju trougaonu formu.6.0000 0 0 216 . Primjer 8.3333 1.0000e-005 iz čega vidimo da perfektno kondicionirana matrica može da ima malu vrijednost determinante.6667 0. Ovakva dekompozicija koristi se pri rješavanju sistema linearnih jednačina Gausovom eliminacijom i pri invertovanju nesingularne matrice.1 L-U dekompoziciju ilustrovaćemo na primjeru matrice A= 1 4 7 2 5 8 3 6 11 Izraz » [L.U]=lu(A) daje faktore L i U L= 0. pomoću izraza [L. Kao gruba procjena može poslužiti sljedeće pravilo: pri zaokruživanju kod Gausove eliminacije računar gubi tačnost na onoliko decimalnih mjesta koliki je logaritam (za osnovu 10) kondicionog broja.0000 1. dok male vrijednosti rc služe kao indikator loše podešenosti matrice. 8. Znači. već u permutovanoj donjoj trougaonoj formi. Napominjemo da faktor L koji proističe iz MATLAB-ovog operatora lu nije u čistoj.6 TROUGAONA (L-U) DEKOMPOZICIJA L-U dekompozicija kvadratne matrice A∈Rnxn sastoji se u prikazivanju matrice A kao proizvoda A=LU. Operator lu.

Postoji oblik funkcije lu sa tri izlazna argumenta [L.8000 0 -0.3333 0 0 -1.1 Naći Hessenbergovu formu matrice A= 1 5 3 0 4 3 Izraz 7 6 1 » [P.P]=lu(A) gdje je P permutaciona matrica takva da važi P*A=L*U.0000 11.9600 Lako se provjerava da izraz » P'*P 217 .H]=hess(A) daje matrice P i H P= 1.0000 4.7200 0 2.7.6000 0. gdje PH označava konjugovanu transpoziciju kompleksne matrice P (u slučaju realne matrice ova operacija se svodi na običnu transpoziciju).9600 -0. Operator hess nalazi Hessenbergovu formu kvadratne matrice.H]=hess(A) pored H daje i unitarnu matricu P tako da važi dekompozicija: A=PHPH uz PHP=I. Hessenbergova matrica ima takav oblik da su joj svi elementi ispod prve subdijagonale jednaki nuli.MATLAB for Windows U= 3.7 HESSENBERGOVA FORMA I SCHUROVA DEKOMPOZICIJA Ove dvije dekompozicije koriste se pri izračunavanju sopstvenih vrijednosti i sopstvenih vektora.2800 -3.0000 3. Izraz H=hess(A) daje Hessenbergovu formu matrice A.6000 H= 1.2000 -5.0000 Lako se provjerava da je L*U=A.8000 0. 8.0000 6. dok izraz [P.0000 0 2.6000 -0.0000 -8.0000 0 0 0 -0. Primjer 8.U.

1322 S= 0.7633 -0. Realna Schur-ova forma razlikuje se od kompleksne u tome što se realne sopstvene vrijednosti nalaze na dijagonali.3110 -0.4388 0. Kompleksna Schur-ova forma matrice je gornja trougaona matrica sa sopstvenim vrijednostima te matrice na glavnoj dijagonali.0000 7.0000 0.0000 0 0. Primjer 8.4989 0.0000 3.0000 6.0000 5. tako da važe relacije: A=USUH i UHU=I. Schur-ova forma nalazi se pomoću operatora schur.0000 1.0000 4. dok izraz [U.2681 0.0000 1.1319 0.3780 0.4569 -0.0000 U zavisnosti od toga da li matrica A ima realne ili kompleksne elemente.6581 -0.5499 0. a konjugovano-kompleksne sopstvene vrijednosti su raspore|ene u (2x2)-dimenzione blokove oko glavne dijagonale.S]=schur(B) daje matrice S i U U= 0.0000 0. postoje realna i kompleksna Schur-ova forma matrice. Izraz S=schur(A) daje Schur-ovu formu matrice A.0714 0.7330 -0.0000 0 0 0 1.7.2 Za matricu sa realnim elementima B= 1 -3 1 2 izraz -2 3 4 -4 5 2 4 7 -5 0 -2 3 » [U.5836 218 .0000 dok izraz » P*H*P' daje početnu matricu A ans = 1.2437 0.0000 3.Linearna algebra i matrične funkcije daje jediničnu matricu ans = 1.8619 -0.S]=schur(A) daje još i unitarnu (ortogonalnu) matricu U.

0000i 4.0000 0.0000 0.0000 + 1.2968i 0.5313 + 3.6171 . izračunaćemo » U'*U ans = 1.8304 0.0000 4.0000i -2.0000 + 1.0000 3.4296 + 0.9777 .4265 2.0000 -3.0000 5.0000 4.MATLAB for Windows -7.0000 Za ilustraciju kompleksne Schur-ove forme.0.0000 3.0000 1.0000 2.0.0000 + 0.0000 0.0000i -4.0000i 9.0.0000i -3.0000i 2.0000 0.3834 0 0 0 9.0000 + 1.0000 .0000 + 1.0000 + 1.0000 0. pomoću izraza » C=ones(4).0000i 7.0000i 3.0000 1.0000 0.0000 + 0.D=B+i*C.0000 0.2529i 3.7179i 0.0000 + 1.3671 + 0.0000 4.0000 -2.0000 .6076 Za provjeru.0000 + 1.0000i 4.0000 0. formiraćemo kompleksnu matricu D= 1.2284i 0.0000 0.0000 + 1.0000i 0.0000 » U*S*U' ans = 1.0000i 5.2720i -1.0000 0.3277i 0.0000 + 1.0000 -4.0000i 1.0000 + 1.2795i -0.0000 + 1.0000 + 1.5800 .0000 2.0000i -2.0000 -2.7507 + 1.1186 2.0000 + 1.2407 + 2. 8.0.2405i 0.8 CHOLESKY-jeva FAKTORIZACIJA 219 .0000 0.0000 7.0000i 2.1813 1.0000 .0.0000i -5.2518i Za prevo|enje matrice iz realne u kompleksnu Schur-ovu formu služi operator rsf2csf.0000i 3.2889 0 0 0.2.0000i 0.0000 0.0000 + 1.0000i 4.0000i 0 + 1.0000 1.0000 + 1.0000 1.4487 + 0.0000 0.0000 .6376 1.1794i 1.9785 -0.0000i Izraz » T=schur(D) daje kompleksnu Schur-ovu formu T= -7.0000i 0.4062 + 0.0000 -5.0.0000i 0.3408 2.

koja je moguća samo za pozitivno definitne matrice.0000 2. Podsjetimo se da se za kvadratnu matricu A kaže da je pozitivno definitna ako je pridružena kvadratna forma q=xTAx (q je skalar) pozitivna za sve vrijednosti vektora x.0000 -5.8284 0.2404 -0. Izraz R=chol(A) daje matricu R u gornjoj trougaonoj formi tako da važi RHR=A za matrice sa realnim elementima. Inače. jedan od mogućih testova za ispitivanje pozitivne definitnosti matrice je uslov da su sve njene sopstvene vrijednosti pozitivne. osim za x=0.7678 0 3. Primjer 8. izraz » R'*R daje polaznu matricu ans = 8.. računar će javiti grešku. Operator chol izvodi ovakvu faktorizaciju.0000 -2. definitnost i sl.1958 Za provjeru. koristi pri kreiranju algoritama za rješavanje problema.0000 11.0000 2. Jedna od takvih metoda je i Cholesky-jeva dekompozicija matrice.Linearna algebra i matrične funkcije Osnovno pravilo u numeričkoj analizi je da se posebna struktura sistema jednačina (odnosno pridružene matrice) kao što je simetrija.1 Naći Cholesky-jevu faktorizaciju za matricu A= 8 2 -5 2 11 -2 -5 -2 8 Najprije ćemo provjeriti da li je matrica pozitivno definitna sa » eig(A) ans = 9.0000 3.8.2315 0 0 2.7071 -1.0000 220 . kada je q=0.0000 » R=chol(A) daje traženu matricu R= 2.0000 15. Ukoliko tražimo Cholesky-jevu faktorizaciju za matricu koja nije pozitivno definitna. odnosno RTR=A za matrice sa kompleksnim elementima.

9.E]=qr(X) daje permutacionu matricu E.0000 0 0 0 Lako se provjerava da je Q*R=A. tako da važi relacija XE=QR.5433 -0. i važi X=QR.7762 0. i gornje trougaone matrice.R]=qr(X) daje matrice Q i R sa opisanim osobinama. 8.0913 -0.0776 -0.0000 -2.0605 -0. Ovakva dekompozicija primjenjuje se za rješavanje sistema linearnih jednačina. gornju-trougaonu matricu R sa opadajućim elementima na dijagonali i ortonormalnu matricu Q.9 ORTOGONALNA (Q-R) DEKOMPOZICIJA Q-R faktorizacija primjenjuje se na matrice i pravougaonog i kvadratnog oblika.8841 -14.0694 -0. upotrijebićemo 221 .R]=qr(A) Q= -0.p]=chol(X). a pokazuje se.0826 0 0 0.3178 0.3251 -0.5916 -16.4461 R= -12.1 Za matricu A= 1 2 3 4 5 6 7 8 9 10 11 12 naći ćemo Q-R dekompoziciju pomoću izraza » [Q.MATLAB for Windows -5.5444 0.R.2992 0 -1.4512 -0. Napomenimo da se iz oblika matrice R može izvesti zaključak o rangu matrice A. Izraz [Q. vraća vrijednost p za koju je matrica X(1:p.7709 0. pri čemu je dimenzija R ista kao matrice X.0000 8. da je to istovremeno i rang matrice A.0413 -2. Izražava datu matricu kao proizvod ortonormalne matrice (za realne) ili unitarne matrice (za kompleksne). očigledno je da R ima rang 2.3105 -0. Ukoliko želimo drugu verziju ovakve dekompozicije.3124 0. Oblik [Q.8317 -0.8331 0.0000 U slučaju da matrica X nije pozitivno definitna [R. Primjer 8.1:p) pozitivno definitna. Naime.

7274 -0.0888 0. BAZIS ZA SLIKU I KERNEL LINEARNOG OPERATORA Rang matrice može se definisati na više načina. null.1776 0.1665 0.1776 0.3651 -0. Operator rank možemo koristiti u dvije verzije: 222 . pa se može dogoditi da za istu matricu dobijemo različite rezultate.6059 0 1. \. 8.Linearna algebra i matrične funkcije » [Q. Pri tome se koriste različite vrijednosti tolerancije.1826 -0.4317 -12.4133 -0.10 RANG. formiraćemo razliku » A*E-Q*R sa rezultatom ans = 1.0000 0 0 0 E= 0 1 0 0 0 1 1 0 0 Za provjeru. orth.4057 R= -16.0888 0.3680 -0. ali se najpouzdaniji rezultat dobija upotrebom operatora rank koji koristi dekompoziciju preko singularnih vrijednosti.7802 -14.0000 0. sa tačnošću do četrnaeste decimale.3109 0.4082 0.1883 0.6330 0.1776 što znači da je AE=QR.1776 0. qr. U MATLAB-u postoji nekoliko operatora koji se direktno ili indirektno služe algoritmima za nalaženje ranga.1776 0.8152 0.7303 -0.8165 0 0 0. Rang možemo dobiti koristeći operatore rref.1776 0.0e-014 * 0.4082 0.5477 -0.0888 0.0038 0.8165 -0. pa se i za njegovo izračunavanje koriste različiti algoritmi.R.5477 -0. Ovaj operator koristi se i za pinv koji nalazi pseudo-inverznu matricu.0444 0.E]=qr(A) sa rezultatom Q= -0.

Dok orth služi za nalaženje bazisa za Im(A).10.10.tol) znači da zanemarujemo sve singularne vrijednosti manje od tol. takozvanog nul-prostora ili Ker(A).0000e-014 izraz » r=rank(X. Primjer 8.tol). gdje je I jedinična matrica iste dimenzije kao A. Primjer 8. koji daje r kao broj singularnih vrijednosti matrice X koje su veće od proizvoljno zadatog malog broja tol.MATLAB for Windows r=rank(X). i može se pokazati da važi QTQ=I.1 Za matricu X= 6 -4 -4 -9 24 3 0 -9 -14 3 4 12 48 25 16 9 odredićemo rang sa » r=rank(X) r= 2 Ako uzmemo tol = 1. i r=rank(X. i daje r= 2 Za izračunavanje bazisa slike linearnog operatora pridruženog matrici A koristi se operator orth. koji daje r kao broj singularnih vrijednosti matrice X koje su veće od broja e=max(size(X))*norm(X)*eps. a broj kolona matrice N odre|uje dimenziju Ker(A). tj. koji čine kolone matrice Q. važe relacije: NTN=I i AN=0. Izraz Q=orth(A) daje ortonormalni bazis za sliku matrice A. Izraz N=null(A) daje matricu N čije kolone predstavljaju ortonormalni bazis za Ker(A). Broj kolona matrice Q predstavlja rang matrice A.2 Na matrici A= 1 1 3 4 5 6 223 . operator null koristi se za nalaženje bazisa drugog važnog podprostora pridruženog matrici A.

kao i matrica A+=AT(AAT)-1 za slučaj da je m<n.3187 sa dvije kolone. Izraz » N=null(A) daje matricu N= 0.4082 koja definiše Ker(A). Znači.4508 -0.4082 -0.8165 0. 8.11. rang A je 2 a vektori koji razapinju Im(A) su odre|eni kolonama matrice Q.5801 0.2814 0. a možemo je promijeniti zadavanjem proizvoljno malog broja tol1 i korišćenjem izraza oblika pinv(A.4508 -0. U literaturi se za ovakvu matricu koristi i termin pseudoinverzna matrica a koristi se kod rješavanja sistema linearnih jednačina u smislu najmanjih kvadrata. Tako » Q=orth(A) daje matricu Q= 0.3152 0.4246 0.11 MOORE-PENROSE PSEUDOINVERZIJA MATRICE Za datu matricu A∈Rmxn postoji jedinstvena matrica A+ koja zadovoljava slijedeća četiri uslova: (a) AA+A=A (b) A+AA+=A (c) (AA+)T=AA+ (d)(A+A)T=A+A i naziva se Moore-Penrose inverz matrice A. a samo računanje se vrši pomoću singularnih vrijednosti. U MATLAB-u se za izračunavanje pseudoinverzne matrice koristi izraz oblika X=pinv(A).1 Za matricu 224 .Linearna algebra i matrične funkcije -1 5 3 -1 4 2 1 3 5 ilustrovaćemo primjenu operatora orth i null.5602 -0. Lako se pokazuje da za m>n matrica A+=(ATA)-1AT zadovoljava gornje uslove.6174 0.tol1). koji u ovom slučaju ima dimenziju 1.3187 0. Tolerancija koja služi za zanemarivanje singularnih vrijednosti uzima se po automatizmu kao tol=max(size(A))*norm(A)*eps. Primjer 8.

0284 0. 8.1127 0. 8.12.0569 1 0 -1 -0.0237 0.1162 0.1549 -0.2227 0.1 HOMOGENI SISTEM JEDNA^INA Za y=0 dobijamo homogeni sistem jednačina Ax=0.1725 0.3223 0.1690 0.0948 -0.0284 0.1090 0.2796 -0.2844 0.4408 dok za matricu B= 1 2 -3 1 0 sa 0 1 3 3 1 » Bp=pinv(B) dobijamo Bp = 0.12 RJE[AVANJE SISTEMA LINEARNIH JEDNA^INA U nekolika naredna odjeljaka ilustrovaćemo mogućnosti primjene MATLAB-a za rješavanje sistema linearnih jednačina opisanog na početku ovog poglavlja. kojega smo u matričnoj notaciji predstavili sa Ax=y.0141 0. Poznato je da se trivijalno rješenje ovog sistema dobija za x=0.MATLAB for Windows A= 1 1 1 1 1 -4 0 0 0 0 1 1 » Ap=pinv(A) Ap = 0.0704 0.1611 0.1611 0. Ako je A∈Rmxn netrivijalno 225 .0711 -0.0528 Lako se provjerava da izrazi » inv(B'*B)*B' » A'*inv(A*A') daju iste rezultate za pseudoinverzije matrica A i B.2796 0.0141 0.0810 0.

gdje je a proizvoljni realni skalar. W je dato sa » W=[A. odakle lako nalazimo rješenje. tako da se za ovakav sistem jednačina može koristiti operator null koji definiše bazis za Ker(A). rješenje datog sistema jednačina.Linearna algebra i matrične funkcije rješenje je moguće naći samo ako je r(A)<n.8165 0. Primjer 8. U tom smislu.1)] W= 1 3 5 0 1 4 6 0 -1 5 3 0 -1 4 2 0 1 3 5 0 Sa » R=rref(W) dobijamo R= 1 0 0 0 0 0 1 0 0 0 2 1 0 0 0 0 0 0 0 0 226 . Pošto je u ovom slučaju y=0.zeros(5.4082 Vidimo da Ker(A) ima dimenziju 1. što znači da je x=an.4082 -0. a takvih rješenja ima beskonačno mnogo.12. koji daje takozvanu redukovanu ešalonsku formu matrice.1 Naći sva netrivijalna rješenja za sistem Ax=0. prvo formiramo proširenu matricu W=[A y] a zatim na|emo rref(W). Sva rješenja su definisana sa Ker(A). Napomenimo da za rješenje ovog problema možemo koristiti i operator rref. gdje je A= 1 3 5 1 4 6 -1 5 3 -1 4 2 1 3 5 Najprije ćemo naći bazis za Ker(A) sa » n=null(A) n= 0.

Primjer 8. Iz čitave familije rješenja možemo izdvojiti ono koje ima minimalnu normu.12.2 Naći rješenje sa minimalnom normom za sistem opisan sa A= 1 1 1 1 1 1 -4 0 0 0 0 0 1 1 -1 y= 1 0 0 Najprije provjerimo rang A sa » rank(A) i pošto dobijemo da je r(A)=3.12.1611 0.1611 0. Lako se pokazuje da se rješenje xm koje ima minimalnu normu dobija sa operatorom pinv kao xm=pinv(A)*y. koje ispunjava uslov ||x||min.2844 0.0711 0. nalazimo rješenje minimalne norme sa » xm=pinv(A)*y xm = 0.3223 Napomenimo da se drugo rješenje može dobiti pomoću operatora \ za "dijeljenje" slijeva. kada je r(A)=r(W)=m. Bez gubitka na opštosti razmatranja.2 SISTEMI SA VE]IM BROJEM NEPOZNATIH OD BROJA JEDNA^INA Kada je m<n ne postoji mogućnost nalaženja jedinstvenog rješenja.MATLAB for Windows odakle neposredno slijedi: x1+2x3=0 i x2+x3=0. 8. tj. postoji beskonačno mnogo rješenja sistema jednačina. a lako se pokazuje da sva leže u Ker(A). posmatraćemo slučaj kada je r(A)=m jer za r(A)<m neke jednačine možemo ispustiti zbog linearne zavisnosti sa preostalim jednačinama. Shodno ranijem razmatranju. kao » x1=A\y x1 = 0 0. Iz ovoga sistema vidimo da ima beskonačno mnogo rješenja.0000 227 .

tačno rješenje moguće je naći samo u rijetkim slučajevima kada je y∈Im(A).Linearna algebra i matrične funkcije 0.12.4916 i normu x1 ans = 0.r2=rank([A y]) sa rezultatima r1=2 i r2=3. dobijaju se i različite vrijednosti xp. Primjer 8.5000 0 0.3 SISTEMI SA VE]IM BROJEM JEDNA^INA OD BROJA NEPOZNATIH Za odnos n>m. Jedan od načina da se na|e približno rješenje xp je minimizacija xp=minx||Ax-y||.7071 što potvr|uje da je norma xm manja. 8. U zavisnosti od izbora norme. za A= 1 0 2 1 -3 3 1 3 0 1 y= 1 -3 4 2 8 Najprije ćemo ispitati rang matrica A i W=[A y] sa » r1=rank(A). za pogodno izabranu normu || ||p. Pokazano je da se problem minimizacije najpogodnije formuliše za 2-normu jer je f(x)=||Ax-y||2 kontinualno diferencijabilna funkcija od x.3 Naći rješenje sistema jednačina Ax=y.5000 Ako provjerimo norme rješenja xm i x1 sa » norm(xm).norm(x1) dobijemo normu xm ans = 0.12. što znači da y≠Im(A) pa ćemo rješenje tražiti u smislu najmanjih kvadrata. sa 228 . Za nalaženje rješenja u smislu najmanjih kvadrata mogu poslužiti operatori pinv i \. a njenom minimizacijom dobija se rješenje xp optimalno u smislu najmanjih kvadrata.

229 . i sl. Na primjer. Ako je f(z) skalarna funkcija.'sin') i F3=funm(A. Vidimo da je matrična exponencijalna funkcija definisana analogno skalarnoj.7324 1. Opšti izraz F=funm(A. Ovdje ćemo samo napomenuti da se pouzdani algoritmi zasnivaju na Schur-ovoj dekompoziciji matrice i Parlett-ovom metodu za računanje f(S). Pored ovakvih..0035 8. sinusnu i logaritamsku funkciju. = ∑ k =0 ∞ . exp. F2=funm(A. respektivno.0035 Isti rezultat u ovom slučaju dobija se i pomoću operatora \: » x2=A\y x2 = -0. ako (1 + z ) matričnu funkciju ćemo definisati sa f(A)=(I+A)(I-A)-1.. a takav pristup može se uzeti pri definisanju proizvoljne funkcije.13 MATRI^NE FUNKCIJE Vidjeli smo da elementarne matematičke funkcije (npr.7324 1. e A = I + 1A! + A2 2! + .'exp'). Operator funm služi za računanje matričnih funkcija.'log10') daju matričnu eksponencijalnu. definisana na spektru matrice A. i to samo za kvadratne matrice. gdje je S Schur-ova forma matrice A. ⎣ a21 a22 ⎦ ⎡ exp( a11 ) exp( a12 ) ⎤ ⎢ exp( a ) exp( a ) ⎥ . uz uslov je f ( z ) = (1 − z ) da broj 1 nije sopstvena vrijednost matrice A.) prihvataju kao argument matrice proizvoljne dimenzije i tretiraju ih kao polja brojeva. računa pomoću izraza expm(A). u zavisnosti od stringa 'funkcija'. ⎡ a11 a12 ⎤ Posmatrajmo matricu Funkcija exp(A) znači A=⎢ ⎥. Detaljno razmatranje matričnih funkcija i algoritama za njihovo izračunavanje može se naći u literaturi. tj. vrše naznačenu operaciju na principu element-po-element. sin. Tako izrazi F1=funm(A.'funkcija') daje pojedine matrične funkcije.MATLAB for Windows » x1=pinv(A)*y x1 = -0. 21 22 ⎦ ⎣ dok Ak k! se matrična eksponencijalna funkcija. tada se matrična funkcija f(A) dobija jednostavnom "zamjenom" skalara z matricom A u izrazu f(z). u MATLAB-u postoji mogućnost računanja i matričnih funkcija koje su definisane na suštinski različitom principu.

2673 7.0000 0. matričnu eksponencijalnu funkciju dobićemo sa » Em=expm(A) Em = 1.1 1 0.1612 0.3891 Matrični kvadratni korijen dobija se sa 230 .0000 -1.0000 0.Linearna algebra i matrične funkcije Pored funm.3891 Za razliku od exp(A).13. brže a često i tačnije rezultate od funm( . pri čemu su logm(X) i sqrtm(X) ekvivalentni sa funm(X.0000 4.1612 0 1. izraz » logm(Em) daje polaznu matricu A ans = -1.2673 7.0000 2.4745 -0.7183 2.4952 0. pa je rezultat E= 0.4745 -0.5806 4. logm i sqrtm.0000 2.0000 2.'exp') a dobija se isti rezultat kao i sa expm(A): E1 = 1.0000 7.4952 0 4.3891 0. Napomenimo da expm daje pouzdanije. Primjer 8.'exp').3891 1.5806 4.1 Ilustrovaćemo pojedine matrične funkcije na primjeru matrice ⎡ − 1 2 0⎤ A= ⎢ 1 1 0⎥ ⎢ ⎥ ⎢ 2 − 1 2⎥ ⎣ ⎦ Najprije ćemo unijeti matricu i naći običnu eksponencijalnu funkciju » A=[-1 2 0.0000 1.3891 Pošto je logm inverzna matrična funkcija za expm. dok izraz expm(X) računa matričnu eksponencijalnu funkciju eX po posebnom algoritmu koji koristi Pade-ov razvoj.0000 1.2 -1 2].7183 1.0000 2.0000 Matričnu eksponencijalnu funkciju možemo izračunati i sa » E1=funm(A. » E=exp(A) gdje se A smatra kao polje brojeva.3340 3.3340 3.0000 1.3679 7.3679 7.'sqrt'). postoje i operatori expm.'log') i funm(X.

2 Izračunati sin(B).0000i 0.0.0000 + 0.0000i 2.0000i 0. za ⎡1 − 4 1 ⎤ B = ⎢1 − 1 1 ⎥ ⎢ ⎥ ⎢ 4 2 − 3⎥ ⎣ ⎦ Matričnu funkciju sin(B) možemo izračunati sa » S=funm(B.0000i 1.6339 231 .5782 1. end Sa ovako kreiranim fajlom.7598 .6237 0.4817i 1.6241 1.5324 3.0843 1.6241 1.4649 -3. ali se lako može kreirati sa posebnim funkcijskim fajlom sinm koji se automatski dodaje listi MATLAB-ovih operatora.MATLAB for Windows » Q=sqrtm(A) Q= 0.0380i 0.0000i 2.0000 .0000 .0000i -1.0380 + 0.6237 0.6339 U MATLAB-u ne postoji operator sinm za matrični sinus.3799i 1.0000 + 0.7562 . Na osnovu izraza sin A = (eiA + e − iA ) / 2i jednostavno pravimo novi fajl u Notepad-u sa: function y=sinm(x) y=(expm(i*x)-expm(-i*x))/(2*i).2049 0.6580i -0.0261 -1. Zaista ans = -1.0000i 0.13.5324 3. sada možemo izračunati sin(B) sa » S1=sinm(B) što daje isti rezultat kao i operator funm(B.0.0.0.7598i 0.3836 + 0.0000i 0.0000i 1.2781 + 1.0.'sin'): S1 = 3.0000i 2.2781i 0.3799 .4142 + 0.0000 .0261 -1.0.'sin') S= 3.0000i Primjer 8.0000 + 0.2049 0.0000 .0.0000 + 0.0000 + 0. s obzirom da iz definicije matričnog kvadratnog korijena proizilazi relacija Q2=A.0000i a kao provjera može poslužiti izraz » Q^2 koji treba da rezultira u polaznoj matrici.0.0000 .0000 + 0.4649 -3.0843 1.5782 1.

sinh(X). 232 . ukoliko nam je tako nešto pogodnije od odgovarajućeg operatora funm. i sl..Linearna algebra i matrične funkcije Na analogan način možemo kreirati funkcijske fajlove i za druge matrične funkcije kao na primjer cos(X).

1.m) i za koju važe ista pravila kao za pravu jediničnu matricu. već smo naveli da u opisivanju struktura teorije algoritama. kako se vrši konverzija rijetke u "punu" matricu. Osim ovog pragmatičnog razloga. U poslednje vrijeme u inžinjerskoj praksi kao i teoriji algoritama intenzivno se koriste tzv. lista. obradu slike. drveta. dopunjavajući se funkcijama potrebnim u savremenoj inžinjerskoj praksi. Ove strukture se koriste za algoritme sortiranja i preure|ivanja i već su odomaćene u programerskoj praksi. neuralne mreže. elektroenergetiku. Ove matrice imaju mali broj nenultih elemenata.1 KREIRANJE RIJETKE MATRICE Rijetka matrica se može formirati na više načina. Osnovna rijetka matrica je rijetka jedinična matrica koja se dobija naredbom speye(n. U TOOLBOX-ovima se nalaze funkcije zajedničke za rješavanje grupe problema u jednoj oblasti. kao i osnove vizuelizacije rijetke matrice i drveta. kontrolu i automatiku. grafova. itd. rijetke matrice. Tako postoje specifični TOOLBOX-ovi za obradu signala. osnovni MATLAB se proširuje specifičnim funkcijama. U ovom poglavlju će na nekoliko ilustrativnih primjera biti objašnjeno šta je to rijetka matrica. fazi logiku. Istovremeno. Nepraktično je čitave ove matrice držati u memoriji računara već samo nenulte elemente. Prvi je način primjena neke od elementarnih rijetkih matrica. 9. veoma se često koriste rijetke matrice. Naredbi koje se tiču rijetkih matrica veoma veliki broj i date su u tabeli 9. speye Naredbe za rad sa rijetkim matricama rijetka jedinična matrica 233 . Dio ovih funkcija se isporučuje u osnovnom MATLAB-u dok se dio isporučuje u okviru TOOLBOX-ova.MATLAB for Windows glava deveta RIJETKE MATRICE MATLAB je softverski paket koji se stalno dogra|uje. Niz algoritama u kojima se koriste rijetke matrice i drveta implementiran je posebnim MATLAB funkcijama.

3)=5 a= (1. Za rijetke matrice.3) (3. kao i za sve ostale naredbom whos dobijaju se osnovne informacije 234 .Rijetke matrice sprandn sprandsy m spdiags sparse full spconvert nnz nnzeros nzmax spones spalloc issparse spfun spy gplot treeplot rijetka slučajna matrica rijetka simetrična slučajna matrica rijetka dijagonalna matrica kreiranje rijetke matrice kreiranje "pune" matrice iz rijetke konvertovanje rijetke matrice broj nenultih elemenata nenulti elementi veličina prostora koji zauzimaju nenulti elementi nenulti elementi rijetke matrice se postavljaju na jedinicu zauzimanje memorije za nenulte elemente provjera da li je matrica rijetka primjenjuje funkcije na nenulte elemente vizuelizacija nenulte matrice crtanje grafa kao u "teoriji grafova" crtanje drveta Tabela 9. » a=speye(5). pa nakon toga elementu a(2.1) (2.5) 1 1 5 1 1 1 Vidimo da se na ekranu štampaju samo oni elementi matrice koji su nenulti a da bi bili jednoznačno odre|eni pored njih se ispisuju indeksi koji ukazuju na poziciju tih elemenata u matrici. » a(2.4) (5.2) (2.1.1 Funkcije za rad sa rijetkim matricama Primjer 9.3) (4.3) dodijeliti vrijednost 5.1 Kreirati rijetku jediničnu matricu a dimenzija 5x5.

1) 3 (2. Za "punu" matricu ova veličina je Full. dobijamo "punu" matricu. s tim da aritmetički izraz u kojem se pojavljuju samo rijetke matrice daje kao riješenje rijetku matricu a ako se uključi makar jedna "puna" matrica rezultat je "puna" matrica.1.MATLAB for Windows » whos Name Size Elements Bytes Density Complex a 5 by 5 6 92 0. Primjer 9. Rijetke matrice se ravnopravno kao "pune" mogu koristiti u aritmetičkim izrazima. Nakon toga rezultat sabrati sa matricom nultih elemenata koja ima sve elemente nule (naredba zeros u pitanju je "puna" matrica) » b=speye(5). » C=2*a+b C= (1.5) 3 Sabiranjem ove matrice sa "punom" matricom čiji su svi elementi nule dobija se puna matrica » C+zeros(5) ans = 3 0 0 0 0 0 0 0 0 3 10 0 0 0 3 0 0 0 0 3 0 0 0 0 3 I pored toga što nijesmo mijenjali vrijednost matrice. Da zaključimo da se rijetka matrica može pretvoriti u "punu" naredbom 235 .2400 No Grand total is 6 elements using 92 bytes Za rijetke matrice uočimo značajan podatak Density koji predstavlja količnik broja nenultih elemenata sa ukupnim brojem elemenata matrice.2 Rijetku matricu iz prošlog zadatka pomnožiti sa dva i sabrati sa rijetkom speye(5).2) 3 (2.3) 10 (3.4) 3 (5.3) 3 (4.

1 Na|imo sin i cos rijetke matrice C iz prethodnih primjera.2) (5.1411 (2.1411 (2.2.0000 1.4) (4.2) (4.1) (1.0000 236 .0000 1.1) (3.1411 » cos(C) ans = (1.1) (2.0000 1. » sin(C) ans = (1.4) (2.1) (4.1411 (5.3) (5.2) (1.2) (2.0000 1.0000 1.5440 (3.0000 -0.3) (2.1) 0.4) (3.3) -0.0000 1.3) (4.4) (5. Primjer 9.3) 0.9900 1.0000 1.4) 0.9900 1.2) (3.1411 (4.9900 1.2 RIJETKA MATRICA I FUNKCIJE Rijetka matrica na koju je primjenjena funkcija i dalje ostaje rijetka.Rijetke matrice » C+zeros(size(C)) 9.3) (3.5) 0.0000 1.1) (5.0000 -0.9900 1.2) 0.0000 -0.8391 -0.4) -0.3) (1.0000 1.0000 1.0000 1.

3) -0.0000 -0.5) 9.0000 1.2) -0.0000 1. To se postiže naredbom spfun('fun'.C) ans = (1.3.3 KONVERZIJA PUNE MATRICE U RIJETKU I OBRNUTO Za konverziju pune matrice u rijetku koristi se naredba sparse.5) (4. (1.9900 (2.9900 Postoji čitav niz funkcija koji se odnosi na rijetke mattrice a koji se može naći u tabeli 9.8391 (3.5) (3.2. Primjer 9.A) gdje je fun ime MATLAB funkcije a A rijetka matrica.1.9900 Vidi se da matrica cos(C).9900 (2.MATLAB for Windows 1. ili pomoću help-a.1) -0.5) (5.3) A= 1 0 0 0 1 0 0 0 1 0 0 0 237 .5) -0. Primjer 9. Ovdje ćemo pomenuti samo funkciju spones koja nenulte elemente matrice argumenta pretvara u jedinice. naredbama » A=eye(4.5) (2.9900 (5.1 Matricu A=eye(4. iako sa svim nenultim vrijednostima.3) možemo konvertovati u rijetku matricu. Ako je argument ove naredbe matrica (koja može biti "puna" ili rijetka) rezultat ove naredbe je rijetka matrica čije su dimenzije jednake dimenzijama polazne matrice. Ponekad je potrebno neku funkciju primijeniti samo na nenulte elemente rijetke matrice.3) -0.4) -0.2 Na nenulte elemente matrice C primjeniti funkciju cos.9900 (4.0000 1. i dalje ostaje rijetka. » spfun('cos'.

» spy(C) 0 1 2 3 4 5 6 0 1 2 3 nz = 6 4 5 6 Slika 9. U MATLAB-u se obilazak binarnog drveta definiše po srednjem redosljedu koji se može opisati sljedećim algoritmom: 1o Obilazi se po srednjem redosljedu lijevo poddrvo korijena stabla. 238 . itd. koji se može implementirati direktno (PROLOG i LISP) ili preko samoreferentnih struktura (C i PASCAL).2) 1 (3. Visina drveta je rastojanje od korijena drveta do najudaljenijeg lista.4. Primjer 9.1 Grafički prikaz rijetke matice naredbom spy Drvo je složeni tip podataka u brojnim programskim jezicima. Binarno drvo je ono drvo čiji svaki čvor može imati samo dva sina koje nazivamo lijevi i desni sin čvora.4 GRAFI^KI PRIKAZ RIJETKE MATRICE I DRVETA Pozicije nenultih elemenata rijetke matrice crtaju se naredbom spy. Svaki čvor drveta može da ima više sinova (grana drveta) a sinovi svoje sinove. » full(C) 9. ^vor koji nema roditelja je korijen stabla a čvorovi koji nemaju sinove su listovi.Rijetke matrice » sparse(A) ans = (1.3) 1 » size(A) ans = 4 3 Već smo vidjeli kako se rijetka matrica može konvertovati u punu.1 Nacrtati pozicije nenultih elemenata matrice C primjera 9. Za ovo može služiti i naredba full.1.1) 1 (2.2.

'r') 1 0.2 u krugovima su upisane pozicije po srednjem redosljedu. gdje je p vektor čiji svaki element ukazuje koji je čvor roditelj datom čvoru.2 0.2 Nacrtati stablo sa slike 9.2 naredbom treeplot.3 0.'y'.'c'.4 0.MATLAB for Windows 2o Zatim se obilazi korijen. Prikaz stabla funkcijom treeplot 239 .9 0.2.3.2 0. Puno binarno stablo visine 2 Za crtanje drveta u MATLAB-u služi funkcija treeplot(p.7 0.8 0.5 0.1 0 0 0. Za korijen se usvaja da mu je korijen 0. 3o Po srednjem redosljedu se obilazi desno poddrvo korijena stabla. 4 2 1 3 5 korijen 6 7 list Slika 9.8 1 Slika 9.6 height = 2 0. » p=[2 4 2 0 6 4 6] » treeplot(p.6 0. Primjer 9.'d').4 0. 'c' je boja u kojoj se crta stablo dok je 'd' boja kojom se crta veza korjena sa najudaljenijim listom stabla.4. Za stablo sa 7 čvorova prikazano na slici 9.

save fajl. B i C u datoteku FAJL. B i C.MAT. B i C u datoteku FAJL. koristimo naredbu save čiji su oblici Snima sve podatke iz radnog prostora u datoteku MATLAB.MATLAB for Windows glava deseta ULAZNO IZLAZNE NAREDBE MATLAB posjeduje velike mogućnosti razmjene podataka sa ostalim programskim aplikacijama. Sa nekim naredbama koje mogu da sačuvaju i proslijede rezultate rada u MATLAB-u već smo se sretali. MATLAB može da šalje podatke na zvučnik računara i da ih smješta u format podataka .EXT u osmobitnom ASCII zapisu.EXT u šesnaestobitnom ASCII zapisu. save fajl A B C U datoteku FAJL. save Za učitavanje podataka sa diska koristi se naredba load čiji su oblici load load fajl Učitavanje iz datoteke MATLAB. Učitavanje podataka iz datoteke FAJL.WAV koji je standard za obradu zvuka.MAT. Nove MATLAB ulaznoizlazne naredbe niskog nivoa postoje u obliku analogije sa naredbama koje u C programskom jeziku služe za rad sa fajlovima.EXT u šenaestobitnom ASCII zapisu sa Tab znakom kao razmakom izme|u podataka.Dinamic Data Exchange) što u okviru ove knjige neće biti detaljnije obrazlagano.MAT.ext A B C -ascii Zapisuje matrice A.ext A -ascii -double -tab Zapisuje matricu A u datoteku FAJL. save fajl Snima sve podatke iz radnog prostora u datoteku FAJL.MAT. Posebno interesantan dio MATLAB-a je korišćenje mogućnosti dinamičke razmjene podataka sa programskim jezicima i Windows aplikacijama (tehnika DDE .1 PREGLED JEDNOSTAVNIH U/I NAREDBI Da bi podatke sačuvali za neku narednu sesiju MATLAB-a. 241 .MAT snima samo matrice A. Tako|e. MATLAB može rezultate svoga rada da bilježi i u formi LOTUS tabele kao i u nekim drugim formatima. Pregled ovih naredbi kao i neke druge naredbe obra|en je u ovom poglavlju.ext A B C -ascii -double Zapisuje matrice A. save fajl. 10. save fajl.

naredbom diary imefajla.diary. zapisivanje (ako datoteka ne postoji biće kreirana). standardni izlaz (obično monitor) i standardnu grešku (obično monitor). Npr.ext. Naredba fclose vraća nulu ako je zatvaranje uspješno obavljeno i -1 ako nije. Dok su moguće vrijednosti namjene 'r' 'w' 'a' 'r+' 'w+' 'a+' čitanje.1 OTVARANJE I ZATVARANJE FAJLA Da bi se otvorio neki fajl koristi se naredba fopen čiji je opšti oblik F=fopen('imefajla'.2. čitanje i zapisivanje (ne kreira se) odsijecanje ili kreiranje za čitanje i pisanje.2. dok se naredbom fclose('all') zatvaraju svi otvoreni fajlovi osim onih sa identifikatorima F=0.'namjena') gdje je F cijelobrojni numerički identifikator pomoću kojeg se upravlja fajlom. 'rt' ili 'wt+'.ext U širem smislu u izlazne naredbe MATLAB-a spadaju naredbe za grafičko postprocesiranje meta i print pomoću kojih se u raznim formatima mogu zapisati plodovi MATLAB-ovog grafičkog rada. F=1 i F=2. dodavanje (ako datoteka ne postoji biće kreirana). 10.2 NEFORMATIZOVANI ULAZ/IZLAZ 242 . load fajl. 10. Ako se želi fajl otvoriti u tekstualnom režimu u namjeni je potrebno dodati slovo t. F=0. Kraj zapisivanja u dnevnik obilježava naredba diary off.Ulazno izlazne naredbe Učitavanje podataka iz tekstualne ASCII datoteke (ovdje je ekstenzija datoteke obavezna). čitanje i dodavanje (ako je potrebno datoteka se kreira). Kod otvaranja fajla pretpostavljeno je da su u pitanju binarni fajlovi (ovdje postoje bitne razlike u zavisnosti od verzija MATLAB-a pa se treba informisati u help-u). F=1 i F=2 su već predefinisani i odnose se respektivno na standardni ulaz (obično tastatura). 'imefajla' je naziv datoteke sa kojom se želi raditi. Fajl čiji je numerički identifikator F zatvara se naredbom fclose(F). Svi podaci koji se pojavljuju u MATLAB-ovom komandnom prozoru mogu da se snime u dnevničku datoteku .2 ULAZNO/IZLAZNE NAREDBE NISKOG NIVOA 10.

Za neformatizovano zapisivanje matrice A u datoteku F koristi se naredba fwrite u obliku B=fwrite(F.'w'). Neoznačeni cijeli broj 16 ili 32 bita.1 Matricu veličine 5x5 slučajnih cijelih brojeva od 0 do 15 snimiti u datoteku pod imenom prva.2. N .A. Cijeli broj 16-bita.MATLAB for Windows Za čitanje binarnih podataka iz fajla koristi se naredba fread čiji je opšti oblik [A. Broj u pokretnom zarezu 64 bita. » a=fopen('prva. Moguće vrijednosti su 'char' 'schar' 'short' 'int' 'long' 'float' 'double' 'uchar' 'ushort' 'uint' 'ulong' Karakter 8-bita. Neoznačeni cijeli broj.'int') ans = 25 » fclose(a) 243 .floor(16*rand(5)). » fwrite(a. Neoznačeni karakter 8-bita.B]=fread(F.'preciznost') B je broj uspješno zapisanih podataka.vel.bin'. Primjer 10.bin. Cijeli broj 32 ili 64 bita. B broj uspješno pročitanih podataka.N] Smještanje N elemenata u vektor kolonu. Označeni karakter 8-bita.može biti inf. ^itanje podataka do kraja fajla. F cjelobroni numerički identifikator datoteke koja je otvorena naredbom fopen. Cijeli broj 16 ili 32 bita.'preciznost') gdje je A matrica u koju se zapisuju podaci iz datoteke. vel je veličina podataka koji se žele pročitati i ima vrijednosti N inf [M. Smještanje podataka u matricu dimenzija MxN. Neoznačeni cijeli broj 32 ili 64 bita. dok preciznost ima isto značenje kao u naredbi fread. 'preciznost' definiše tip podatka koji se želi čitati kao i koliko svaki podatak zauzima memorije. Broj u pokretnom zarezu 32 bita.

u. Neka svi podaci budu zapisani u pokretnom zarezu i to x sa pet mjesta od toga 3 decimalna. » fclose(F) 244 . » fread(a. 'format' predstavlja format zapisa koji je potpuno analogan C programskom jeziku. E.'format'.A. G.bin'. i. » fprintf(F. Primjer 10..2. o.bin za čitanje i pročitajmo njen sadržaj. f.3 FORMATIZOVANI ULAZ/IZLAZ Za zapisivanje formatizovanih podataka u fajl služi naredba fprintf čiji je opšti oblik B=fprintf(F.3f %12.'%5.1:1. a sin(x) i cos(x) 12 mjesta od toga 8 decimalnih.8f\n'.'r'). X.1 kao i odgovarajuće vrijednosti sin(x) i cos(x). » x=-1:0.. %c na karakter i %s na string. c i s kojima prethodi znak % (procenat). e.2. g.) gdje je F identifikator fajla i A matrica koja se zapisuje.'w'). » F=fopen('tabela'.cos(x)].'int') ans = 3 6 8 6 8 0 8 10 10 1 10 13 0 9 10 10 0 6 14 6 14 0 1 13 11 » fclose(a) 10.y).2 Kreirati fajl tabela u kojem se nalaze vrijednosti nezavisno promjenljive -1≤x≤1 sa korakom 0.[5 5]. Moguće slovne oznake tipa konverzije podataka su kao i u C-u karakteri d. » a=fopen('prva. %f na brojeve u pokretnom zarezu.Ulazno izlazne naredbe ans = 0 Otvorimo datoteku prva. x.. Vidimo da ovom naredbom u fajl možemo da snimimo više različitih kombinacija formata i matrice koja se zapisuje. y=[x. Ko je radio u programskom jeziku C zna značenje ovih oznaka a ovdje samo da pomenemo da %d ukazuje na cijele brojeve.sin(x).8f %12.

6442 0. Opcioni rezultat naredbe fprintf ukazuje na broj uspješno prenesenih podataka.1987 -0.7833 0.8776 0.4794 0.9000 1.6216 0.0998 0.'r').6216 0.3000 -0.6000 0.5403 0.1) ans = [] Me|utim.5646 -0.'r').7648 0.2.0000 -0.4000 -0.9553 Columns 15 through 21 0. 'format' ima isto značenje kao u naredbi fprintf a vel ima isto značenje kao u naredbi fread. Za čitanje iz fajla formatizovanih podataka koristi se naredba fscanf čiji je opšti oblik [A.2955 -0.0000 0.9000 -0.9553 0.6967 0.8776 0.8000 0.4000 0. Primjer 10.7174 -0.3894 0.8415 -0.9950 0.7000 -0.9801 0.5000 -0.9950 1.6967 0.6442 -0.[3 21]) a= Columns 1 through 7 -1.B]=fscanf(F.4794 -0.8253 0.vel) gdje je A matrica u koju se smještaju podaci.1000 0 0. F je numerički identifikator fajla.5403 b= 63 Ovim smo pročitali sadržaj fajla i stigli do njegovog kraja.7174 0.8253 0.3894 0.3 Pročitati sa diska sadržaj fajla koji je snimljen u prethodnom primjeru » F=fopen('tabela'.8000 -0.5646 0.0998 0 0. » [a.'%f'.8415 0.b]=fscanf(F.7833 -0.'%f'.'format'. novi pokušaj čitanja neće dovesti do čitanja podataka » fscanf(F.2000 -0.3000 -0. B opcioni izlaz i ukazuje na broj uspješno prenesenih podataka.7000 0.1000 0.2000 0.1987 0. 245 .9211 Columns 8 through 14 -0.9801 0. zatvorimo fajl pa ga ponovo otvorimo i pročitajmo 6 podataka u matrici 2x3 » fclose(F) » F=fopen('tabela'.7648 0.9211 0.MATLAB for Windows Oznaka \n predstavlja znak za novi red što će reći da se poslije zapisa tri elementa podaci smještaju u novi red.2955 0.5000 0.6000 -0.0000 0.

Ako je pravac>0 kretanje je ka kraju fajlu. Primjer 10. U MATLAB-u postoji i dvije naredbe kojima se čita jedan red matrice fgetl(F) i fgets(F). kraj fajla.[2 2]) a= -0.4 Otvorimo fajl tabela.6000 0.pocetak) gdje je F numerički identifikator fajla. Za pomijeranje pozicije čitanja i zapisivanja u postojećem fajlu koristi se naredba fseek čiji je oblik S=fseek(F.b]=fscanf(F.Ulazno izlazne naredbe » [a.7000 0.5403 -0.2. trenutna pozicija. npr. pravac=0 stojanje na mjestu i pravac<0 ka početku fajla. pročitajmo prvih šest podataka iz njega.7648 b= 12 sada se može nastaviti čitanje podataka.[4 3]) a= -1. zatim preskočiti dio matrice. s time što prva naredba ne prenosi oznaku za kraj reda a druga prenosi.5646 -0. 246 početak fajla.pravac. pocetak je pozicija od koje se vrši pomijeranje a moguće su vrijednosti 'bof' ili -1 'cof' ili 0 'eof' ili 1 nije. pravac veličina koja govori o pravcu pomjeraja u fajlu.7174 0.8000 -0. pa pročitati slijedećih 12 podataka u matrici 3x4.2.5000 b= 4 » fclose(F).4 POZICIONIRANJE U FAJLU Veoma važne za rad sa fajlovima su naredbama za pozicioniranja u fajlu. može se pročitati matrica od 2x2 elemenata u nastavku » [a.'%f'.7833 0.b]=fscanf(F. Rezultat naredbe S je jednak 0 ako je pozicioniranje uspjelo i -1 ako .9000 -0.0000 -0.8415 0.8253 -0.6967 -0.6216 -0.6442 -0. 10.'%f'.

c) čime se sadržaj LOTUS radne tabele file.'%f'.9000 » fclose(F).'%f'.0.8415 0.-1).3 ZAPISIVANJE FAJLOVA U LOTUS-FORMATU MATLAB pored već vi|enih formata zapisa podatke može da zapiše i čita u nizu drugih formata. Jedan od tih formata je zapis matrice u formatu LOTUS radne tabele . Za premotavanje fajla na početak može se koristiti naredba frewind(F) što se može uraditi i naredbom » fseek(F.6216 » fseek(F.5403 -0.'r').wk1.6) ans = -1. Za definisanje tog razmaka koriste se opcioni argumenti naredbe wk1read r i c.8415 0.r.-1) ans = 0 » fscanf(F.4) ans = -1.5403 -0. Za čitanje sa diska LOTUS radne tabele i njeno smještanje u matricu M koristi se naredba wk1read M=wk1read('file'.c) 247 .r. » fscanf(F. Matrica se može zapisati u LOTUS tabelu naredbom wk1write čiji je opšti oblik wk1write('file'.M.wk1 smješta u matricu. 10. Ako se želi znati da li je pokazivač fajla na kraju fajla koristi se naredba feof(F) čiji je rezultat 1 ako se stiglo do kraja fajla a nula ako nije. Veoma često radne tabele posjeduju zaglavlje za koje se koristi prvih nekoliko redova i kolona matrice.9000 -0.7833 0.0000 -0. Trenutnu poziciju u fajlu možemo pročitati naredbom ftell(F).0.0000 -0.MATLAB for Windows » F=fopen('tabela'.

1x .1024)).WAV formatu koristi se naredba wavwrite(y. naredbom » y=floor(256*rand(1. Naredbom wavwrite se snimaju 8-bitni cijelobrojni podaci.F]=wavread('fajl'). koji se može priključiti nekom postojećem Windows doga|aju (pomoću Control Panel-a i programa Sounds). Na primjer.F.10000.wav.Ulazno izlazne naredbe čime se u radnu tabelu file. » wavwrite(y. naredbom » [y.F]=wavread('C:\WINDOWS\DING') »F F= 22050 se učitava sadržaj fajla DING.WAV. MATLAB posjeduje i mogućnost reprodukcije signala pomoću zvučnika (ugra|enog ili spoljašnjeg) naredbom sound(y). Podaci iz fajla se mogu čitati naredbom y=wavread('fajl') a ako želimo znati i učestanost odabiranja [y.wk1 smješta matrica M a r i c su ofset od kojega počinje radna tabela. Dobili smo da je signal odabran učestanošću F=22050. 10.'fajl') čime se niz podataka u vektoru y odabran učestanošću F smješta u fajl. Npr. se snima slučajni šum inteziteta od 0 do 255 u direktorijumu C:\WINDOWS. pod imenom SUM.WAV iz direktorijuma C:\WINDOWS.4 SNIMANJE I U^ITAVANJE ZVU^NIH PODATAKA Za snimanje vektora u obliku MS Windows 3. 248 .'C:\WINDOWS\SUM').

Uvid u put pretraživanja se može dobiti naredbom » path Neki direktorijum se može dodati putu pretraživanja naredbom path(C.MATLAB for Windows glava jedanaesta MATLAB OKRUŽENJE 11. Ovi direktorijumi čine put po kojem se mogu pretraživati MATLAB funkcije. 249 .MAT i .path) dodaje direktorijum C:\TC putu pretraživanja naredbi. cd imedir čini tekućim direktorijum imedir.2. Tako se naredbom » path('C:\TC'. čini aktivnim direktorijum iznad tekućeg. SIMULINK je dodatni MATLAB modul koji je namjenjen simulaciji dinamike sistema.path) gdje je C direktorijum koji se dodaje putu pretraživanja. pored osnovnog MATLAB-a mogu se instalisati i dodatni toolbox-ovi i program SIMULINK.2 STRUKTURA MATLAB-A Prilikom instalacije MATLAB-a kreira se direktorijum MATLAB (a može mu se dati i drugo ime) sa nizom poddirektorijuma.MEX ekstenziju). . U MATLAB-u se može pomoću naredba cd vršiti promjena tekućeg direktorijuma..* izlistavaju iz tekućeg direktorijuma svi fajlovi koji počinju slovom c.1 OSNOVNI MATLAB I DODATNI MODULI U verziji MATLAB-a 4. Sadržaj tekućeg direktorijuma se može pogledati naredbom » dir Za naredbu dir važe sva značajnija MS DOS pravila tako je naredbom » dir c*. Naredbom what se izlistavaju tri grupe MATLAB fajlova iz tekućeg direktorijuma (fajlovi koji imaju . Toolbox programski moduli predstavljaju skupove funkcija namijenjenih za rješavanje specifičnih inžinjerskih problema.M. cd. Oblici ove naredbe su cd prikazuje ime tekućeg direktorijuma. 11. Ovi dodatni moduli neće biti detaljnije obrazlagani u okviru ove knjige.

otvaranje novog grafičkog prozora (Figure). to jest smještanje i uzimanje podataka iz ove memorije. izlazak iz MATLAB-a. štampanje komandnog prozora.3 MENI KOMANDNOG PROZORA MATLAB-A U liniji menija nalaze se opcije File. 250 . aktiviranje m-fajla. otvaranje novog SIMULINK modela (Model).. Slika 11. Opcije ovog menija su New Open M-file otvaranje novog . nakon čega se otvara dialog box sa slike 11.m u kojem su podešeni osnovni parametri rada. izbor štampača i postavljanje njegovih parametara. Pored ovog fajla korisnik može kreirati fajl pod nazivom startup.m koji će se izvršavati nakon matlabrc.m fajla (M-file).MATLAB okruženje Napomenimo da se prilikom startovanja MATLAB-a pokreće program matlabrc. otvaranje postojećeg m-fajla.3. 11.1 FILE MENI U File meniju reguliše se rad sa fajlovima. Treba upisati ime fajla koji se želi otvoriti ili sa Browse potražiti taj fajl. Windows i Help. Options.2 EDIT MENI Namjena Edit menija je rad sa Clipboard-om.1 Open dialog box Save Workspace As Run M-file Print Print Setup Exit MATLAB snima radni prostor u . Edit. 11. 11.mat fajl koji se specificira u dialog boxu koji je sličan onom sa slike 11.m a prije početka rada u MATLAB-u.1.1 u kojem se bira fajl koji se želi otvoriti.3.

kopira selektovani dio teksta iz komandnog prozora u Clipboard.3 OPTIONS MENI Ovaj meni služi za postavljanje parametara MATLAB-ovog radnog okruženja. izbor editora u kojem se kreiraju m-fajlovi. WRITE. NE. omogućuje (ili onemogućuje) odvijanje procesa u pozadini. 11. odre|uje font koji se koristi u komandnom prozoru. adekvatno naredbi echo.3.2 Izbor fonta koji se primjenjuje u komandnom prozoru Uicontrol Font Editor Preference font koji se koristi u kontrolama (uicontrol).EXE a može i bilo koji drugi MS DOS i WINDOWS editor (EDIT.MATLAB for Windows Cut Copy Paste Clear Session briše selektovani dio teksta iz komandnog prozora i smješta ga u Clipboard. Slika 11. Uobičajeno je to C:\Windows\Notepad. Pored fonta i njegove veličine može se podesiti boja fonta i boja pozadine (slika 11. 251 .2). smještanje sadržaja Clipboard-a u komandni prozor. čisti komandni prozor (slično MS DOS naredbi cls). itd). Opcije menija su Numeric Format Turn Echo on (ili off) Enable (ili Disable) Background Process Command Window Font adekvatno naredbi format.

Print štampanje grafičkog prozora. 11.MATLAB okruženje 11. About informacije o verziji MATLAB-a. izbor formata za smještanje podataka u Clipboard.4.4. Index abecedni spisak svih funkcija.1 FILE MENI Opcije ovog menija su New Figure otvaranje novog grafičkog prozora. Printer Setup podešavanje priključenog štampača.3. Edit.5 HELP MENI U ovom meniju se nalazi pomoćni program koji pruža informacije o svom MATLAB funkcijama.4 WINDOWS MENI Omogućuje prelazak izme|u otvorenih MATLAB prozora (komandnog i grafičkih koji se pojavljuju u spisku ispod Windows). 11. grafičkog prozora ili SIMULINK modela. 11. 252 . Windows i Help meni su isti kao u meniju komandnog prozora. Close zatvaranje grafičkog prozora. Windows i Help. Opcije ovog menija su: Table of Contents help izdijeljen po oblastima u obliku hiperteksta.2 EDIT MENI Copy Copy Options Clear figure kopiranje sadržaja grafičkog prozora u Clipboard. Exit MATLAB izlaz iz MATLAB-a. briše sadržaj grafičkog prozora. 11. New otvaranje novog m-fajla.4 OPCIJE MENIJA GRAFI^KOG PROZORA Standardne opcije menija grafičkog prozora su File.3.

Baltimore. F.MATLAB for Windows LIteratura [1] G. Mitrakovi|. R. Littlefield. Naučna knjiga. Stewart. MatLab 4. user guide. Epsilon. Stankovi|. Hanselman. 1990. Academic Press. New York. J. MathWorks 1995. Beograd 1996. Sherborn. Janči|.0+. [8] D. Golub. 1987. USA. D.0. Mathematica 2. Van Loan. PC-MATLAB for MS-DOS Personal Computers. The Math Works. [2] G. Grifon. W. H. [4] C. 283 . C. Bangert. [5] Lj. Stanković. Strang. MathCad 5.2. 1984. 1973. [6] Lj. [7] M. USA. The Student Edition of MATLAB: version 4. New York. Moler. Uskoković. Beograd. 1976.0. PC MATLAB sa elemantima DOS-a. Maple V2. [3] G. Linear Algebra and its Applications. Cvetkovi|. The John Hopkins University Press. Introduction to Matrix Computations. Z. Matrix Computations. Academic Press.0. USA.. Little. B. S. Digitalna Obrada Signala. Matematički programski alati. USA. Titograd 1991. Inc.

Sign up to vote on this title
UsefulNot useful