Matlab Primjeri

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Programiranje

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

Spremimo upisane naredbe, vratimo se u radni prostor i izračunajmo 40! ukucavajući:

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.

Prema tome, u datoteku najmanji.m ukucajmo:

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=najmanji(A), n2=najmanji(B), n3=najmanji(C)

i pritisnemo Enter. Dobijamo:

n1 =
-1
n2 =
1
n3 =
1

You might also like