O MATLAB-U Što je MATLAB? MATLAB je jedan od nekolicine komercijalnih matematičkih software paketa/alata Postoje još i Maple Mathematica MathCad MATLAB je naročito dobar za Matematičke operacije Posebno ako one uključuju i operacije sa matricama Računalnu grafiku i vizuelno prikazivanje rezultata MATLAB = Matrix Laboratory Matlab je interaktivni program za inženjerske i znanstvene proračune. Služi za rješavanje različitih matematičkih problema, te izračunavanja i simulacije vezane uz identifikaciju, upravljanje i regulaciju sustava. Kako se i gdje sve Matlab koristi u tehnici? Matlab postaje sve popularniji i sve više se koristi u industriji/kompanijama upotrebljava se za matematiku i računanje razvoj algoritama modeliranje, simulaciju, analizu analizu i obradu podataka, vizualizaciju znanstvenu i inžinjersku grafiku Svaka naredba mora završiti tipkom Enter u nastavku teksta koristit ćemo oznaku <ent>. Elektrotehnika Matlab sve podatke tretira kao matrice; Nakon pokretanja programa, otvara se glavni prozor u kojem ćemo uočiti znak >> (prompt), koji označava da Matlab očekuje unos nove naredbe. Svaka naredba mora završiti tipkom Enter u nastavku teksta koristit ćemo oznaku <ent>. Neki primjeri. Gornje slike predstavljaju simulaciju sistema vida obične muhe. Simulacija je razvijena koristeći MATLAB a sličan sistem je razvijen za navigaciju autonomnih robota u industriji. 1
Biomedicina Dinamika Fluida Ove slike predstavljaju rezultate snimanja i praćenja aktivnosti čovjekovog mozga koristeći magnetnu rezonanciju (MRI instrument). Komplet ovih slika je dostupan u MATLABU i moguće ga je koristiti da bi korisnici razvili i testirali svoje programe i tehnike. Rezultati modeliranja problema u strojarstvu koristeći metodu konačnih elemenata predstavljeni u MATLABu Riješavanje Problema uz Pomoć Matlab-a u Tehnici i Znanosti 1. Jasno postaviti/formulirati problem 2. Definirati ulazne i izlazne vrijednosti 3. Razviti algoritam (metodu za riješavanje problema) 4. Riješiti problem 5. Provijeriti riješenje Postavljanje Problema Ako nemate sasvim jasnu ideju i ne možete opisati vaš problem kako treba, mali su izgledi da ga uspješno riješite Crtanje dijagrama ili slike obično pomaže Ulazne i izlazne vrijednosti Točno koristite mjerne jedinice Idenitificirajte konstante Označite vaš dijagram sa svim vrijednostima koje su u igri Složite sve vrijednosti o problemu u tablicu Razvijanje Algoritma Upotrijebite točne jednadžbe koje uključuju i opisuju sve varijable i vrijednosti u vašem problemu Pokušajte postaviti jednostavan primjer vašeg problema i prvo proći kroz njega na papiru Crtanje blok dijagrama (flow chart) je obično od velike korisiti i preporučuje se u ovoj fazi 2
Riješavanje problema Ovdje na scenu stupa MATLAB i programiranje u MATLABu Ne štedite na komentarima u vašem programu; ovo pomaže drugima (a i vama) da kasnije razumiju i koriste (ili promijene) vaš program Provjeravanje riješenja Usporedite sa rezultatom koji ste dobili koristeći papir i olovku Imaju li vaši rezultati uopće nekog smisla? Je li vaš odgovor uopće ono što se traži? Grafički prikaz rezultata je često vrlo koristan da bi se bolje i potpunije provjerili rezultati MATLAB programa Ukratko Ako se pridržavate pravila kod riješavanja vaših problema MATALBom povećavate šanse da dodjete do točnog riješenja Sljedi mali primjer. MATLAB se jako puno (i sve više) koristi u obrazovanju i industriji MATLAB je lak za učenje i korištenje Sistematski prilaz riješavanju problema u MATLABu vam povećava šanse da problem uspiješno riješite Octave Octave je jezik visokog stupnja namijenjen numeričkom rješavanju matematičkih problema vrlo sličan komercijalnom programskom paketu Matlab. S programom dolazi mnoštvo alata za rješavanje klasičnih numeričkih problema kao što su nalaženje korijena polinoma, numeričko integriranje, deriviranje, manipulaciju polinomima itd. Značajke: Napravljen za Linux operacijski sustav Besplatan je On-line verzija: www.csc.unist.hr/~slap/octave/octave-on-line.php Što je MATLAB? MATLAB je i okružje i programski jezik njegov programski jezik omogućava izgradnju vlastitih alata Toolbox je skup specijaliziranih M-datoteka za rad na određenoj klasi problema. S MATLABom dolazi nekoliko Toolbox-ova s područja upravljanja, obrade signala, identifikacije procesa, i drugih 3
Tekući Direktorij Prethodno izdane komande Komandni prozor Komande se unose kod >> odziva MATLAB Prozori Radni prostor Komandni prozor možete koristiti kao obično računalo Standardni redoslijed operacija važi i u Matlabu MATLAB Prozori Da bi prikazao relevantne podatke, komande (naredbe), rezultate MATLAB koristi nekoliko prozora Svi prozori ne moraju biti otvoreni ili vidljivi u svakom trenutku rada sa MATLABom Proučimo malo svaki od osnovnih Matlab prozora Komandni (naredbeni) prozor Sličan listu papira na kom ispisujete razne komande Kada pritisnete tipku enter, komanda se više ne može mijenjati Možete je ponovo otkucati ili ju pozvati koristeći tipku sa strijelicom ( ) prije nego ponovo otipkate enter Prethodne komande Zadnje MATLAB komande su obično prikazane u komandnom prozoru Komandni prozor se može očistiti tako da se zatvori i ponovo otvori, ili (lakše) ako se izda clc komanda Prethodno izdane Matlab komande Izdane komande ostaju i dalje zapamćene dok se MATLAB ne zatvori 4
Prethodne komande Prethodno izdane komande se mogu lako prebaciti u komandni prozor i na taj način reaktivirati Dvostrukim klikom miša Jednostrukim klikom miša i prevlačenjem izabrane komande u komandni prozor Radni prostor (prozor?) Sadrži informacije o varijablama koje ste definirali tokom rada u MATLABu Ime Vrijednost Radni Vrsta prostorvarijable Veličina Dio memorije koju varijabla zauzima (broj bajta) Ove podatke možete dobiti klikom na ime varijable koja vas interesuje Skalar Varijable koje se definiraju u komandnom prozoru (ili se izračunaju nakon izdate MATLAB komande) će nakon toga biti prikazane u radnom prostoru. Vektor Matrica (2D) 5
Tekući Direktorij Tekući direktorij je prozor koji sadrži listu dokumenata koji se nalaze u tom direktoriju Ako želite unijeti podatke iz nekog dokumenta ili spremiti nove podatke u novi dokument, MATLAB prvo gleda u tekući direktorij Dokument Prozor Ako odaberete neku od varijabli u radnom prostoru (dvostrukim klikom na nju) MATLAB će otvoriti novi, dokument, prozor koji ima ulogu editora varijabli u Matlab prostoru (array editor) Koristeći ovaj editor možete mijenjati vrijednosti varijabli u radnom prostoru. Dokument Prozor (Prozor) Slike Kada izdate neku od komandi za grafički prikaz rezultata, MATLAB će otvoriti novi prozor u kom će prikazati sliku Lakoća kojom se stvaraju i prikazuju slike u MATLABu je jedna od najvećih prednosti ovog paketa točka-zarez - ; - sprječava prikaz rezultata izdate operacije u Matlabu 6
Editor (Prozor) U ovom prozoru možete otkucati niz komandi bez potrebe da ih izdajete/izvodite jednu za drugom Editor možete otvoriti Iz file menija Pomoću file ikone na traci menija Otvaranje Editora Riješavanje Problema uz Pomoć MATLABa Pogledajmo sada kako MATLAB radi na nekim primjerima Varijable Na početku rada sa MATLABom obično je potrebno definirati varijable i dodijeliti im odredjene vrijednosti, npr. A=3 Ovu komandu je najbolje shvatiti kao dodjeljivanje vrijednosti 3 varijabli A Ovako definirane varijable se onda mogu koristiti u narednim komandama Imenovanje varijabli Sva imena moraju započeti slovima Imena varijable mogu sadržavati slova, brojeve i znak _ ) MATLAB pravi razliku izmedju malih i velikih slova Neke ključne MATLAB riječi se ne mogu korstiti kao imena varijabli Matrice u MATLABu Osnovna vrsta varijabli Grupa brojeva rasporedjena u redove i kolone Jedan broj (Skalar) MATLAB ga tretira kao matricu sa samo jednim redom i jednom kolonom Vektor (Jednodimenzionalna matrica) Jedan red ili jedna kolona Matrica (Dvije dimenzije) 7
Operacije sa skalarima MATLAB se može koristiti kao jednostavan džepni kalkulator Dodjeljivanje vrijednosti varijablama Da bi smo dodijelili vrijednost varijabli a možemo npr. upotrijebiti ovu komandu a=1+2 a će nakon ovoga imati vrijednost 1+2 Komandni odziv Rezultat >> 9 + 10 ans=19 Dodjeljivanje vrijednosti nekoj vrijabli pomoću = je malo drugačije od znaka jednakosti u Matematici? Redosljed operacija Isti kako ste naučili u matematici Prvo zagrade Eksponencijalne funkcije Množenje / dijeljenje Zbrajanje / oduzimanje Zagrade Koristite samo ( ) { } i [ ] se koriste za neke druge (važne) stvari u MATLABu MATLAB ne podrazumjeva množenje ako se ispusti znak * Operacije sa matricama Upotreba MATLABa kao malo jačeg džepnog računala je OK, ali se prava snaga MATLABa krije u operacijama sa matricama 5 * (3+4) not 5(3+4) 8
Da bi ste u radnom prostoru stvorili vektor jednodimenzionalnu matricu, koristite pravokutne zagrade [ ] Između pojedinačnih brojeva u vektoru možete upotrijebiti ili prazan prostor ili zareze Korištenje točka-zareza umijesto zareza ili praznih prostora će brojeve rasporediti u kolonu umjesto u redak Korištenje točka-zareza da bi se označio novi red Korištenje prečica Korisno: Da bi ste lakše pratili koliko ste elemenata unijeli u pojedine redove, dobro je korisiti novu liniju u komandnom prostoru za svaki novi red. Dok se neke komplicirane matrice moraju unositi pažljivo, ručno, unos je puno lakši ako se radi o matricama sa elementima koji su pravilno raspoređeni. Instrukcija b= 1:5 ili b = [1:5] će stvoriti vektor u jednom redu 9
Za automatsko izračunavanje razmaka izmedju elemenata možete koristiti linspace logspace Razlika izmedju elemenata matrice ili vektora je 1 po definiciji, ako želite neku drugu razliku, umetnite je izmedju početne i krajnje vrijednosti Početna vrijednost Broj elemenata u vektoru ili matrici Završna vrijednost Broj elemenata Početna vrijednost izražena kao stupanj broja 10 Završna vrijednost izražena kao stupanj broja 10 Korisna napomena U instrukciji koja definira elemente matrice se može upotrijebiti i matematička operacija Na primjer: Operacije sa Matricama i Vektorima Množenje.* Dijeljenje./ Eksponencijalne funkcije.^ a = [0: pi/10: pi] Dimenzije matrica ili vektora moraju biti iste. 10
Zahvaljujući matricama ponavljanje istih operacija u MATLABu je jednostavno Ako, na primjer, imate veliki broj kutova datih u stupnjevima koje treba pretvoriti u radijane, najbolje je Prvo ih sortirati u vektor (ili matricu) Potom izvršiti pretvaranje u radijane Spremite čitav rad koristeći meni... * ili.* će dati točan rezultat u ovom slučaju, jer se radi o operaciji izmedju skalara i matrice, tj. vektora Spremite čitav rad iz komandnog prozora koristeći komandu save Vrijednost pi postoji u MATLABu ( ugradjena konstanta) MATLAB kod spremanja koristi.mat dokumente Ako želite da koristite neki drugi format npr..dat, ovo morate navesti u komandi save <file_name> <variable_list> -ascii Znak % se koristi za komentar u Matlabu Potreban je jedan % znak za svaku liniju u koju stavljate komentar 11
Score Score 100 80 60 40 20 100 Test Scores 0 0 200 400 600 800 1000 Student Number 80 60 40 20 Average = 50 Average = 50 0 0 200 400 600 800 1000 Student Number # of students # of students 120 100 80 60 40 20 120 100 Distribution of Test Scores 0 0 20 40 60 80 100 Score 80 60 40 20 Average = 50 Average = 50 0 0 20 40 60 80 100 Score 6.1.2015 NAREDBE WHOS, CLEAR I HELP WHOSE daje nam popis svih varijabli koje se trenutno nalaze u radnom prostoru (workspace-u), njihove dimenzije te koliko memorije zauzimaju. Želimo li izbrisati neku varijablu iz radnog prostora, koristit ćemo naredbu clear. Npr: -budući da smo dosad kreirali varijable A, B, x, y i z, rezultat naredbe who biti će: Ugrađene funkcije... PRE-DEFINIRANE (UGRAĐENE) MATLAB FUNKCIJE Matlab Funkcije Matlab Help Osnovne Matematičke Funkcije Trigonometrijske Funkcije Funkcije za Analizu Podataka Funkcije Slučajnih Vrijednosti Funkcije za Rad sa Kompleksnim Brojevima Specijalne Vrijednosti i Druge Funkcije Korištenje predefiniranih funkcija u MATLABu Funkcija se sastoji od Imena Ulaznih vrijednosti Izlaznih vrijednosti (Rezultata) Neke funkcije mogu (ili moraju) imati više ulaznih vrijednosti Funkcija remainder izračunava ostatak dijeljenja Npr. ostatak kod dijeljenja 10 i 3, 10/3 In MATLAB sqrt (x)= result sqrt(4) ans = 2 12
Neke funkcije daju više izlaznih vrijednosti Funkcija size daje dimenzije matrice broj redova i kolona Rezultatu se obično daje ime koje se kasnije može upotrijebiti u nastavku programa MATLAB funkcije mogu uraditi (skoro) sve što vam može zatrebati Iz komandnog prozora Da bi ste saznali kako rade i kako se koriste MATLAB funkcije možete upotrijebiti MATLAB help Help se može pozvati Iz komandnog prozora Iz MATLAB menija Slučajni Brojevi rand(x) Daje x puta x matricu slučajnih brojeva izmedju 0 i 1 rand(n,m) Daje n puta m matricu slučajnih brojeva izmedju 0 i 1 Ovi brojevi su uniformno raspodijeljeni! 13
Ukratko MATLAB sadrži veliki broj ugrađenih (predefiniranih) funkcija Osnovne Matematičke Funkcije Trigonometrijske Funkcije Funkcije za Analizu Podataka Slučajni Brojevi Kompleksni Brojevi Ukratko Dvotočka ( : ) je vrlo koristan MATLAB operator za operacije sa matricama Ukratko MATLAB ograničenja Specijalne Vrijednosti i Funkcije 14
MATLAB I MATRICE Operacije sa matricama Počnimo sa jednostavnim stvarima Da bi se stvorila matrica u MATLABU njezini elementi se unose pomoću pravkutnih zagrada Kako se stvara matrica u MATLABu A=[3.5] B=[1.5, 3.1] or B=[1.5 3.1] C=[-1, 0, 0; 1, 1, 0; 0, 0, 2]; Obično je bolje i preglednije svaki red matrice unijeti u novoj liniji C = [-1, 0, 0 1, 1, 0 1, -1, 0 0, 0, 2] Ako linija postane preduga... se može upotrijebiti da bi smo ju rastavili na dva ili više dijelova/linija Skalar F = [1, 52, 64, 197, 42, -42, 55, 82, 22, 109]; 15
Veće matrice se mogu definirati i koristeći postojeće, manje matrice Vektor zarezi nisu obavezni Ili Operator : Se može koristiti kod stvaranja novih matrica Ili da bi se izmjenile vrijednosti postojećih elemenata u matrici Ili da bi se samo pristupilo elementima matrice Ukratko : operator : operator se korsti da bi se: stvorile matrice sa konstantnom razlikom izmedju susjednih elemenata pristupilo elementima ili djelovima postojećih matrica matrica pretvorila u stupac OSNOVE GRAFIKE U MATLABU A bargraph of vector x A bargraph of matrix y 8 8 6 6 4 4 2 2 0 0 1 2 3 4 5 1 2 A three dimensional bargraph A pie chart of x 5% 10% 10 5 0 1 2 5 4 3 2 1 25% 20% 40% 16
Dvodimenzionalni crteži Crtanje i označavanje dvodimenzionalnih grafova Podešavanje izgleda vaših crteža Upotreba subplot opcije Trodimenzionalni crteži Interaktivni grafički alati xy je najčešće korišten graf u tehnici Nezavisna varijabla je obično x Zavisna varijabla je y Primjer podataka za xy graf Definirajte x i y i pozovite plot funkciju time, sec Distance, Ft 0 0 2 0.33 4 4.13 6 6.29 8 6.85 10 11.19 12 13.19 14 13.96 16 16.33 18 18.17 Vrijeme (time) je nezavisna varijabla, udaljenost (distance) je zavisna varijable Umjesto x i y, obično se koriste imena koja odgovaraju problemu koji analiziramo Inženjeri obično dodaju i Naslov Ime za X osu, i jedinice Ime za Y osu, i jedinice često je korisno dodati i mrežu preko slike 17
Više grafova na jednom crtežu Svaki put kada izdate naredbu plot MATLAB briše postojeći crtež Da bi se otvorila nova slika, koristi se funkcija figure, npr. figure(2) Crteži sa više grafova Ova krivulja je u plavoj boji hold on Zadržava postojeći crtež tako da se novi graf može crtati preko postojećeg Kod ovog pristupa novi graf će po definiciji biti nacrtan plavom bojom hold on komanda zadržava postojeći crtež Jednom komandom je moguće istovremeno iscrtati više krivulja Koristeći ovaj način, svaki graf je druge boje Drugi crtež je takodjer nacrtan koristeći plavu boju hold off komanda prekida zadržavanje grafova na slici 18
Varijacije Svaki par varijabli u plot komandi će proizvesti novi graf. Ako plot komandi date matricu, MATLAB tretira vrijednosti u matrici kao y varijablu a index svakog elementa kao x varijablu Matrice se obično crtaju koristeći bar komandu Ako su pak nacrtane koristeći plot komandu, tj. kao xy graf, zovemo ih linijskim grafovima Ako želite nacrtati više setova y varijabli za isti x set Možete upotrijebiti plot komandu na sljedeći način plot(x,y1,x,y2,x,y3,x,y4) Ili sve y setove sačuvati u matricu pa onda upotrijebiti linijski graf za crtanje matrice z=[y1,y2,y3,y4] plot(x,z) Matrica Z sadrži sve setove y vrijednosti peaks(100) instrukcija stvara 100x100 matricu čije se vrijednosti mogu prokazati pomoću plot funkcije koja daje 100 različitih grafova. 19
Prikazivanje Kompleksnih Vektora i Matrica Ako se kao ulazna vrijednost za plot komandu koristi matrica ili vektor čiji su elementi (svi ili neki od njih) kompleksne vrijednosti, MATLAB koristi realne vrijednosti kao x varijablu a imaginarne kao y varijablu. Dva vektora koji sadrže kompleksne brojeve Ako kao ulazne vrijednosti plot funkcije upotrijebite dva vektora sa kompleksnim brojevima, imaginarni dijelovi ovih brojeva će biti ignorirani (realne vrijednosti prvog vektora će biti upotrijebljene kao vrijednosti na x-osi a realne vrijednosti drugog vektora kao vrijednosti y-osi) plot(x,y,':ok') U ovom primjeru : označava točkastu liniju o označava krug kao simbol slovo k označava crnu boju linije za graf točkasta linija kružići crna boja Vrsta grafa se treba naznačiti nakon svakog para x i y varijabli, ako ih ima više u jednoj plot komandi 20
Granične vrijednosti na osima MATLAB automatski postavlja granice svake osi tako da sve vrijednosti jedne i druge varijable stanu na sliku Drugačije granične vrijednosti se mogu specificirati koristeći axis komandu axis([xmin,xmax,ymin,ymax]) Pokušajmo izmjeniti ove vrijednosti na slici koju smo upravo nacrtali Automatski dodjeljenje granične vrijednosti osi se mijenjaju koristeći axis funkciju Označavanje crteža Crtežima se u MATLABu takođe mogu dodati legenda tekst Crtežu osim toga treba svakako dodati i naslov oznake osi Bolje označavanje crteža Grčka slova se mogu koristiti pri označavanju crteža tako što se prije imena varijable stavi \. Na primjer: title( \alpha \beta \gamma ) će proizvesti naslov: x 2 α β γ Za eksponent se koriste vitičaste zagrade title( x^{2} ) daje x 2 Izmjena teksta Ove izmjene izgleda teksta su načinjene koristeći Tex Markup Language Iskoristite Help u MATLABu da bi ste saznali više o ovome!! 21
Subplot subplot(2,2,1) subplot komandom se prozor u kome se crta može podijeliti na više pod-prozora u kojima se mogu prikazati crteži subplot(m,n,p) 5 0-5 Peaks 2 stupca 1 2 2 reda 2 0-2 y -2 x 0 2 broj red broj stupca broj slike (položaj) 3 4 Druge vrste dvodimenzionalnih grafova 2 reda i 1 stupac Polarni grafovi Logaritamski plotovi Bar grafovi Kružni grafovi Histogrami X-Y grafovi sa dvije y ose Polarni grafovi Neke funkcije je lakše prikazati u polarnim nego u parvokutnim koordinatama Npr, jednadžba kružnice je y=sin(x) u polarnim koordinatama 22
Logaritamski Grafovi Logaritamska podjela (baza 10) se koristi ako je raspon varijabli vrlo velik ako se vrijednost varijable mijenja eksponencijalno. plot obje osi su imaju linearnu skalu semilogy y-os ima log 10 podjelu semilogx x-os ima log 10 scale podjelu loglog obje osi imaju log 10 podjelu x-y plot linearna podjela na obje osi semilogx log podjela na x osi semilogy log podjela na y osi loglog log podjela na obje osi Bar i Kružna Grafika MATLAB posjeduje širok izbor bar i kružnih vrsta grafova bar(x) uspravni bar graf barh(x) vodoravni bar graf bar3(x) 3-D uspravni bar graf bar3h(x) 3-D vodoravni bar graf pie(x) kružni dijagram pie3(x) 3-D kružni dijagram 23
24