Knjiga Matlab

Embed Size (px)

Citation preview

SADR@AJPREDGOVOR.................................................................................i SADR@AJ .................................................................................... iii UVOD............................................................................................ xi KAKO PO^ETI RAD U MATLAB-u ................................................ 1 GLAVA PRVA OSNOVNE FUNKCIJE.................................................................. 51.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 .................................................... 332.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 .................................................................................... 693.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............................................................... 1094.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 ............................................. 1255.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 .................................................................. 1536.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

6.5

6.6 6.7

6.4.5 Tekstualni objekat - text ......................................................... 167 GRAFI^KE KONTROLE...................................................................... 168 6.5.1 Frame kontrola....................................................................... 168 6.5.2 Text kontrola .......................................................................... 169 6.5.3 Edit kontrola ........................................................................... 169 6.5.4 Popupmenu kontrola.............................................................. 171 6.5.5 Radio kontrola........................................................................ 171 6.5.6 Check kontrola ....................................................................... 172 6.5.7 Slider kontrola ........................................................................ 172 6.5.8 Pushbutton kontrola ............................................................... 173 UIMENU .............................................................................................. 173 INTERAKTIVNI PROGRAM ZA CRTANJE 2-D CRTE@A ................ 175 6.7.1 Program d2crtez.m ................................................................ 176 6.7.2 Program za prora~un i crtanje - crtanje.m ............................. 180 6.7.3 Pomo}ni prozor - pomocni.m ................................................. 183 6.7.4 Potprogram - funk.m .............................................................. 184

