Matlab Uvod v2 PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

NUMERIKA MATEMATIKA

Uvod u programski paket MATLAB


MATLAB

MATrix LABoratory,

razvijen 1983. godine,

programski paket inicijalno namijenjen rjeavanju


problema iz domena matrica,

zamjena za postojee pakete za rjeavanje zadataka iz


linearne algebre (LINPACK i EISPACK) napisanih u
programskom jeziku Fortran,

danas je proizvod kompanije MathWorks,

proiriva platforma, sa velikim brojem dodatnih biblioteka


(toolbox-ova)
Dijelovi sistema

razvojno okruenje - korisniki interfejs, komandni prozor


i ostali alati koji se koriste za izvravanje programa,

biblioteka matematikih funkcija - ogroman broj ve


razvijenih matematikih algoritama,

MATLAB programski jezik - jezik za razvoj novih


programa sa sintaksom koja je specifino definisana za
matlab,

grafike biblioteke - alati i funkcije za 2D i 3D


vizuelizaciju podataka,

MATLAB API - skup biblioteka koje omoguavaju razvoj


programa u drugim programskim jezicima koji
komuniciraju sa MATLAB-om (C, Fortran)
Okruenje

Pregled varijabli

Komandni prozor
Fajl sistem Istorija komandi
Okruenje

pri prvom pokretanju je potrebno podesiti environment


varijable,

putanja pokazuje na lokaciju datoteka koje sadre


funkcije,

standardna vrijednost varijable ukljuuje instalacioni


direktorijum MATLAB-a,

za koritenje korisnikih funkcija, potrebno je proiriti


putanju korisnikim direktorijumima
Programski jezik

MATLAB koristi interpreter za obradu komandi,

komande se prevode u trenutku kada dou na


izvravanje,

mogua pojava sintaksnih greaka u dijelovima koda koji


nisu testirani,

kod je mogue izvravati direktno u komandnom prozoru,


ili koritenjem sauvanih *.m datoteka,

MATLAB omoguava direktno pozivanje sadraja .m


datoteka koje se nalaze u putanji samo preko njihovog
naziva
Varijable

programski jezik koji MATLAB koristi je slabo tipiziran


programski jezik,

podrazumijeva se da se sve promjenljiive uvaju u


dvostrukoj preciznosti,

sve promjenljive se posmatraju kao matrice, ak i u


sluaju da se radi o skalarnim vrijednostima (u tom sluaju
se mogu posmatrati kao matrice dimenzija 1x1)

najjednostavnija deklaracija:
potiskivanje
ispisa
x = 1 ;
naziv varijable

vrijednost varijable
operator dodjele
Ugraene konstante

pi,
i, j - imaginarna jedinica,
realmax - najvea realna vrijednost,
realmin - najmanja realna vrijednost,
Inf - beskonano,
NaN - vrijednost koja nije validan FP podatak (Not a
Number)
Formatiranje ispisa
za formatiranje ispisa koristi se komanda format,
ova komanda utie samo na ispis, podaci se u memoriji i
dalje uvaju u istom formatu,
format short - ispis u formatu sa fiksnim zarezom
sa 5 cifara,
format long - ispis u formatu sa fiksnim zarezom sa
15 cifara,
format shorte - ispis u formatu sa pokretnim
zarezom sa 5 cifara,
format longe - ispis u formatu sa pokretnim
zarezom sa 15 cifara,
format hex - heksadecimalni format
Matrice

ako su dimenzije vee od 1x1, onda se matrica deklarie


na jedan od sljedeih naina:
direktnom deklaracijom elemenata (dodjelom),
uitavanjem iz eksterne datoteke,
koritenjem ugraenih funkcija,

sve vrste matrice u MATLAB-u moraju imati jednak broj


kolona (nisu dozvoljeni nazubljeni nizovi),
Matrice
direktna deklaracija elemenata
elementi koji se nalaze u istoj vrsti se navode odvojeni
razmacima ili zarezima,
vrste se meusobno odvajaju znakom ;
matrica = [1 2 3;4 5 6]

matrica =
1 2 3
4 5 6
Matrice
uitavanje sadraja iz eksterne datoteke
funkcije za uitavanje matrica iz eksternih datoteka
podrazumijevaju da su podaci u datoteci formatirani na
odgovarajui nain,

matrica = dlmread(putanja, delimiter)

putanja - lokacija datoteke,


delimiter - karakter koji razdvaja elemente u jednoj
vrsti (redu)
Matrice
koritenje ugraenih funkcija za deklarisanje varijabli
zeros(redovi, kolone) - matrica popunjena
nulama,
ones(redovi,kolone) - matrica popunjena
jedinicama,
eye(redovi,kolone) - jedinina matrica (u sluaju da
broj kolona nije jednak broju redova, dobija se matrica
koja na poziciji (i,j) ima vrijednost 1 ako je i=j),
magic(redovi) - magini kvadrat (sume kolona su
jednake sumama redova),
rand(redovi, kolone) i randn(redovi,kolone) -
matrice sluajnih vrijednosti sa uniformnom i normalnom
raspodjelom
Matrice
pristup elementima matrica
direktan pristup jednom elementu matrice se ostvaruje
operatorom (),
indeks prve kolone/reda je 1,
funkcija size() vraa vektor koji sadri dimenzije
(broj kolona i redova) matrice,

