Transcript end s

Primijenjena matematika
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
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...
Vrijednost
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 A  1 2  1 u matlab unosimo na
2 4 6 


slijedeći način:
A=[1 2 –1; 2 4 6] ,
ili
A=[1 2 –1
2 4 6]
<ENTER>
Operacije sa matricama
+
-
sabiranje
*
^
množenje
Matrice moraju biti ulančane
potenciranje
Matrica mora biti kvadratna
‘
/
transponiranje
\
“lijevo” dijeljenje
Matricu ne možemo dijeliti matricom!
Koristi se za riješavanje sustava
jednadžbi
.*,
./, .^
itd.
operacije “član po
član”
Matrice moraju biti istih dimenzija.
Jedna od varijabli može biti i broj
Matrice moraju biti istih dimenzija
oduzimanje
“desno” dijeljenje
Rješavanje sistema linearnih
jednačina


Sistem je zadan u matričnom zapisu AX=B,
gdje matrice A i B imaju isti broj redaka
Sistem rješavamo korištenjem “lijevog
djeljenja” matrica:
X=A\B
Primjer
x1  2 x2  3x3  6
 x1  3x2  4 x3  9
2 x1  4 x2  5 x3  7
 1 2 3
A   1 3 4
 2 4 5
Rješavanje sistema:
A=[1 2 3; -1 3 4; 2 4 5]
B=[6; 9; 7]
(ili B=[6 9 7]’)
X=A\B
6 
B  9 
7 
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
x
;
 Potrebno je nacrtati graf funkcije y  2
x 4
x  10 : 10
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
Prikaz funkcije, primjer 2

Potrebno je nacrtati graf funkcija
y2  cos(x); x  0 : 2 
x=linspace(0,2*pi,30); Interval 0 do 2*pi dijeli se na 30
y1  x ,
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
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
uslovne strukture
–
–
Petlje obuhvataju dijelove koda koji se ponavljaju
više puta
Uslovne strukture obuhvataju dijelove koda koji se
izvršava samo ako je neki uslov zadovoljen, ili
dijelove koda koji se mogu izvršiti na različite načine
u ovisnosti o nekom uslovu
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 uslov 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<100
n = n+1;
s = s+n;
end
n
Naredba if (if – else)

Naredba if izvršit će navedene naredbe ako je
uslov dat izrazom ispunjen
osnovni oblik
if izraz
naredbe
end
prošireni oblik
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>b
a
else
b
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 mfileove
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šću
function varijabla = ime_funkcije(ulazne
varijable)
Funkcija sa više povratnih vrijednosti
function [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
broja
function v = veci(a, b)
if a>b
v=a;
else
v=b;
end
Funkcijski m-file, primjer 1

Pozivanje funkcije
x1 = 2
x2 = -3
x3 = veci(x1, x2)
Funkcijski m-file, primjer 2

Napiši funkcijski m-file koji vraća zbroj i razliku
dva broja
function [z r] = zb_raz(a, b)
z = a+b;
r = a-b;
– Pozivanje:
x1 = 2;
x2 = 5;
[y1 y2] = zb_raz(x1, x2)