GLAVA SEDMA POLINOMI I OBRADA SIGNALA .............................................. 1857.1 POLINOMI........................................................................................... 185 7.1.1 Definicija polinoma................................................................. 185 7.1.2 Karakteristi~ni polinomi i sopstvene vrijednosti matrice ........ 187 7.1.3 Mno`enje polinoma ................................................................ 188 7.1.4 Izra~unavanje polinoma......................................................... 188 7.1.5 Dijeljenje polinoma................................................................. 189 7.1.6 Razvoj u racionalne razlomke................................................ 190 7.1.7 Interpolacija polinomom......................................................... 191 OBRADA SIGNALA ............................................................................ 193 7.2.1 Fourierova analiza ................................................................. 194 7.2.1.1 Teorijski pregled........................................................ 194 7.2.1.2 Ra~unanje................................................................. 195 7.2.1.3 Preure|ivanje rezultata .............................................. 195 7.2.1.4 Inverzna transformacija ............................................ 198 7.2.1.5 Dvodimenziona transformacija ................................. 198 7.2.2 Ra~unanje i crtanje frekventnog odziva ................................ 199 7.2.2.1 Analogni domen ........................................................ 199 7.2.2.2 Diskretni domen ........................................................ 200 7.2.3 Ra~unanje signala na izlazu iz diskretnog sistema............... 201 7.2.4 Kroskorelaciona funkcija i spektralna gustina snage slu~ajnog signala ................................................................... 202 7.2.5 Dvodimenzionalni signali ....................................................... 203

7.2

vi

GLAVA OSMA LINEARNA ALGEBRA I MATRI^NE FUNKCIJE ....................... 2058.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 SOPSTVENE VRIJEDNOSTI I SOPSTVENI VEKTORI..................... 206 Q-Z DEKOMPOZICIJA ....................................................................... 210 SINGULARNE VRIJEDNOSTI I PRIDRU@ENA KOMPOZICIJA MATRICA ............................................................................................................ 210 NORME VEKTORA I MATRICA ......................................................... 212 KONDICIONI BROJ MATRICE........................................................... 215 TROUGAONA (L-U) DEKOMPOZICIJA ............................................. 216 HESSENBERGOVA NORMA I SCHUROVA KOMPOZICIJA............ 217 CHOLESKY-JEVA FAKTORIZACIJA ................................................. 220 ORTOGONALNA (Q-R) DEKOMPOZICIJA ....................................... 221 RANG, BAZIS ZA SLIKU I KERNEL LINEARNOG OPERATORA...................................................................................... 223 MOORE-PENROSE PSEUDOINVERZIJA MATRICE ....................... 225 RJE[AVANJE SISTEMA LINEARNIH JEDNA^INA ............................ 226 8.12.1 Homogeni sistem jedna~ina .................................................. 226 8.12.2 Sistem sa ve}im brojem nepoznatih od broja jedna~ina........ 227 8.12.3 Sistem sa ve}im brojem jedna~ina od broja nepoznatih........ 229 MATRI^NE FUNKCIJE........................................................................230

8.13

GLAVA DEVETA RIJETKE MATRICE .................................................................. 2339.1 9.2 9.3 9.4 KREIRANJE RIJETKE MATRICE....................................................... 233 RIJETKE MATRICE I FUNKCIJE ....................................................... 236 KONVERZIJA RIJETKE MATRICE U PUNU I OBRNUTO .......................................................................................... 237 GRAFI^KI PRIKAZ RIJETKE MATRICE I DRVETA ........................... 238

GLAVA DESETA ULAZNO IZLAZNE NAREDBE.................................................. 24110.1 10.2 PREGLED JEDNOSTAVNIH U/I NAREDBI ....................................... 241 ULAZNO/IZLAZNE NAREDBE NISKOG NIVOA................................ 242 10.2.1 Otvaranje i zatvaranje fajla .................................................... 242 10.2.2 Neformatizovani ulaz/izlaz ..................................................... 243 10.2.3 Faktorizovani ulaz/izlaz.......................................................... 244 10.2.4 Pozicioniranje u fajlu .............................................................. 246 ZAPISIVANJE FAJLOVA U LOTUS FORMATU ................................ 247 SNIMANJE I U^ITAVANJE ZVU^NIH PODATAKA ............................ 248 7

10.3 10.4

GLAVA JEDANAESTA MATLAB OKRU@ENJE............................................................ 24911.1 11.2 11.3 OSNOVNI MATLAB I DODATNI MODULI.......................................... 249 STRUKTURA MATLABA .................................................................... 249 MENI KOMANDNOG PROZORA MATLABA ..................................... 250 11.3.1 File meni................................................................................. 250 11.3.2 Edit meni ................................................................................ 251 11.3.3 Options meni .......................................................................... 251 11.3.4 Windows meni........................................................................ 252 11.3.5 Help meni ............................................................................... 252 OPCIJE MENIJA GRAFI^KOG PROZORA ........................................ 252 11.4.1 File meni................................................................................. 252 11.4.2 Edit meni ................................................................................ 252

11.4

GLAVA DVANAESTA SISTEMSKI ZAHTJEVI I INSTALACIJA MATLABA .................. 25312.1 12.2 SISTEMSKI ZAHTJEVI ....................................................................... 253 INSTALACIJA MATLABA ................................................................... 253

PRILOG PRVI LISTA FUNKCIJA MATLABA .................................................... 255SPISAK OBLASTI KOJE OBUHVATA HELP .................................................. 255 COLOR ............................................................................................................ 255 DATAFUN ........................................................................................................ 256 DDE.................................................................................................................. 257 DEMOS ............................................................................................................ 257 ELFUN ............................................................................................................. 257 ELMAT ............................................................................................................. 258 FUNFUN .......................................................................................................... 259 GENERAL ........................................................................................................ 259 GRAPHICS ...................................................................................................... 260 IOFUN .............................................................................................................. 261 LANG ............................................................................................................... 261 LOCAL ............................................................................................................. 262 MATFUN .......................................................................................................... 262 OPS.................................................................................................................. 263 PLOTXY ........................................................................................................... 264 PLOTXYZ......................................................................................................... 264 POLYFUN ........................................................................................................ 265 8

SOUNDS.......................................................................................................... 266 SPARFUN ........................................................................................................ 266 SPECMAT........................................................................................................ 267 STRFUN........................................................................................................... 267

PRILOG DRUGI WINDOWS ................................................................................ 269P2.1 P2.2 P2.3 P2.4 P2.5 STARTOVANJE WINDOWSA 3.1X I IZGLED OSNOVNOG EKRANA ............................................................................................. 269 PROGRAM MANAGER ...................................................................... 270 P2.2.1 Opcije menija Program Managera ......................................... 272 ISTOVREMENI RAD VI[E PROGRAMA - MULTYTASKING ............. 273 NAJVA@NIJI WINDOWS PROGRAMI .............................................. 274 OSNOVNO O WINDOWSU 95 ........................................................... 276 P2.5.1 Izgled radne povr{ine Windowsa 95 ...................................... 277

PRILOG TRE]I NOTEPAD ................................................................................. 279 PRILOG ^ETVRTI NEKE MOGU]NOSTI VERZIJE MATLAB 5............................... 283 LITERATURA ............................................................................ 285 INDEKS ..................................................................................... 287

ix

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

xi

MATLAB for Windows

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

1

Kako po eti

Slika 1: Program Manager Windowsa 3.1x

2

MATLAB for Windows Slika 2: Windows 95 radna povr{ina

Slika 3: Komandni MATLAB-ov prozor Pored ovih pojmova uvedimo jo{ jedan neophodan pojam. To je grafi ki prozor. Kada se crta neki grafik, otvara se grafi ki prozor, na primjer kao na slici 4.

3

Kako po eti

Slika 4: Jedan mogu i izgled grafi kog prozora

4

MATLAB for Windows

glava prva

OSNOVNE FUNKCIJEOsnovni objekat nad kojim se vre razne operacije u MATLAB-u ini niz brojeva (array of numbers) pore|an u m vrsta i n kolona, koji emo uslovno zvati pravougaona (m x n) matrica. Naime, ovako ure|eni brojevi mogu predstavljati neki linearni operator, dakle matricu u uobi ajenom smislu, ali ih MATLAB moe interpretirati i kao tabelarni prikaz nekih podataka koje treba obraditi na odre|eni na in. Fleksibilnosti MATLAB-a znatno doprinose i sljede e osobine: (1) Ne sadri iskaze za odre|ivanje dimenzije ili tipa matrice, ve se odre|eni prostor pridruuje automatski, sve do iznosa ograni enog svakim pojedina nim ra unarom. (2) Svi specijalni slu ajevi pravougaone matrice (m=n>1-kvadratna matrica, m=1-vektor vrsta, n=1-vektor kolona, m=n=1-skalar) prirodno slijede pravila za opti slu aj, osim u nekim operacijama kada je za vektore i skalare odre|eno specijalno zna enje. Zato emo, ukoliko nije posebno naglaeno, pod pojmom "matrica" podrazumijevati bilo koji od navedenih slu ajeva. (3) Elementi matrice mogu biti realni ili kompleksni. Operacije i iskazi u MATLAB-u piu se, kadgod je to mogu e, na prirodan na in kao to bi ih pisali na papiru.

1.1 UNO[ENJE PODATAKAU MATLAB-u postoji vie na ina za unoenje matrica. Matrice malih dimenzija najlake se unose direktnim definisanjem liste elemenata. Najprirodnije ih je unijeti po vrstama, pri emu se uglaste zagrade i koriste da ograni e listu elemenata. Elementi su razdvojeni blenkom ili zarezom dok se znak ; ili tipka koristi za odvajanje vrsta matrice. Primjer 1.1.1 Unoenje izraza A=[1 -2 4;5 -6 8;7 -4 2] rezultira u 5

Osnovne funkcije A= 1 -2 4 5 -6 8 7 -4 2 Matrica A smjetena je u radnu memoriju za kasniju upotrebu. Isti rezultat ima emo i unoenjem A=[1,-2,4;5,-6,8;7,-4,2] ili A=[ 1 -2 4 5 -6 8 7 -4 2] Ovaj zadnji na in unoenja je pogodan jer imitira pisanje matrice na papiru, a koristan je i kada imamo posla sa velikim matricama koje moemo razvu i na vie ulaznih linija. Primjer 1.1.2 Unoenje C=[123.0934 -24.934 -33.7634 945.3452 -345.8734 -39.246 -24.78 0.357 -45.98 -2.7 23.13 2] rezultira u C= 123.0934 -24.9340 -33.7634 945.3452 -345.8734 -39.2460 -24.7800 0.3570 -45.9800 -2.7000 23.1300 2.0000 Ukoliko elemente jedne vrste nije mogu e smjestiti u jednoj ulaznoj liniji, unoenje moemo nastaviti u narednoj, pri emu sa ... nazna imo prenoenje na sljede u liniju. Primjer 1.1.3 Unoenje B=[245.268 -0.6592 -35.9643 27.2754 -965.346 -345.723 ... -34.97 54.678 35.28] rezultira u B= Columns 1 through 7 245.2680 -0.6592 -35.9643 27.2754 -965.3460 -345.7230 -34.9700 Columns 8 through 9 54.6780 35.2800 6

MATLAB for Windows Ukoliko unosimo "rijetke" (sparse) matrice, tj. one kod kojih je relativno velik broj elemenata jednak nuli, pogodno je definisati nenulte elemente pojedina no, sa indeksima unutar malih zagrada ( ). Primjer 1.1.4 Unoenje D(1,1)=2;D(1,4)=-3;D(3,5)=7 rezultira u D= 2 0 0 0 0 0 0 -3 0 0 0 0 0 0 7

Gornji primjer ilustruje pomenutu osobinu MATLAB-a da se dimenzije matrice automatski prilago|avaju. Pored toga, vidimo da se vie iskaza moe napisati u jednoj liniji. Ukoliko su iskazi razdvojeni zarezima, rezultati e biti prikazani na ekranu, dok znak ; poslije iskaza slui za suspendovanje prikazivanja rezultata. Napomenimo da MATLAB raspolae sa skupom funkcija za rad sa rijetkim matricama sa kojima emo se sresti u narednim poglavljima.

1.2 FORMIRANJE MATRICA SPECIJALNE STRUKTUREU MATLAB-u je razvijen odre|eni broj matrica specijalne strukture. Komande eye(n) i eye(m,n) daju jedini ne matrice dimenzije (n x n) i (m x n), respektivno. Komanda eye(X) daje jedini nu matricu iste dimenzije kao prethodno formirana matrica X. Komande ones(n) i ones(m,n) generiu matrice sa svim elementima jednakim jedinici, a dimenzije su im (n x n) i (m x n), respektivno. ones(X) daje matricu jedinica iste dimenzije kao matrica X. Komande zeros(n), zeros(m,n) i zeros(X) na potpuno analogan na in generiu matrice sa nulama. Opcije ones(X), eye(X) i zeros(X) treba izbjegavati jer predstavljaju ostatak ranijih verzija MATLAB-a. Prilikom njihove upotrebe javlja se sljede e upozorenje: This usage of ones(X) is obsolete and will be eliminated in future versions. Please use ones(size(X)) instead. Funkcija magic(n) generie matricu dimenzija (n x n) sa cjelobrojnim elementima izme|u 1 i n2, sa osobinom da je zbir elemenata po vrstama i kolonama konstantan. 7

Osnovne funkcije Primjer 1.2.1 Komande X=ones(4,5),zeros(3),Y=eye(5,3),magic(5) rezultiraju u X= 1 1 1 1 ans = 0 0 0 Y= 1 0 0 0 0 ans = 17 24 23 5 4 6 10 12 11 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, rezultat), ukoliko joj ve nijesmo dodijelili ime operacijom pridruivanja (znak=). Naravno, u radnom prostoru e ostati samo zadnja veli ina pod tim imenom. Naredba hilb(n) formira kvadratnu matricu dimenzija (n x n) iji su elementi vezani sa indeksima, po formuli 1/(i+j-1). Naredba pascal(n) formira kvadratnu matricu dimenzija (n x n) kojoj elementi normalni na glavnu dijagonalu ine Paskalov trougao1 1 1 1 3 1 1 2 3 1 1

1 4 6 4 1 5 10 10 5 1

8

MATLAB for Windows ..... Primjer 1.2.2 Unoenjem E=hilb(4),pascal(5) dobijamo E= 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 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, matrice se mogu unositi i na druge na ine: - generisanjem pomo u iskaza i funkcija, - kreiranjem u M-fajlovima, - unoenjem iz spoljnih fajlova sa podacima. O ovim mogu nostima MATLAB-a bi e rije i kasnije.

1.3 FUNKCIJE OP[TE NAMJENE 1.3.1 OPERATORI ZA POMO] PRI RADUKao i svi Windows programi i MATLAB posjeduje bogat Help program. Naredbom help u MATLAB-u je obezbije|ena "sluba pomo i i informacija". Ovo predstavlja veliku pogodnost posebno za po etnike, ali je zna ajno i za iskusne programere jer je teko memorisati veliki broj funkcija u MATLAB-u. Postoji nekoliko verzija ove naredbe. Da bi se dobio spisak oblasti za koje postoji saeto uputstvo (pomo ), dovoljno je unijeti help Dobijamo spisak od 21 oblasti koje help obuhvata. Spisak naredbi koje obuhvataju jednu oblast dobijamo sa: help oblast Informaciju o nekoj konkretnoj komandi ete dobiti sa help komanda 9

Osnovne funkcije Primjer 1.3.1 Kori enjem naredbe help pribavi emo informacije o na inu upotrebe same komande help, kao i o skupu naredbi dde i komande abs. Unoenje help help,help dde,help abs dajeHELP On-line documentation. HELP, by itself, lists all primary help topics. Each primary topic corresponds to a directory name on MATLABPATH. "HELP topic" gives help on the specified topic. The topic can be a command name or a directory name. If it is a command name, HELP displays information on that command. If it is a directory name, HELP displays the Table-Of-Contents for the specified directory. It is not necessary to give the full pathname of the directory; the last component, or last several components, are sufficient. For example, "help general" and "help matlab/general" both list the Table-Of-Contents for the directory toolbox/matlab/general. LOOKFOR XYZ looks for the string XYZ in the first comment line of the HELP text in all M-files found on MATLABPATH. For all files in which a match occurs, LOOKFOR displays the matching lines. MORE ON causes HELP to pause between screenfuls if the help text runs to several screens. See also LOOKFOR, WHAT, WHICH, DIR, MORE.

DDE Toolbox. Version 1.0 1-Dec-93 Copyright (c) 1984-94 by The MathWorks, Inc.

DDE Client Functions. ddeadv - Set up advisory link. ddeexec - Send string for execution. ddeinit - Initiate DDE conversation. ddepoke - Send data to application. ddereq - Request data from application. ddeterm - Terminate DDE conversation. ddeunadv - Release advisory link. ABS Absolute value and string to numeric conversion. ABS(X) is the absolute value of the elements of X. When X is complex, ABS(X) is the complex modulus (magnitude) of the elements of X. See also ANGLE, UNWRAP. ABS(S), where S is a MATLAB string variable, returns the numeric values of the ASCII characters in the string. It does not change the internal representation, only the way it prints. See also SETSTR.

Pored ovakvog help-a MATLAB posjeduje help organizovan u obliku hiperteksta. Naime u liniji menija osnovnog MATLAB prozora postoji opcija Help koja se moe pozvati tasterskom kombinacijom Alt+H ili klikom mia. Izborom opcije Table of Contents otvara se prozor za pregledom oblasti koje 10

MATLAB for Windows MATLAB obuhvata. Nazivi oblasti su istaknuti iz ostalog teksta, i klik mia na naziv oblasti daje pregled svih naredbi koje oblast obuhvata. Klikom na odgovaraju u naredbu dobijaju se osnovne informacije o njoj. Tokom itanja helpa pritiskom na Back moemo se vratiti na prethodnu temu help-a ili sa History na neku temu koju ste tokom te sesije pokrenuli. Postoji i Index koji obuhvata abecedni spisak svih naredbi MATLAB-a. Za ilustrovanje mogu nosti MATLAB-a, prire|eni su uzorci raznih programa, koji se mogu pozvati naredbama demo expo Programi koji su obuhva eni ovim demo programima predstavljaju dobru kolu za svakog MATLAB programera. Zato se obavezno treba upoznati sa tekstovima samih programa o kojima moete itati u oblasti help demos. MATLAB po etnicima preporu ujemo da startuju i uvodni program intro

1.3.2 INFORMACIJE O VARIJABLAMA I FAJLOVIMAZa prikazivanje direktorijuma veli ina iz radnog prostora koristi se naredba who. Ukoliko ste proradili dosadanje primjere, unoenjem who dobija se: Your variables are: A C E B D X Y ans

Pored ovih, MATLAB posjeduje i pojedine konstante uvedene da bi potpomogle jednostavniji rad i da bi pratile uobi ajeni na in matemati ke notacije. Veli ina eps koristi se kao tolerancija pri nekim prora unima kao to su odre|ivanje singularnosti ili ranga matrice. Njena po etna vrijednost je rastojanje izme|u 1.0 i sljede eg ve eg realnog broja sa pokretnim zarezom. U IEEE aritmetici koja se koristi na ve ini personalnih ra unara, uzima se da je eps=2-52 to priblino iznosi 2.22*10-16. Ukoliko je to neophodno, korisnik moe ovoj promjenljivoj dati bilo koju vrijednost, uklju uju i i nulu. 11

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

MATLAB for Windows what ime_direktorijuma prikazuje sadraj direktorijuma specificiranog imenom. Naredba which ime_funkcije trai poziciju na disku specificirane MATLAB funkcije iz M ili MEX fajlova. Za provjeru postojanja neke veli ine ili fajla koristi se naredba exist. Tako unoenje exist('A') daje 1 ako je A veli ina iz radnog prostora, 2 ako je A.M ime nekog fajla na disku, 3 ako je A.MEX ime funkcije na disku, 4 ako je A prevedena Simulink funkcija, 5 ako je A ugra|ena funkcija i 0 ako A ne postoji. Naglasimo da ime varijable ili fajla mora biti izme|u navodnika. Primjer 1.3.3 Provjerimo da li postoje D, cos i acosh. Unoenjem exist('D'),exist(cos),exist('acosh') dobijamo ans= 1 ans= 5 ans= 2 to zna i da postoji varijabla D i fajl acosh.m i da je cos ugra|ena funkcija. Za odre|ivanje dimenzija pojedinih veli ina slui naredba size. Postoje etiri varijante ove naredbe koje moemo generalno predstaviti kao: s=size(X), [m,n]=size(X), m=size(X,1) i n=size(X,2). 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, respektivno. Ukoliko elimo da dimenzije varijable X (proizvoljno ozna ene sa m i n) dobijemo posebno, koristi emo drugu verziju koja ima dva izlazna argumenta. Tre a i etvrta varijanta naredbe size daju nam broj vrsta i kolona matrice X respektivno. Za odre|ivanje duine (dimenzije) vektora koristi se naredba length. Tako l=length(y) daje skalar l koji pokazuje broj elemenata vektora y, bilo da se radi o vektoru vrsti ili koloni. U slu aju da je y matrica, l predstavlja ve i od broja redova i broja kolona. Primjer 1.3.4 Odrediti dimenzije promjenljive D i duinu vektora B. Unoenjem size(D),ll=length(D),size(X,1),[m,n]=size(D),d=length(B) dobijamo 13

Osnovne funkcije ans = 3 ll= 5 ans= 4 m= 3 n= 5 d= 9 5

1.3.3 BRISANJE I ^UVANJE PODATAKAZa odstranjivanje (brisanje) promjenljivih iz radne memorije koristi se naredba clear. Unoenjem clear sve veli ine i kompajlirane funkcije odstranjuju se iz radnog prostora. Na taj na in se radni prostor "o isti" kao kad prvi put uklju imo MATLAB. Sa clear x iz radnog prostora briemo samo veli inu ili funkciju sa imenom x, a sli no se moe uraditi za nekoliko veli ina, na primjer clear ime1 ime2 ime3 ... pri emu ime1, ... moe biti ime varijable ili neke funkcije. Naredbom clear functions briemo sve teku e M-funkcije kompajlirane u radnoj memoriji. Naredbom clear mex ukidamo sve povezane mex funkcije a sa clear all briemo sve promjenljive, mex linkove i funkcije iz radne memorije. Primjer 1.3.5 Izbrisati iz radne memorije veli ine ans i d. clear ans d Brisanje globalnih promjenljivih se obavlja naredbom clear global. Sa naredbom clear treba oprezno postupati da bi se izbjeglo nenamjerno brisanje podataka i funkcija. Da bi se osigurali od ovakvih omaki, a i zbog 14

MATLAB for Windows trajnog uvanja podataka na disku za neku kasniju upotrebu, koristimo naredbu save. Tako unoenjem save upisujemo sve teku e varijable u unaprijed odre|eni MAT-fajl sa imenom matlab.mat. Naredbom save ime upisujemo sve teku e veli ine iz radnog prostora u fajl ime.mat (ime je, naravno, proizvoljno), dok naredbom save ime x Y Z upisujemo u fajl ime.mat samo veli ine x, Y i Z. Poto smo sa uvali na disku veli ine koje nas interesuju, moemo zavriti sesiju MATLAB-a. Za prekid rada koriste se ravnopravno tri na ina, naredbama exit quit ili izborom opcije Exit iz menija File. Prekid uzrokuje gubitak veli ina iz radnog prostora i izlazak iz MATLAB-a. Kada se ponovo uklju imo u MATLAB, radni prostor moe se popuniti ranije sa uvanim podacima. Ovo se postie naredbom load, koja predstavlja inverznu operaciju od save. Naime, load unosi u radni prostor podatke iz fajla matlab.mat, dok load ime puni radni prostor podacima iz fajla ime.mat. Napomenimo da naredbe save i load moemo koristiti za smjetanje i u itavanje podataka iz ASCII fajlova, o emu e biti vie rije i kasnije. Prekid rada, ali bez izlaska iz MATLAB-a, moe se izvriti upotrebom - ili -, tj. istovremenim pritiskom na tipke i odnosno i .

15

Osnovne funkcije 1 2 4 . 2 4 6 Sa uvati ove podatke u fajl sa imenom podaci, i po zavretku rada unijeti sa diska veli ine x, y i Z. Primjer 1.3.6 Unijeti vektore x=[1 -2 3], y=[-3 4 -6] i matricu Z= x=[1,-2,3];y=[-3,4,-6];Z=[-1,2,4;2,4,6] save podaci quit load podaci

1.3.4 INFORMACIJE O SISTEMUMATLAB posjeduje niz trajnih promjenljivih koje korisnika informiu o performansama sistema. Tako naredba computer informie korisnika sistema na kom sistemu radi, a odgovor mainama sa Windows operativnim sistemom biti ans = PCWIN gdje je PCWIN promjenljiva tipa string (niz karaktera o kojima e biti vie rije i u petom poglavlju). Trenutno vrijeme se moe saznati pomo u trajne promjenljive clock koja predstavlja vektor sa est komponenti: godina, mjesec, dan, sat, minut i sekundu. Proteklo vrijeme u sekundama izme|u dva trenutka se moe saznati naredbom etime (po etno_vrijeme,krajnje_vrijeme) a teku i datum u obliku string naredbom date u formatu dan-mjesec-godina. Primjer 1.3.7 Prikazati teku e vrijeme, datum u obliku stringa i vrijeme proteklo izme|u prve naredbe i sadanjeg trenutka. clock ans = 1.0e+003 * 1.9960 0.0090 0.0070 0.0210 0.0510 0.0087 Datum=date Datum = 7-Sep-96 etime(clock,ans) 16 e na PC

MATLAB for Windows ans = 15.3800 Vidimo da je trenutak izrade ovog primjera bio 07.09.1996 u 21h 51minut i 8.7 sekundi i da je izme|u prve i tre e naredbe proteklo 15.38 sekundi.

1.4 ISKAZI I VARIJABLEMATLAB je jezik izraza (expressions). Izrazi koji korisnik unese interpretiraju se i izvravaju od strane sistema MATLAB-a. Generalni izraz u MATLAB-u moe poprimiti neki od sljede ih oblika:

- izraz - var=izraz- [var1,var2,..]=izraz pri emu je var skra enica za ime varijable (veli ine, promjenljive). Izrazi su sa injeni od operatora, specijalnih karaktera (znakova), funkcija i imena varijabli. Izra unavanje izraza proizvodi matricu, koja se nakon toga pojavljuje na ekranu i vezuje za neku varijablu radi kasnije upotrebe. Ako se ime varijable i znak pridruivanja (=) izostave, automatski se kreira varijabla sa imenom ans, ije ime poti e od answer (odgovor, rezultat). Iskaz se normalno zavrava tipkom . Ako je, me|utim, zadnji karakter iskaza semicolon (;), prikazivanje na ekranu se suspenduje iako su operacije definisane iskazom izvrene u ra unaru. Imena varijabli i funkcija moraju po eti slovom, iza koga moe slijediti proizvoljan broj slova, cifara ili podvu enih crta( znak _), ali se samo prvih 19 karaktera iz imena pamti. MATLAB razlikuje velika i mala slova. Tako, na primjer, a i A nijesu iste varijable. Opte 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. 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. Primijetimo da je MATLAB veoma fleksibilan, u smislu da kao argument operatora mogu posluiti veoma sloeni izrazi sastavljeni od niza funkcija i operatora. Pri tome je redosljed izvravanja pojedinih operacija u okviru jednog iskaza nazna en obi nim zagradama ( ). 17

Osnovne funkcije Primjer 1.4.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.4689

Ranije smo napomenuli da se podaci mogu unositi u vie ulaznih linija. Analogan postupak moe se primijeniti i na unoenje sloenih izraza. Naime, ukoliko je izraz toliko sloen da ga ne moemo unijeti u jednoj ulaznoj liniji, moemo ga prenijeti na sljede u ulaznu liniju kori enjem ... (nekoliko ta aka) i tipke . Primjer 1.4.2 Izraz s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 - 1/8 ... + 1/9 - 1/10 + 1/11 - 1/12; izra unava parcijalnu sumu alternativnog reda i pridruuje je varijabli s, ali je ne prikazuje na ekranu. Napomenimo da ovakvu sumu moemo i elegantnije izra unati, o emu e kasnije biti rije i. Izrazi u MATLAB-u mogu imati vie 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,n]=size(a), sa izlaznim argumentima m i n) ili kada se posebno kreiraju funkcije u M-ili MEX-fajlovima.

1.5 BROJEVI I ARITMETI^KI IZRAZIRanije smo pomenuli da MATLAB operie sa realnim i kompleksnim brojevima. Za brojeve se koristi uobi ajena decimalna notacija sa znakom minus i decimalnom ta kom. Faktor skaliranja u obliku stepena broja deset moe se uklju iti kao sufiks, radi konciznijeg predstavljanja broja. Na ra unarima koji koriste IEEE aritmetiku sa pokretnim zarezom relativna ta nost brojeva je eps, to zna i oko 16 decimalnih mjesta. Opseg iznosi od realmin do realmax, gdje su realmin i realmax prethodno definisane MATLAB konstante koje zavise od ra unara, mada uobi ajeno iznose 2.22x10-308 i 1.8x10308, i predstavljaju najmanji i najve i broj sa kojim se u MATLAB-u moe ra unati. Primjer 1.5.1 Navodimo nekoliko mogu ih oblika brojeva: 3 6.9362818 -99 1.8305e-20 0.0002 4.035278e23 18

gdje je sa Ne m ozna en broj Nx10 m.

MATLAB for Windows Izrazi se prave kori enjem uobi ajenih aritmeti kih operacija: + sabiranje, - oduzimanje, * mnoenje, / dijeljenje sdesna, \ dijeljenje slijeva, ^n stepenovanje sa n i niza elementarnih funkcija ugra|enih u MATLAB, kao to su sin, log, sqrt, tan, itd. Kasnije emo dati kompletnu listu ugra|enih funkcija kao i mogu nosti kreiranja novih, pomo u M-fajlova. Napomenimo da dva operatora za dijeljenje daju isti rezultat kada operiemo sa obi nim brojevima (skalarima), a njihovo uvo|enje je bilo motivisano potrebom koja proizilazi iz operacija sa matricama, o emu e kasnije biti vie rije i. Primjer 1.5.2 Izrazi 1/4,4\1,inv(4)*1 svi daju isti rezultat ans= 0.25

1.6 KOMPLEKSNI BROJEVI I MATRICERanije smo pomenuli da zna ajna fleksibilnost MATLAB-a proizilazi iz injenice da su dozvoljene operacije sa kompleksnim brojevima. Oni mogu biti uneeni kao ulazni podaci, a mogu se prirodno pojaviti i kao rezultat primjene odre|enih funkcija ili operatora sa realnim argumentima. Zbog razli ite notacije u literaturi, imaginarna jedinica je u MATLAB-u prethodno definisana kao permanentna veli ina (kao to je to ura|eno sa eps, pi i sl.), i ozna ena sa i i j. Kori ena je klasi na definicija, tako da je: i=sqrt(-1) dok drugi vie vole oznaku j: j=sqrt(-1) Mi emo ovdje koristiti oznaku i. Kompleksni brojevi se mogu generisati kao: z=a+b*i, a, b-realni i imaginarni dio ili u obliku: w=r*exp(i*fi), r, fi- moduo i argument kompleksnog broja. 19

Osnovne funkcije Primjer 1.6.1 Unoenje z=4+5*i rezultira u z =4.0000 + 5.0000i dok izraz w=5*exp(2.5*i) daje w =-4.0057 + 2.9924i Postoje najmanje dva na ina za unoenje kompleksne matrice: -elementi se unose kao kompleksni, i -posebno se unose realni i imaginarni dio. Primjer 1.6.2 Za unoenje matrice sa 1 5i 2 6i Z 3 7i 4 8i moemo ravnopravno koristiti sljede e izraze: a=[-1,2;3,4],b=[5,-6;7,8],Z=a+b*i to daje a= -1 2 3 4 b= 5 -6 7 8 Z= -1.0000 + 5.0000i 2.0000 - 6.0000i 3.0000 + 7.0000i 4.0000 +8.0000i ili Z1=[-1+5*i 2-6*i;3+7*i 4+8*i] sa istim rezultatom: Z1 = -1.0000 + 5.0000i 2.0000 - 6.0000i 3.0000 + 7.0000i 4.0000 + 8.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

MATLAB for Windows bio slu aj sa ranijim verzijama MATLAB-a. Ova osobina omogu ava posebno pregledno pisanje programa. Primjer 1.6 3 Izrazi w=[-1+4*i 2+5*i],w1=[-1 + 4 * i 2 +5 * i],w2=[-1 + 4 * i 2 + 5 * i] daju w= -1.0000 + 4.0000i 2.0000 + 5.0000i w1 = -1.0000 + 4.0000i 2.0000 w2 = -1.0000 + 4.0000i 2.0000 + 5.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. ^est je programerski manir, na koji ovdje upozoravamo, da se pojedine (obi no broja ke promjenljive) nazivaju i i j. Prilikom rada sa kompleksnim brojevima to moe da rezultira neo ekivanim poteko ama, kao u sljede em primjeru Primjer 1.6.4 Z nije kompleksna veli ina jer su i i j uzeli realne vrijednosti. i=2;j=1; z=3+5*i z = 13 0 + 5.0000i

1.7 IZLAZNI FORMATRanije smo naglasili da se rezultat bilo kojeg iskaza MATLAB-a prikazuje na ekranu, zajedno sa imenima specificiranih veli ina ili ans ukoliko veli inama nijesmo pridruili imena. Izlazni oblik prikazivanja brojeva (rezultata) moe se kontrolisati upotrebom naredbe format. Ona uti e samo na to kako se matrice prikazuju na ekranu, a ne na to kako se ra unaju ili smjetaju u memoriju (MATLAB sva izra unavanja vri u dvostrukoj preciznosti). Najprostiji slu aj imamo kada su svi elementi matrice cijeli brojevi. Tada se matrica prikazuje u formi bez decimalne ta ke. Tako, na primjer x=[-1 0 2] rezultira u 21

Osnovne funkcije x= -1 0 2 Ukoliko najmanje jedan element matrice nije cio broj, postoje nekoliko mogu ih izlaznih formata. Standardni format naziva se format short, a pokazuje 5 zna ajnih cifara. Koristi se automatski (by default) ukoliko se ne specificira neki drugi format. Ostali formati prikazuju vie zna ajnih cifara ili koriste eksponencijalnu notaciju. Razne oblike prikazivanja izlaznih veli ina ilustrova emo na sljede em primjeru. Primjer 1.7.1 Unesimo vektor od dva elementa y=[4/3 1.2345e-6];

Razli iti mogu i formati i rezultuju e reprezentacije vektora su: format short y y = 1.3333 0.0000 format short e y y = 1.3333e+000 1.2345e-006 format long y =1.33333333333333 0.00000123450000 format long e y =1.333333333333333e+000 1.234500000000000e-006 format hex y = 3ff5555555555555 3eb4b3fd5942cd96 format + y = ++ format bank y =1.33 0.00 format + predstavlja kompaktan na in prikazivanja velikih matrica, gdje se simboli +, - i prazni prostori (blenkovi) koriste za pozitivne, negativne i nulte elemente matrice, respektivno. format bank se koristi kod prikazivanja finansijskih izvjetaja, gdje se iznosi zaokruuju na dvije decimale (dinari i pare, dolari i centi, itd.). Kod format long zadnja cifra moe izgledati neta na, ali je izlaz ustvari ta na decimalna reprezentacija binarnih brojeva smjetenih u ra unaru.

22

MATLAB for Windows Ako koristimo format short ili format long, a najve i element matrice je ve i od 1000 ili manji od 0.001, tada se obi no rezultati prikazuju sa obi nim formatom skalirani sa eksponencijalnim faktorom. Primjer 1.7.2 Unoenje c=[21346 0.01] rezultira u c = 1.0e+004 * 2.1346 0.0000 dok promjenom formata sa format long imamo sljede u izlaznu reprezentaciju c = 1.0e+004 * 2.13460000000000 0.00000100000000 Primjer 1.7.3 Unoenjem format rat a=[0.234 1/pi] dobijamo a= 117/500 113/355

jer format rat vri predstavljanje brojeva u obliku racionalnih razlomaka. Pomenimo jo dva formata: format compact i format loose koji se koriste kod prikazivanja ve ih matrica. Kod drugog formata prikazivanje pojedinih redova podataka se odvaja praznim redom dok kod prvog formata to nije slu aj. Alternativno, se moe mijenjati format upotrebom menija MATLAB-ovog komandnog prozora. Aktiviranjem opcije Numeric format u meniju Options otvara se meni u kojem se pregledno moe izabrati traeni format.

1.8 GENERISANJE VEKTORA POMO]U KARAKTERA : (DVIJE TA^KE)

23

Osnovne funkcije Karakter : je veoma pogodan i esto kori en u MATLAB-u. Najvie se upotrebljava za generisanje vektora sa ekvidistantnim elementima. Naime, izraz oblika x=i:k k>i i, k-cijeli brojevi generie vektor vrstu x=[i i+1 i+2 ... k-1 k] dok izraz y=(i:k)' k>i

generie vektor kolonu koja u stvari predstavlja transponovani vektor x. Primjer 1.8.1 Izrazi x=3:8 y=(1:4)' daju x= 3 y= 1 2 3 4 U dobijenim vektorima prirataj je jednak +1. Ukoliko elimo proizvoljnu realnu vrijednost prirataja (koraka), opti oblik izraza za generisanje vektora vrste je x=xmin:xk:xmax pri emu su: xmin, xmax - minimalna i maksimalna vrijednost x-a xk - prirataj Vektor kolona se dobija prostom transpozicijom ovako dobijenog vektora vrste. Primjer 1.8.2 Izrazi a=1.4:2:11 b=-pi:0.6:pi daju 24 xmin + Matrix dimensions must agree. zbog toga to su dimenzije ovih veli ina (3*3) i (3*1), respektivno. Primjer 2.2.2 Za matrice A i B definisane u primjeru 2.1.1, izrazi C=A+B,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 - doputene i za razli ite dimenzije varijabli, ali samo ukoliko je jedna od njih skalar, npr. M+s (M-matrica, s-skalar). Ovakav izraz MATLAB interpretira tako to svakom elementu matrice M dodaje (ili od njega oduzima) nazna eni skalar s, tj. skalar se posmatra 35

Elementarne operacije sa matricama i poljima brojeva kao konstantna matrica sa dimenzijom prilago|enom matrici koja se sabira (ili oduzima). Primjer 2.2.3 Za matrice B, x i skalar a, definisane u primjeru 2.1.1, izrazi G=B+a,G1=x-a daju G= 4.2000 7.2000 1.2000 7.2000 2.2000 0.2000 9.2000 6.2000 -0.8000 G1 = -6.2000 -2.2000 2.8000 iako, po pravilima matri nog ra una, nijesu korektni. Primjer 2.2.4 Provjerimo rezultate iz prethodnog primjera matemati ki korektnim izrazima G=B+a*ones(B),G1=x-a*ones(x) sa rezultatom G= 4.2000 7.2000 1.2000 7.2000 2.2000 0.2000 9.2000 6.2000 -0.8000 G1 = -6.2000 -2.2000 2.8000 uz upozorenje da e ovakav na in rada biti MATLAB-a

izba en

u kasnijim verzijama

This usage of ones(X) is obsolete and will be eliminated in future versions. Please use ones(size(X)) instead. Dakle mora emo koristiti naredbu ones(size(X)). Sva navedena pravila, uklju uju i i ono o kompatibilnosti skalara i matrice pri sabiranju i oduzimanju, vae za matrice i skalare sa kompleksnim elementima. 36

MATLAB for Windows Primjer 2.2.5 Izrazi z=1+2*i;N=z+Z pri emu smo kompleksnu matricu Z ranije definisali u primjeru 2.1.2, daju N= 0 + 4.0000i 3.0000 + 5.0000i -2.0000 + 6.0000i 6.0000

2.3 MNO@ENJE MATRICAMatri no mnoenje u MATLAB-u je ozna eno sa *. Shodno pravilima matri nog ra una, ova operacija je definisana kada su "unutranje" dimenzije inilaca iste, tj. ako je broj kolona prvog inioca jednak broju vrsta drugog. Primjer 2.3.1 Prethodno definisani x i A (primjer 2.1.1) ne ispunjavaju navedeni uslov, pa e iskaz c=x*A proizvesti poruku: ??? Error using ==> * Inner matrix dimensions must agree. dok je iskaz c=A*x korektan specijalan slu aj matri nog proizvoda, koji e dati c= 39 -3 -59 Mogu nosti mnoenja vektora sa vektorom, tj. takozvani skalarni (unutranji) i spoljni proizvod vektora, ilustrova emo na narednom primjeru. Primjer 2.3.2 Sa definisanim vektorima x=[1 2 3],y=[1 -1 2] x= 1 2 3 y= 37

Elementarne operacije sa matricama i poljima brojeva 1 -1 izrazi 2

c=x*y',c1=y*x' daju isti rezultat, tj. skalarni proizvod dva vektora c= 5 c1 = 5 Spoljni proizvodi rezultira e iz izraza D=x'*y,D1=y'*x D= 1 -1 2 -2 3 -3 D1 = 1 2 -1 -2 2 4 pri emu izraz

2 4 6

3 -3 6 je o igledno da su matrice D i D1 povezane relacijom D'=D1. Naravno,

x*y daje poruku greke: ??? Error using ==> * Inner matrix dimensions must agree. Matrica ili vektor prirodno se mnoi sa skalarom. Primjer 2.3.3 Sa prethodno definisanim A i x (primjeri 2.1.1 i 2.3.2), izrazi A*pi,6.3*x rezultiraju sa ans = -3.1416 6.2832 12.5664 6.2832 -9.4248 3.1416 38

MATLAB for Windows -12.5664 -15.7080 -18.8496 ans = 6.3000 12.6000 18.9000

2.4 MNO@ENJE POLJA BROJEVAZa mnoenje ure|enih skupova brojeva ne vae pravila matri nog ra una, ve se mnoenje vri po principu element-po-element, a odgovaraju i operator je ozna en sa .*. Za ovakvu operaciju inioci moraju imati iste dimenzije ako su brojevi ure|eni u obliku matrica ili vektora. Naime, ako A i C ozna avaju dva takva skupa brojeva, tada E=A.*C daje novi skup brojeva E iji su elementi proizvodi korespondentnih elemenata iz skupova A i C. Primjer 2.4.1 Sa prethodno definisanim A i C (primjeri 2.1.1 i 2.2.1), izrazi E1=A*C E=A.*C su, s obzirom na dimenzije varijabli A i C, oba legitimni, samo to su operacije izvrene 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.4.2 Za ranije definisane varijable A, x, y, (primjeri 2.1.1 i 2.3.2), izraz A.*x daje poruku greke ??? Error using ==> .* Matrix dimensions must agree. dok izrazi g=x.*y g1=x.*(-2) daju 39

Elementarne operacije sa matricama i poljima brojeva g= 1 -2 6 g1 = -2 -4 -6 Vidimo da ukoliko je jedan od inilaca skalar, rezultat primjene operatora .* e biti isti kao obi nog matri nog mnoenja *, tj. svaki element matrice ili vektora mnoi se sa skalarom.

2.5 DETERMINANTA I INVERZNA MATRICADeterminanta kvadratne matrice X, X , izra unava se pomo u operatora det(X). Primjer 2.5.1 Ako unesemo matricu A sa realnim elementima A=[1 5 8;3 -1 2;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. Naime, unoenjem matrice B=[-1+2*i 1-2*i i;-i 2 1+i;-2 3*i 4+i]; izraz d1=det(B) daje d1 = -8.0000 +38.0000i Primjer 2.5.2 Sa AB = A B .

matricama

iz prethodnog primjera provjeriti relaciju

40

MATLAB for Windows det(A*B)-det(A)*det(B) ans = 0 Inverzna matrica X kvadratne nesingularne matrice X, dobija se primjenom operatora inv(X). Primjer 2.5.3 Za matrice A i B iz primjera 2.5.1, izrazi Ai=inv(A),Bi=inv(B) daju Ai = -0.0179 0.5536 -0.1607 0.0893 0.2321 -0.1964 0.0714 -0.2143 0.1429 Bi = -0.0836 - 0.2719i 0.2241 + 0.1897i -0.0915 - 0.0597i 0.0663 + 0.0650i 0.2586 + 0.1034i -0.0464 - 0.0955i -0.0371 - 0.1764i 0.1552 - 0.1379i 0.1260 - 0.0265i U MATLAB-u ne postoji posebni operator za izra unavanje adjungovane matrice ali je, na osnovu definicije inverzne matrice, o igledno da izraz adjA=inv(A)*det(A) daje adjungovanu matricu matrice A adjA = 2.0000 -62.0000 18.0000 -10.0000 -26.0000 22.0000 -8.0000 24.0000 -16.0000

2.6 "DIJELJENJE" MATRICAU matri nom ra unu dijeljenje nije definisano (osim ako je djelilac skalar). U MATLAB-u, me|utim, postoje dva operatora za "dijeljenje" matrica: / \ koji ozna ava takozvano "dijeljenje" s desna, i koji ozna ava takozvano "dijeljenje" s lijeva.

41

Elementarne operacije sa matricama i poljima brojeva Zna enje ovih operatora razmotri emo, za sada, samo za specijalni slu aj kada se radi o kvadratnim nesingularnim matricama. Neka je, naime, matrica A kvadratna i nesingularna. Tada izraz: X=A\B odgovara mnoenju matrice B s lijeva sa A-1, tj. X=A-1B, dok izraz: X=B/A odgovara mnoenju matrice B s desna sa A-1, tj. X=BA-1, pri emu se primjenom operatora \ i / rezultati dobijaju direktno, bez ra unanja inverzne matrice. Dijeljenje s lijeva A\B definisano je samo u slu aju kada je broj vrsta varijabli A i B isti. Primjer 2.6.1 Za matrice A i B iz prethodnog primjera i b=[1 2 3]', izrazi x=A\b,X=A\B imaju smisla i daju x= 0.6071 -0.0357 0.0714 X= 0.3393 - 0.5893i 1.0893 - 0.4464i -0.0893 + 0.3750i 0.3036 - 0.0536i 0.5536 - 0.7679i -0.5536 + 0.1250i -0.3571 + 0.3571i -0.3571 + 0.2857i 0.3571 - 0.0000i dok za c=2 i d=b', izrazi x=A\c,X=A\d nijesu definisani i rezultira e porukom o neslaganju dimenzija. Izraz za dijeljenje s desna B/A moe se izraziti preko dijeljenja s lijeva kao B/A=(A'\B')', i ima smisla samo ako je broj kolona varijabli A i B isti. Primjer 2.6.2 Za veli ine iz prethodnog primjera, izrazi y=d/A,Y=B/A imaju smisla, i daju rezultate 42

MATLAB for Windows y= 0.3750 0.3750 -0.1250 Y= 0.1071 - 0.1429i -0.3214 + 0.4286i -0.0357 + 0.2143i 0.2500 + 0.0893i 0.2500 - 0.7679i -0.2500 + 0.3036i 0.3214 + 0.3393i -1.9643 + 0.4821i 0.8929 - 0.4464i dok izrazi y=c/A b/A nijesu definisani i rezultira e porukom o neslaganju dimenzija matrica koje se "dijele". Napomenimo ovdje da izraz X=A\B predstavlja rjeenje za AX=B, dok izraz X=B/A predstavlja rjeenje za XA=B. O operatorima \ i / bi e vie rije i u osmom poglavlju, gdje emo razmotriti njihovu upotrebu pri rjeavanju skupa linearnih jedna ina u optem slu aju.

2.7 DIJELJENJE POLJA BROJEVAZa dijeljenje ure|enih skupova brojeva vae druga ija pravila pa se upotrebljavaju i razli iti simboli: ./ za dijeljenje s desna, i .\ za dijeljenje s lijeva. Ta ka u simbolu za dijeljenje ozna ava da se ova operacija vri na korespondentnim elementima. Tako, izraz C=A./B (ili njemu ekvivalentan C=B.\A) zna i da su elementi skupa C izra unati po pravilu c(i,j)=a(i,j)/b(i,j), gdje su a(i,j) i b(i,j) odgovaraju i elementi skupova A i B. Na isti na in, izrazi D=A.\B (tj. D=B./A) zna e da je d(i,j)=b(i,j)/a(i,j). Iz ovakvih pravila o igledno slijedi: da bi navedeni izrazi imali smisla A i B moraju imati iste dimenzije. Jedini, ali veoma prakti an, izuzetak od ovog pravila predstavlja slu aj kada je dijeljenik ili djelilac skalar. Tako izrazi D=k./A odnosno D=A.\k zna e da je d(i,j)=k/a(i,j), dok izrazi D=A./k odnosno D=k.\A zna e da se elementi skupa D ra unaju po relaciji d(i,j)=a(i,j)/k. Primjer 2.7.1 Unesi polja A i B i na|i njihove koli nike. A=[1 0 -2;-1 2 0],B=[-3 0 4;0 2 -1] 43

Elementarne operacije sa matricama i poljima brojeva A= 1 0 -2 -1 2 0 B= -3 0 4 0 2 -1 C=A./B Warning: Divide by zero C= -0.3333 NaN -0.5000 -Inf 1.0000 0 D=B./A Warning: Divide by zero D= -3 NaN -2 0 1 -Inf Poto A i B iz primjera sadre neke elemente jednake nuli, dobijamo poruku o dijeljenju sa nulom, a u rezultatu se javlja Inf ili NaN. Primjer 2.7.2 Za a=2 i polja A i B iz prethodnog primjera, izra unati a./A i B./a. Unoenjem A1=a./A dobijamo Warning: Divide by zero A1 = 2 Inf -1 -2 1 Inf dok B1=B./a daje B1 = -1.5000 0 2.0000 0 1.0000 -0.5000 Vidimo da je efekat isti kao da smo koristili naredbe: A1=a*ones(size(A))./B, odnosno 44

MATLAB for Windows B1=B./(a*ones(size(B))) Postoji jedna zna ajna razlika ove verzije MATLAB-a u odnosu na DOS verzije u pogledu dijeljenja skalara poljem brojeva. Naime u MATLAB-u for Windows izraz: 4./A je korektan i rezultira Warning: Divide by zero ans = 4 Inf -2 -4 2 Inf dok bi u prethodnim verzijama MATLAB-a rezultirao grekom. Uzrok ovoga je bio taj to je "stari" MATLAB ta ku tuma io kao decimalni zarez pa matri ne dimenzije nijesu odgovarale. Obi no se primjenjivao trik da se prethodni izraz zapisivao u obliku 4../A gdje prva ta ka i dalje ozna ava decimalni zarez a druga operaciju na polju brojeva.

2.8 STEPENOVANJE MATRICAAko je A kvadratna matrica a p pozitivan cio broj, matri ni stepen definie se kao Ap=A A A A ...A, p puta odnosno, za A nesingularnu matricu A-p= (A-1)p Stepenovanje kvadratne matrice vri se pomo u operatora ^, tako da izrazi A^p i A^(-p) daju p-ti i (-p)-ti matri ni stepen od A. Primjer 2.8.1 Za proizvoljnu nesingularnu matricu A odrediti A2, A-2 i provjeriti da li vai: A0=I, gdje je I jedini na matrica iste dimenzije kao A. A=[-1 2 3;2 -2 1;1 4 2] A= -1 2 3 2 -2 1 1 4 2 45

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, ve proizvoljan realan broj, operacija stepenovanja kvadratne matrice A ima razli ito zna enje i vri se po druga ijem pravilu. Ap je definisano preko sopstvenih vrijednosti i vektora (za definiciju ovih pojmova vidi osmo poglavlje) kao Ap=V Dp V -1, gdje je D dijagonalna matrica koja sadri sopstvene vrijednosti matrice A na glavnoj dijagonali, a V je matrica sa injena od odgovaraju ih sopstvenih vektora matrice A. Samo stepenovanje D jednostavno se vri stepenovanjem pojedinih skalarnih elemenata sa glavne dijagonale. Ukoliko A sadri kompleksne sopstvene vrijednosti, A e tako|e biti kompleksna matrica. Primjer 2.8.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.6 i B-1.56. A1=A^2.6 A1 = 9.1993 + 0.0000i -0.4674 + 4.2285i 8.6667 - 4.2285i 8.1993 + 0.0000i 2.4483 + 0.3844i 6.7510 - 0.3844i 8.1993 - 0.0000i 4.3218 - 5.3817i 4.8775 + 5.3817i B1=B^(-1.56) B1 = 46

MATLAB for Windows -0.0730 - 0.0000i -0.0176 + 0.0000i 0.1023 + 0.0000i 0.3043 - 0.0000i -0.0086 - 0.0000i -0.1376 + 0.0000i -0.1464 + 0.0000i 0.0935 + 0.0000i 0.1493 - 0.0000i Na sli an na in, izraz pA, gdje je p skalar a A kvadratna matrica, ra una se preko sopstvenih vrijednosti i vektora. Primjer 2.8.3 Za matrice A i B iz prethodnog primjera na i (2)A i (-3.6)B. A1=2^A A1 = 5.0000 -0.6833 3.6833 3.0000 2.4833 2.5167 3.0000 2.2333 2.7667 B1=(-3.6)^B B1 = 1.0e+002 * 0.0825 + 0.5963i 0.1176 + 0.8498i 0.1482 + 1.0736i 0.0470 + 0.3472i 0.0684 + 0.4958i 0.0870 + 0.6259i 0.1458 + 1.0508i 0.2070 + 1.4985i 0.2613 + 1.8939i Izraz AB, gdje su A i B matrice, nije korektan i ukoliko pokuamo da stepenujemo matricu sa matricom, dobi emo poruku greke. Ra unar e javiti greku i u svim slu ajevima kada pokuamo ra unati matri ni stepen a matrica nije kvadratna.

2.9 STEPENOVANJE POLJA BROJEVAStepenovanje polja brojeva (element po element), u MATLAB-u je ozna eno sa .^. Izraz oblika C=A.^B gdje su A i B matrice, mogu je samo ako su A i B istih dimenzija, a elementi polja C dobijaju se po relaciji c(i,j)=a(i,j)b(i,j) Primjer 2.9.1 Stepenovati, element po element, matrice A i B iz prethodnog primjera. Poto su iste dimenzije, izrazi C1=A.^B,C=B.^A daju C1 = 0.2500 4.0000 27.0000 47

Elementarne operacije sa matricama i poljima brojeva 1.0000 1.0000 1.0000 1.0000 81.0000 1.0000 C= 4.0000 0.2500 27.0000 2.0000 -2.0000 1.0000 2.0000 64.0000 0.5000 Za vektor x=[1 -2 3], izraz A.^x daje poruku ??? Error using ==> .^ Matrix dimensions must agree. Specijalni slu ajevi generalnog izraza C=AB nastupaju kada je u osnovi ili eksponentu skalar. Tako izrazi C=A.^p i D=p.^A, gdje je p skalar a A matrica proizvoljne dimenzije, u MATLAB-u imaju smisla a elementi C i D ra unaju se kao c(i,j)=a(i,j)p i d(i,j)=pb(i,j)

Primjer 2.9.2 Za x=[-1 -2 2] i y=[0.5 2 3] imamo (-3).^x ans = -0.3333 0.1111 9.0000 y1=y.^3 y1 = 0.1250 8.0000 27.0000 3.^y ans = 1.7321 9.0000 27.0000 Primjetimo da bi posljedni izraz u ranijim verzijama MATLAB-a bio protuma en kao greka (zbog toga to bi ta ka bila okarakterisana kao decimalni zarez) dok je ovdje potpuno korektan.

2.10 ELEMENTARNE MATEMATI^KE FUNKCIJEOsnovni operatori ugra|eni u MATLAB sadre i skup elementarnih matemati kih funkcija ija je lista data u priloenoj tabeli. 48

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 zaokruivanje prema nuli zaokruivanje prema zaokruivanje 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 sadralac 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

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, beta, gama i elipti ke funkcije besselj besseli bessel beta betalnc

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. Beselova f-ja prve vrste besselk modif. Besel. f-ja druge vrste

Beselova f-ja komplex. argum. beta funkcija logaritam beta funkcije gammain nekompletna gama funkcija ellipj Jakobijeva elipti ka funkcija

Funkcija greke erf erfcx funkcija greke erfc skalirana komplem. f-ja greke erfinv komplementarna f-ja greke inverzna funkcija greke

Ako sa f(X) ozna imo generalnu matemati ku funkciju, moemo sumirati neke osnovne osobine ove grupe operatora: 1) Zadati argument X (koji moe biti skalar, vektor ili matrica) tretira se kao polje brojeva, tj. za X 11 X 21 M X m1 X 12 X 22 M X m2 L L O L X 1n X 2n M X mn

X

imamo 50

MATLAB for Windows f ( X 11 ) f ( X 21 ) M f ( X m1 ) f ( X12 ) f ( X 22 ) M f ( X m2 ) L L O L f ( X 1n ) f ( X 2n ) M f ( X mn )

f (X)

2) X moe imati realne ili kompleksne elemente. 3) Sloeni izrazi i nove funkcije grade se pomo u elementarnih funkcija i operacija za manipulaciju sa poljima brojeva +,-,.*,./,.\,.^.

2.10.1 FUNKCIJE ABS, ANGLE, REAL, IMAG I CONJNa jednom primjeru ilustrova emo zna enje i sintaksu naredbi abs, angle, real, imag i conj. Primjer 2.10.1 Za dato polje brojeva Z Z= -1.0000 + 2.0000i 1.0000 - 3.0000i 3.0000 + 4.0000i 2.0000 - 6.0000i izraz az=abs(Z) daje az = 2.2361 3.1623 5.0000 6.3246 tj. apsolutne vrijednosti elemenata polja Z. Izraz an=angle(Z) daje an = 2.0344 -1.2490 0.9273 -1.2490 tj. uglove (fazne stavove) elemenata Z izraene u radijanima. Ukoliko elimo dobiti njihove vrijednosti u stepenima, primijeni emo 51

Elementarne operacije sa matricama i poljima brojeva an*180/pi to daje ans = 116.5651 -71.5651 53.1301 -71.5651 Izraz Re=real(Z) daje realni dio polja (ili matrice) Z, tj. 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.0000 - 2.0000i 1.0000 + 3.0000i 3.0000 - 4.0000i 2.0000 + 6.0000i

2.10.2 FUNKCIJE ZA ZAOKRU@IVANJEU MATLAB-u postoje etiri operatora za zaokruivanje na cijele brojeve. Operatore i njihovo zna enje moemo ilustrovati sljede im dijagramima:

-2

-1.5

-1 -0.5 0 0.5 1 1.5 2 round(x) zaokruivanje na najblii cio broj

52

MATLAB for Windows -2 -1.5 -1 -0.5 0 0.5 1 1.5 2

fix(x) zaokruivanje prema nuli

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

floor(x) zaokruivanje prema -

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

ceil(x) zaokruivanje prema +

Primjer 2.10.2 Neka je matrica (ili polje brojeva) data sa A= -3.5600 5.2300 2.6700 -1.2400 Primjena pojedinih operatora za zaokruivanje 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

Elementarne operacije sa matricama i poljima brojeva Kompleksni brojevi se zaokruuju tako to se posebno zaokrue realni i imaginarni djelovi. Ako uzmemo Z iz prethodnog primjera, izraz Z1=Z*2*pi daje Z1 = -6.2832 +12.5664i 6.2832 -18.8496i 18.8496 +25.1327i 12.5664 -37.6991i pa operatori za zaokruivanje round i ceil daju round(Z1) ans = -6.0000 +13.0000i 19.0000 +25.0000i ceil(Z1) ans = -6.0000 +13.0000i 19.0000 +26.0000i

6.0000 -19.0000i 13.0000 -38.0000i

7.0000 -18.0000i 13.0000 -37.0000i

2.10.3 EKSPONENCIJALNA, LOGARITAMSKA, STEPENA I FUNKCIJA KVADRATNOG KORIJENAEksponencijalna funkcija definisana je operatorom exp. Tako exp(X) daje ex za svaki element polja X. Za kompleksni broj z=x+iy, exp(z) ra una kompleksnu eksponencijalnu funkcija ez=ex(cos y + isin y). Primjer 2.10.3 Ilustrova emo primjenu eksponencijalne funkcije za polja

A

3.56 2.67

5.23 1.24

i Z

1 2i 1 3i 3 4i 2 6i

exp(A) ans = 0.0284 186.7928 14.4400 0.2894 exp(Z) 54

MATLAB for Windows ans = -0.1531 + 0.3345i -2.6911 - 0.3836i -13.1288 -15.2008i 7.0948 + 2.0646i log(X) daje prirodne logaritme elemenata polja X. Ukoliko je z=rej negativan ili kompleksan broj, izraz log(z) ra una kompleksni prirodni logaritam, po formuli ln z= ln r+ i . Logaritam za osnovu 10 od elemenata polja X definisan je sa operatorom log10(X). Primjer 2.10.4 Za polja A i Z iz prethodnog primjera, dobijamo: log(A) ans = 1.2698 + 3.1416i 1.6544 0.9821 0.2151 + 3.1416i log(Z) ans = 0.8047 + 2.0344i 1.1513 - 1.2490i 1.6094 + 0.9273i 1.8444 - 1.2490i log10(A) ans = 0.5514 + 1.3644i 0.7185 0.4265 0.0934 + 1.3644i log10(Z) ans = 0.3495 + 0.8835i 0.5000 - 0.5425i 0.6990 + 0.4027i 0.8010 - 0.5425i Operator sqrt(X) daje kvadratni korijen elemenata matrice X, pri emu se kompleksni rezultat dobije za negativne elemente, po definicijiz r [cos( / 2 k ) i sin( / 2 k )], k 0,1 .

Primjer 2.10.5 Na i kvadratni korijen polja A i Z iz prethodnog primjera. sqrt(A) ans = 0 + 1.8868i 2.2869 1.6340 0 + 1.1136i sqrt(Z) 55

Elementarne operacije sa matricama i poljima brojeva ans = 0.7862 + 1.2720i 1.4426 - 1.0398i 2.0000 + 1.0000i 2.0402 - 1.4705i Specifi ne funkcije ove grupe su log2 i pow2. log2 kao funkcija jednog argumenta log2(X) daje logaritam sa osnovom 2 elemenata matrice. pow2(X), funkcija jednog argumenta daje matricu iji su elementi 2x. Za matrice sa realnim argumentima moe se zahtjevati da funkcija log2(X) ima dva izlazna argumenta: [f,e]=log2(X) Vrijednost matrice f su brojevi izme|u 0.5 i 1 takvi da vai X=f 2e. Funkcija x=pow2(f,e) ima suprotan efekat. Primjer 2.10.6 Na i logaritam sa osnovom 2 matrice A kori ene u prethodnim primjerima, etvrti stepen broja 2 i na nizu brojeva od 1 do 16 demonstrirati ostale mogu nosti naredbi log2 i pow2. log2(A) ans = 1.8319 + 4.5324i 2.3868 1.4168 0.3103 + 4.5324i x=pow2(4) x= 16 [f,e]=log2(1:16) f= Columns 1 through 7 0.5000 0.5000 0.7500 0.5000 0.6250 0.7500 0.8750 Columns 8 through 14 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 Columns 15 through 16 0.9375 0.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,e) x= Columns 1 through 12 56

MATLAB for Windows 1 2 3 4 5 6 Columns 13 through 16 13 14 15 16 7 8 9 10 11 12

2.10.4 TRIGONOMETRIJSKE, HIPERBOLNE I NJIMA INVERZNE FUNKCIJEOperatori sin(X), cos(X), tan(X), cot(X), sec(X) i csc(X) daju trigonometrijske funkcije za argumente definisane u radijanima. I oblast definisanosti i oblast vrijednosti ovih funkcija uklju uju kompleksne brojeve. Za kompleksne argumente z=x+iy vae 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), acos(X), atan(X), acot(X), asec(X) i acsc(X) daju inverzne trigonometrijske funkcije u radijanima. Za realne vrijednosti x, takve da je abs(x)1, kao i za kompleksne vrijednosti x, acos(x) i asin(x) daju kompleksne vrijednosti po pravilu

cos 1 ( x ) sin 1 ( x )

i ln( x i 1 x 2 ) i ln(ix 1 x2 )

Na sli an na in, za kompleksne x, 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,X) daje tzv. etvorokvadrantni arkus tangens. Vidimo da zahtijeva dva ulazna argumenta, jer vrijednosti Y i X odre|uju kvadrant u kome se pridruena varijabla X+iY nalazi, tako da za ra unanje arkus tangensa nije dovoljno poznavati samo odnos Y/X. Rezultat se dobija u opsegu [- , ]. 57

Elementarne operacije sa matricama i poljima brojeva U m-fajlu postoje i hiperbolne funkcije sinh, cosh, tanh, coth, sech i csch kao i inverzne hiperbolne funkcije asinh, acosh, atanh, acoth, asech i acsch. Primjer 2.10.7 Za polja A i Z iz primjera 2.10.3, ilustrova emo pojedine od navedenih elementarnih matemati kih funkcija: sin(A),sin(A+2*pi),sin(Z),sin(Z+2*pi) ans = 0.4063 -0.8690 0.4543 -0.9458 ans = 0.4063 -0.8690 0.4543 -0.9458 ans = 1.0e+002 * -0.0317 + 0.0196i 0.0847 - 0.0541i 0.0385 - 0.2702i 1.8342 + 0.8394i ans = 1.0e+002 * -0.0317 + 0.0196i 0.0847 - 0.0541i 0.0385 - 0.2702i 1.8342 + 0.8394i asin(Z) ans = -0.4271 + 1.5286i 0.3076 - 1.8642i 0.6340 + 2.3055i 0.3181 - 2.5426i tan(Z), cot(A), 1./tan(A) ans = -0.0338 + 1.0148i 0.0045 - 1.0021i -0.0002 + 0.9994i 0.0000 - 1.0000i ans = -2.2489 -0.5694 -1.9609 -0.3434 ans = -2.2489 -0.5694 -1.9609 -0.3434 atan2(imag(Z),real(Z)) ans = 2.0344 -1.2490 58

MATLAB for Windows 0.9273 -1.2490 angle(Z) ans = 2.0344 -1.2490 0.9273 -1.2490 sec(A), sec(A),1./cos(A) ans = -1.0944 2.0210 -1.1225 3.0789 ans = -1.0944 2.0210 -1.1225 3.0789 ans = -1.0944 2.0210 -1.1225 3.0789 sinh(A) ans = -17.5674 93.3937 7.1854 -1.5831 Vidimo da za Z=X+iY operatori angle(Z) i atan2(Y,X) daju isti rezultat.

2.10.5 BESSELOVE, BETA, GAMA I FUNKCIJE GRE[KEOperatori besselj, bessely, besseli i besselk slue za izra unavanje Besselovih funkcija. Diferencijalna jedna ina oblika x y"+ xy'+(x2 - 2)y = 0, naziva se Beselova jedna ina, a njena rjeenja poznata su pod imenom Beselove funkcije. besselj(alfa,X) izra unava Beselovu funkciju prve vrste reda >0 za svaki element polja X. bessely(alfa,X) izra unava Beselovu funkciju druge vrste reda tac is=in; n=2*n; % definisanje vektora s=[1 4 2 4 2 4 2 ... 2 4 1] 146

MATLAB for Windows s1=[4*ones(1,n/2-1);2*ones(1,n/2-1)]; s=[1 s1(:)' 4 1]; h=(b-a)/n; x=a:h:b; y=eval(f); in=sum(y.*s)*h/3; end end Izra unajmo sada integral funkcije f(x)=xsin(x)cos(x) u intervalu od -1 do 1. To emo u initi prosto naredbom f='x.*sin(x).*cos(x)'; simp(f,-1,1). Ta nost je automatski 0.001. Zadata ta nost, npr. 0.00001, postie se sa simp(f,1,1,0.00001). U ovom primjeru treba re i da bi korektnije bilo definisati relativnu umjesto apsolutne greke. Naredba while bi u tom slu aju bila: while abs((in-is)/in)>tac. U MATLAB-u postoje dvije ugra|ene funkcije za izra unavanje odre|enog integrala:b

Ia

f ( x) dx

u obliku I=quad(f,a,b,tac, korak) ili I=quad8(f,a,b,tac,korak), gdje je f naziv funkcije, a donja granica, b gornja granica, tac eljena ta nost i korak korak integracije (koji se moe izostaviti i tada se uzima neka default vrijednost). Razlika izme|u ova dva algoritma je u brzini konvergencije koja je kod funkcije quad8 ve a ali je istovremeno sloenost izra unavanja pove ana. Primjer 5.5.2 Izra unati integral funkcije f(x)=sin(x) od 0 do , sa ta no u 0.000001. quad('sin',0,pi,0.000001) Napominjemo da se na ovaj na in mogu ra unati jedino integrali ugra|enih funkcija ili funkcija definisanih m-fajlovima. Primjer 5.5.3 Izra unati integral funkcije f(x)=xsin(x) od 0 do , sa ta no u 0.000001. Potrebno je definisati funkciju f(x)=xsin(x), koju emo zvati sx(x). function s=sx(x) 147

Programiranje i M-fajlovi s=x.*sin(x); end Poslije izlaska iz editora, integral ra unamo sa: quad('sx',0,pi,0.001) Nulu funkcije definisane m fajlom ili ugra|ene funkcije, u okolini ta ke x=a, moemo dobiti sa fzero(f,a,tac). Primjer 5.5.4 Na i nule funkcije y=x3+x2-2x-1 za x