velicina=size(matrica)
x=matrica(2,3) % element u treem redu
% druge kolone
Matrice
deklarisanje i pristup elementima matrica - operator :
omoguava pristup veem broju elemenata ili
deklaraciju matrice iji se elementi nalaze u sekvenci,
izraz [a:b] je identian izrazu [a a+1 a+2 ... b],
mogue je navesti i korak [a:korak:b],
operator se koristi i za deklaraciju i za pristup
elementima matrica
matrica=[1:3;4:6]
matrica =
1 2 3
4 5 6
Matrice
deklarisanje i pristup elementima matrica - operator :
i=1
j=4
k=7
matrica=[i:j;i+3:k;j:k;i:j]
matrica =
1 2 3 4
4 5 6 7
4 5 6 7
1 2 3 4
Matrice
deklarisanje i pristup elementima matrica - operator :
matrica(1,1:3) - matrica koja sadri prvu vrstu
prve tri kolone originalne matrice,
matrica(1:3,1) - matrica koja sadri prve tri vrste
prve kolone originalne matrice,
matrica(1,:) - matrica koja sadri sve kolone prve
vrste originalne matrice,
matrica(2:2:4,1:2:3) - matrica koja sadri drugu
i etvrtu vrstu i prvu i treu kolonu originalne matrice
Matrice
proirivanje matrica
dozvoljeno je proirivanje matrica, uz potovanje
dimenzija
prosirenje=[1;2;3;4];
matrica2 = [matrica prosirenje]
matrica2 =
1 2 3 4 1
4 5 6 7 2
4 5 6 7 3
1 2 3 4 4
Matrice
neke ugraene funkcije za rad sa matricama
inv(A) - inverzna matrica matrice A,
max(A), min(A) - ako je A vektor, rezultat je njegova
najvea vrijednost. Ako je A matrica, rezultat je vektor
koji u svakoj koloni sadri najvei element iz
odgovarajue kolone matrice A,
diag(A) - ako je A matrica, rezultat je vektor
sastavljen od elemenata sa njene glavne dijagonale.
Ako je A vektor, rezultat je dijagonalna matrica kod koje
elementi na dijagonali odgovaraju elementima vektora,
det(A) - determinanta matrice A,
A' - transponovana matrica A
Aritmetiki operatori
obzirom da se varijable posmatraju kao matrice, osnovni
aritmetiki operatori dolaze u dva oblika:
operatori za rad sa matricama,
operatori za rad sa pojedinanim elementima matrica
kod raunskih operacija sa skalarnim vrijednostima, nije
bitno koji operator je u pitanju,

konverzije tipova se vre implicitno (ako je mogue), ali se


moraju potovati dimenzije matrica za odgovarajue
operatore
Aritmetiki matrini operatori
+ sabiranje matrica,
- oduzimanje matrica
* mnoenje matrica,
/ dijeljenje matrica,
\ lijevo dijeljenje matrica (A\b je jednako inv(A)*b, ali
se rauna na drugaiji nain i znatno je bre),
^ stepenovanje matrica,
Aritmetiki operatori element po element
operatori element po element se dobiju dodavanjem
take ispred odgovarajueg matrinog operatora. Rezultat
je izvravanje operacije nad svakim elementom matrica
posebno,
primjer:
matrica=[1 2 3;4 5 6;7 8 9];
faktor=[2 2 2;2 2 2;2 2 2];
matrica*faktor matrica.*faktor

ans = ans =
12 12 12 2 4 6
30 30 30 8 10 12
48 48 48 14 16 18
Operatori i funkcije poreenja
operator == u MATLAB-u vri poreenje skalarnih
vrijednosti
ako su argumenti matrice, operator == vraa novu matricu
koja ima vrijednost 1 na onim pozicijama na kojim su
vrijednosti u matricama jednake,
ako su matrice razliitih dimenzija, operator == vraa
greku,
za univerzalno poreenje vrijednosti, moe se iskoristiti
funkcija isequal,
za testiranje razliitosti skalarnih vrijednosti koristi se
operator ~=
Programske konstrukcije - uslovni iskazi
if... elseif ... else ... end

if a==0
% u sluaju da je a jednako 0
elseif a ~= 5
% u sluaju da je a razliito od 5
else
% u ostalim sluajevima
end
Programske konstrukcije - uslovni iskazi
switch ... case
switch a
case 0
% u sluaju da je a jednako 0
case 1
% u sluaju da je a jednako 1
otherwise
% u ostalim sluajevima
end
% nema propadanja, pa nije potrebno
koristiti break
Programske konstrukcije - petlje
for (sa podrazumijevanim korakom)
for i=1:100
% tijelo petlj
end

for (sa definisanim korakom)


