Jan 24, 2016
Matlab
Matlab je high-performance programski jezik namjenjen za tehničke proračune
Matlab objedinjava računanje, vizualizaciju i programiranje u lako uporabljivoj okolini u kojoj su problem i rješenje definirani poznatom matematičkom notacijom.
Primjena Matlaba
Matematika i računanje Razvoj algoritama Modeliranje, simulacija, analiza Analizu i obrada podataka, vizualizacija Znanstvena i inžinjerska grafika Razvoj aplikacija, uključujući i izgradnju GUI
Korištenje Matlaba
Naredbe za MATLAB unosimo u komandni prozor, osnovni prozor MATLABa
primjer:
>> 3*cos(2*pi/3)/sqrt(23)
– Pored naredbi MATLABa, u komandnom prozoru vrijede i naredbe operativnog sustava
primjer – promjena radnog direktorija:
>> cd <ime_direktorija>
Matlab operatori
+ zbrajanje < Manje
- oduzimanje <= manje ili jednako
* množenje > veće
/ “desno” dijeljenje >= veće ili jednako
\ “lijevo” dijeljenje == jednako
^ potenciranje ~= nije jednako (različito)
Specijalne varijable
Ime Značenje Vrijednost
ans Automatski poprima vrijednost izraza kad nije pridružen variabli
eps Ocjena greške zaokruživanja 2-52
Inf + beskonačno npr: 1/0
NaN Not a Number npr: 0/0
i Imaginarna jedinica sqrt(-1)
pi Broj pi 3.14159265...
Elementarne matematičke funkcije
sin(...) sinus acosh(...) area. cos. hiperbolnog
cos(...) kosinus atanh(...) area tan. hiperbolnog
tan(...) tangens sqrt(...) drugi korjen
asin(...) arkus sinus exp(...) eksp. funkcija (baze e)
acos(...) arkus kosinus log(...) ln (logaritam baze e)
atan(...) arkus tangens log10(...) log (logaritam baze 10)
sinh(...) hiperbolni sinus abs(...) apsolutna vrijednost
cosh(...) hiperbolni kosinus real(...) realni dio komp. broja
tanh(...) hiperbolni tangens imag(...) imaginarni dio komp. broja
asinh(...) area sin. hiperbolnog round(...) zaokruživanje
Matrice u Matlabu
Matricu u matlab unosimo na
slijedeći način:
A=[1 2 –1; 2 4 6] ,
ili
A=[1 2 –1 <ENTER>
2 4 6]
642
121A
Operacije sa matricama
+ zbrajanje Matrice moraju biti istih dimenzija
- oduzimanje
* množenje Matrice moraju biti ulančane
^ potenciranje Matrica mora biti kvadratna
‘ transponiranje
/ “desno” dijeljenje Matricu ne možemo dijeliti matricom! Koristi se za riješavanje sustava jednadžbi\ “lijevo” dijeljenje
.*, ./, .^ itd.
operacije “član po član”
Matrice moraju biti istih dimenzija. Jedna od varijabli može biti i broj
Rješavanje sustava linearnih jednadžbi
Sustav je zadan u matričnom zapisu AX=B, gdje matrice A i B imaju isti broj redaka
Sustav rješavamo korištenjem “lijevog djeljenja” matrica:
X=A\B
Primjer
7542
943
632
321
321
321
xxx
xxx
xxx
542
431
321
A
7
9
6
B
Rješavanje sustava:
A=[1 2 3; -1 3 4; 2 4 5]B=[6; 9; 7] (ili B=[6 9 7]’)X=A\B
Grafika u Matlabu
Neka je X=[1 3 –2 5] jednoredna matrica (vektor) upisana u Matlab– X možemo nacrtati korištenjem naredbe plot
plot(X) - crta linijski graf
plot(X,’*’) - vrijednosti od X prikazane sa *
Prikaz funkcije
Potrebno je nacrtati graf funkcije ;42
x
xy
x=-10:0.5:10; stvara vektor x sa elementima od –10 do 10, korak 0.5
y=x./(x.^2+4); računa vektor y na način da računa vrijednost funkcije za svaki element vektora x
plot(x,y) crta vrijednosti y u ovisnosti o vrijednostima x
10:10x
Prikaz funkcije, primjer 2
Potrebno je nacrtati graf funkcija,1 xy
x=linspace(0,2*pi,30); Interval 0 do 2*pi dijeli se na 30 dijelova, vrijednosti se spremaju u vektor x
y1=sqrt(x) računa y1 u svim elementima od x
y2=cos(x) računa y2 u svim elementima od x
plot(x,y1,x,y2) crta y1 u ovisnost o x, y2 u ovisnosti od x
2:0x);cos(2 xy
Programiranje u Matlabu
Pored korištenja u naredbenom modu, Matlab ima i mogućnost razvijanja programa u vlastitom programskom jeziku– Programe je moguće spremati u datoteke i
naknadno pozivati– Datoteke sa programskim kodom Matlaba nazivamo
m-fileovi
Naredbe kontrole toka
U naredbe kontorle toka spadaju petlje i uvjetne strukture– Petlje obuhvaćaju dijelove koda koji se ponavljaju
više puta– Uvjetne strukture obuhvaćaju dijelove koda koji se
izvršava samo ako je neki uvjet zadovoljen, ili dijelove koda koji se mogu izvršiti na različite načine u ovisnosti o nekom uvijetu
for petlja
Služi za ponavljanje određene naredbe ili niza naredbi unaprijed zadani broj puta
for varijabla = od:korak:do
naredbe
end
for petlja, primjer 1:
Računanje sume brojeva od 1 do 100
s=0;
for a = 1:100
s = s+a;
end
s
računa vrijednost, ali rezultat ne prikazuje na ekranu
for petlja, primjer 2:
Računanje umnoška brojeva od 1 do 100
s=1;
for a = 1:100
s = s*a;
end
s
while petlja
Ponavlja određenu naredbu ili niz naredbi dok je ispunjen uvijet iz izraza
while izraz
naredbe
end
– Za izlaz iz petlje može se koristiti naredba break
while petlja, primjer
Pronađi broj n sa kojim suma prvih n prirodnih brojeva prelazi 100 s=0;n=0;while s<100n = n+1;s = s+n;
endn
Naredba if (if – else)
Naredba if izvršit će navedene naredbe ako je uvijet dan izrazom ispunjen
osnovni oblik prošireni oblik
if izraz
naredbe
end
if izraz
naredbe1
else
naredbe2
end
Naredba if, primjer
Napiši program koji ispisuje veći od dva slučajna broja
a=rand;b=rand;if a>ba
elseb
end
m-fileovi
Dijelove programskog koda koje često izvršavamo možemo spremiti u datoteku, tzv. m-file– Nije potrebno ukucavati kod svaki puta kada ga
želimo izvršavati– Razlikujemo skripte (obične m-fileove) i funkcije
Stvaranje m-filea
Odabirom opcija izbornika (redom):
File – New – M-file
pojavljuje se prozor tekst editora u koji unosimo naredbe
Naredbe spremamo u datoteku s ekstenzijom m (ime_datoteke.m)
Spremanje m-filea
m-fileove spremamo u putanju (PATH) Matlaba.– PATH čine skup direktorija u kojima matlab traži m-
fileove– Ukoliko datoteku spremamo na neko drugo mjesto,
potrebno je Matlabu pokazati gdje da traži našu datoteku. Ovo radimo dodavanjem direktorija u koji je datoteka spremljena u PATH
Skripte (obični m-file)
Ako imamo neki duži niz naredbi, koji nam se u radu često ponavlja, možemo ga zapisati u obični m-file.– Pri svakom pozivu imena tog m-filea, izvršit će se
niz naredbi iz datoteke– Naredbe se izvršavaju redosljedom kojim su
zapisane u datotece– Efekt izvršavanja je isti kao da se u komandnom
prozoru unosi naredba po naredba
Funkcijski m-file
Funkcijskim m-fileom kreiramo novu funkciju– Ovako kreirana funkcija ravnopravna je funkcijama
ugrađenim u Matlab
Funkciju čine ulazni parametri, tijelo funkcije (niz naredbi) i povratna vrijednost funkcije (ili više njih)
Funkcijski m-file
Funkcija sa jednom povratnom vrijednošćufunction varijabla = ime_funkcije(ulazne
varijable)
Funkcija sa više povratnih vrijednostifunction [v1 v2 ...] = ime_funkcije(ulazne
varijable)
Funkcijski m-file spremamo u datoteku istog imena kao i funkcija
Funkcijski m-file, primjer 1
Napiši funkcijski m-file koji vraća veći od dva brojafunction v = veci(a, b)
if a>b
v=a;
else
v=b;
end
Funkcijski m-file, primjer 1
Pozivanje funkcijex1 = 2
x2 = -3
x3 = veci(x1, x2)
Funkcijski m-file, primjer 2
Napiši funkcijski m-file koji vraća zbroj i razliku dva brojafunction [z r] = zb_raz(a, b)z = a+b;r = a-b;
– Pozivanje:x1 = 2;x2 = 5;[y1 y2] = zb_raz(x1, x2)