Professional Documents
Culture Documents
Matlab Primjeri
Matlab Primjeri
Matlab Primjeri
Izvor:
http://www.znanje.org/knjige/computer/matlab/zadaci/zadaci_matlab_frames.htm
5.1.. Napišimo funkciju zp čija je jedina ulazna varijabla prirodan broj n, a jedina izlazna varijabla zbir prvih n parnih
prirodnih brojeva.
Označimo taj zbir ponovno sa z. Prvi parni prirodan broj je 2, a kako ih mora biti ukupno n, posljednji od njih je 2n.
Ideja rješavanja zadatka je slična kao u prethodnim primjerima, samo što se naredba for mora malo preraditi. U
funkcijsku m-datoteku zp.m ukucavamo:
function z=zp(n)
z=0;
for m=2:2:(2*n)
z=z+m;
end
Spremimo upisane naredbe i vratimo se u radni prostor. Želimo li izračunati zbir prvih 10 parnih prirodnih brojeva, u
novom retku radnog prostora upišimo:
z=zp(10)
i dobićemo:
z=
110
Koristeći se formulom za računanje zbira prvih n članova aritmetičkog niza, provjerite ''ručno'' da je zbir prvih 10
parnih prirodnih brojeva zaista jednak 110.
5.1.. Napišimo funkciju faktorijel čija je jedina ulazna varijabla prirodan broj n, a jedina izlazna varijabla umnožak
prvih n prirodnih brojeva (taj se umnožak označava s n! i naziva n faktorijel).
Označimo tu izlaznu varijablu s u. Ideja za rješenje zadatka je slična kao u Primjeru 1., samo što na početku
varijabli u dodjeljujemo vrijednost 1, a u petlji umjesto z=z+m stavljamo z=z*m. Stoga u funkcijsku m-
datoteku faktorijel.m ukucavamo redom:
function u=faktorijel(n)
u=1;
for m=1:n
u=u*m;
end
u=faktorijel(40)
i MATLAB ce ispisati:
u=
8.159152832478977e+047
5.1.. Kreirajmo funkcijsku m–datoteku najmanji.m koja sadrži jedino funkciju najmanji čija je jedina ulazna vrijednost
realna matrica x, a jedina izlazna vrijednost najmanji element matrice x.
Ovo je klasičan programerski zadatak koji se susreće u svim kursevima iz osnova programiranja. Osnovna ideja za
rješavanje je sljedeća: Izlazna varijabla (nazovimo je y) inicijalizira se na element x11 zadane matrice. Potom se ta
vrijednost počinje redom uspoređivati sa sljedećim elementima matrice. Ukoliko se naiđe na element manji od
vrijednosti spremljene u varijabli y, taj se element spremi u tu varijablu (time se briše posljednja spremljena
vrijednost varijable y). Zbog tranzitivnosti relacije ''manji ili jednak'' ((a < b Ù b < c) => (a < c)) novospremljeni
element ne moramo uspoređivati sa svim elementima koje smo ''obradili'' prije njega nego uspoređivanje
nastavljamo dalje sve dok ne dođemo do posljednjeg elementa zadane matrice.
function y=najmanji(x)
y=x(1,1);
for m=1:size(x,1)
for n=1:size(x,2)
if x(m,n)<=y
y=x(m,n);
end
end
end
Spremimo upisane naredbe i vratimo se u radni prostor. Provjerimo ''ispravnost'' rada naše funkcije na primjerima
matrica
Označimo sa n1, n2 i n3 najmanje elemente tih matrica. Očito je n1 = –1, n2 = n3 = 1. Pogledajmo šta će nam
ispisati MATLAB kada u novom retku radnog prostora ukucamo:
n1 =
-1
n2 =
1
n3 =
1