for i=1:0.2:5
% tijelo petlje
end
Programske konstrukcije - petlje
while

while i>0
% tijelo petlj
end

kljune rijei continue i break se mogu koristiti za


kontrolu toka u svim petljama
Programske konstrukcije - greke
try ... catch

try
% izrazi
catch tipgreske
% izrazi
end
ne postoje razliiti tipovi izuzetaka,
ako se iskoristi promjenljiva tipgreske, u njoj e biti zapisane
detaljnije informacije
ako se desi greka unutar catch bloka, prekida se izvravanje
programa, osim ako unutar tog bloka ne postoji novi try... catch
Funkcije
funkcije se definiu u datoteci sa ekstenzijom .m koji se zove
isto kao i funkcija,
u istoj datoteci se mogu nai i neke druge (lokalne) funkcije, ali
se mogu pozivati samo iz te datoteke,
ako postoji vie funkcija, onda funkcije na kraju moraju imati
kljunu rije end, u protivnom nije obavezna,
MATLAB funkcije mogu vratiti proizvoljan broj argumenata (tj.
u optem sluaju vraaju matricu vrijednosti),
dokumentacija za funkciju se dobija komandom help naziv
kljuna rije return se ne koristi za vraanje vrijednosti, nego
za prekid funkcije,
opti oblik:
function [r1,r2,...]=funkcija(arg1,arg2,...)
Rad sa grafovima
MATLAB prikazuje grafove u posebnom (Figure) prozoru,

Legenda

Y-osa i labela

Osnovni dio sa
prikazom

X-osa i labela
Rad sa grafovima - fplot
fplot funkcija omoguava iscrtavanje funkcije koja je
proslijeena kao string ili kao function handle na
odabranom intervalu,
osnovni oblici:
fplot(funkcija,vektor_sa_granicama)
fplot(funkcija,vektor_sa_granicama,podesavanja_linija)

primjeri:
fplot('x^2',[-5 5])
fplot('x^3',[-10 10],'r')
fplot('exp(x)',[-10 10],'*');
Rad sa grafovima - podeavanja linija

argumenti za podeavanje linija omoguavaju


prilagoavanje naina iscrtavanja linija, kako bi se mogle
razlikovati na grafu,

razliite grupe podeavanja je mogue kombinovati

najvanije grupe:
karakteri koji odreuju boje linija: (r (crvena), b (plava),
g (zelena), y (uta), k (crna), itd.),
karakteri koji odreuju markere (karakteristine take):
x, +, *, <, >, v, ^, s,
Rad sa grafovima - plot

funkcija koja omoguava iscrtavanje grafa za vrijednosti,


umjesto za datu funkciju,

osnovni oblik je slian funkciji fplot, uz razliit tip


argumenata,

primjer:
x=0:0.2:10;
y=besselj(0,x);
plot(x,y);
plot(x,y,'r');
Prikaz vie grafova na istoj slici

Figure prozor nije direktno vezan za jedan graf (mogue


ga je prikazati i bez grafa, komandom figure),

postoje 2 najee koritena naina za prikazivanje vie


grafova u jednom prozoru:
koritenjem dodatnih argumenata komande plot,
koritenjem komande hold
Prikaz vie grafova na istoj slici

ako se za prikaz vie grafova koristi komanda plot, onda


se dodatne funkcije za iscrtavanje navode kao argumenti
funkcije plot u istoj liniji,

primjer:
x=0:0.2:10;
y1=besselj(0,x);
y2=besselj(1,x);
y3=besselj(2,x);
plot(x,y1,x,y2,x,y3);
Prikaz vie grafova na istoj slici

ako se ne navode dodatne opcije, onda e MATLAB sam


odabrati boje tako da grafovi budu razliiti,

u protivnom, jedan dodatni argument (string) se moe


navesti kako bi se precizirao tip i boja linije

primjer:
x=0:0.2:10;
y1=besselj(0,x);
y2=besselj(1,x);
y3=besselj(2,x);
plot(x,y1,'r*',x,y2,'kv',x,y3,'g.');
Prikaz vie grafova na istoj slici

novi poziv funkcije plot, brie ono to se prethodno


nalazilo na aktivnom Figure prozoru,

ukljuivanjem funkcije hold, omoguava se zadravanje


trenutnog sadraja Figure prozora, te dodavanje novih
elemenata sljedeim pozivima plot ili neke sline
funkcije,

za prethodni primjer:
plot(x,y1,'r*'); % otvaranje novog prozora
hold on % zadrzavanje ukljuceno
plot(x,y2,'kv');
plot(x,y3,'g.');
Podeavanje elemenata grafa

podeavanja se odnose na aktivni graf:


xlabel('opis') - naziv X-ose,
ylabel('opis') - naziv Y-ose,
legend('opis1','opis2',...) - prikaz legende
sa opisima funkcija navedenim onim redom kojim su
iscrtavane,
axis([xmin xmax ymin ymax]) - skaliranje osa
axis auto - vraanje osa na normalno skaliranje (tj.
bez skaliranja osa),
title('naslov') - postavljanje naslov

You might also like