razvoj algoritama u matlabu

34
1 Razvoj algoritama u matlabu

Upload: hayden

Post on 22-Jan-2016

56 views

Category:

Documents


2 download

DESCRIPTION

Razvoj algoritama u matlabu. Programi. Program - Opis algoritma koji u nekom programskom jeziku jednoznačno određuje što računalo treba napraviti. PROGRAM = Algoritmi + podaci - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Razvoj algoritama u matlabu

1

Razvoj algoritama u matlabu

Page 2: Razvoj algoritama u matlabu

2

Programi

Program - Opis algoritma koji u nekom programskom jeziku jednoznačno određuje što računalo treba napraviti.

PROGRAM= Algoritmi + podaci Programiranje - naučiti sintaksu nekog

proceduralnog jezika i steći osnovna intuitivna znanja glede algoritmizacije problema opisanog riječima.

Page 3: Razvoj algoritama u matlabu

3

Podaci u matlabu

Kompleksni brojevi– kmpl1=2-3i – kmpl2= 2*exp3j

Brojevi– 35– 3.141

Matrice Tekstualni podaci

– ‘moje ime’

Page 4: Razvoj algoritama u matlabu

4

Matlab koristi aritmetiku sa pomičnim zarezom (engl. floating point, kratko FP)

Uz FP aritmetiku vezano je nekoliko internih varijabli:– realmin = 2.2251e-308 je najmanji broj u FP-sustavu

brojeva. – realmax = 1.7977e+308 je najveći broj u FP-sustavu

brojeva. – eps = 2.2204e-16 je relativna udaljenost između dva

susjedna FP-broja  – inf znači +beskonačno, a nastaje ako egzaktni rezultat

premašuje realmax. Slično vrijedi za -inf.  – NaN znači Not a Number, tj. neodređenu numeričku

vrijednost. Nastaje iz neodređenih izraza tipa 0/0, beskonačno - beskonačno i sl. 

Page 5: Razvoj algoritama u matlabu

5

Algoritam

Precizno opisan način rješenja nekog problema Jednoznačno određuje što treba napraviti Moraju biti definirani početni uvjeti Konačni broj koraka; svaki korak opisan

instrukcijom Mora biti

– Djelotvoran – daje točno rješenje problema

– Učinkovit – dolazi do rješenja na dovoljno jednostavan način

Page 6: Razvoj algoritama u matlabu

6

Petlje i uvjetne strukture

Uvjetne strukture jak je alat, budući da omogućava da prijašnje operacije algoritma utječu na buduće.

MATLAB pruža četiri oblika petlji, odnosno uvjetnih struktura: – for petlje, – while petlje, – if-else-end struktura i – switch-case struktura.

Page 7: Razvoj algoritama u matlabu

7

for petlje for petlje omogućavaju da se grupa naredbi ponavlja

unaprijed određeni broj puta. Opći oblik for petlje je for x = array naredbe... end

naredbe između for i end izvršavaju se jednom za svaki stupac u array.

Na primjer >> for n=1:10 x(n)=sin(n*pi/10); end

Page 8: Razvoj algoritama u matlabu

8

for petlje

Osim automatski generiranog polja 1:10 može se primjeniti bilo koje polje, npr. >> data=[3 9 45 6; 7 16 -1 5]; >> for n=data

y=n(1)-n(2) end

y = -4 y = -7 y = 46 y = 1

Page 9: Razvoj algoritama u matlabu

9

for petlje

Pored ovih mogučnosti, for petlja može biti ugnjezđena jedna u drugoj. t=1

for i=1:3

for j= 1:3

a(i,j)=t;

t=t+1;

end

end

1 2 3

4 5 6

7 8 9

Page 10: Razvoj algoritama u matlabu

10

while petlja Kod while petlje naredbe između while i end

izvršavaju se sve dok su svi elementi izraz-a istiniti:

>> while izraz naredbe... end

Razmotrimo sljedeći primjer >> num=0;EPS=1; >> while (1+EPS)>1 EPS=EPS/2; num=num+1; end

Page 11: Razvoj algoritama u matlabu

11

while petlja

X=500;while x>3

x=x/10;end» xx =

0.5000

Page 12: Razvoj algoritama u matlabu

12

if-else-end struktura if-else-end struktura nam omogućava da izvršavamo neke

operacije pod uvjetom da su zadovoljeni određeni uvjeti. Forma ove strukture u općem slučaju je

if izraz1 naredbe1 ... izvršene ako je izraz1 istinit elseif izraz2 naredbe2 ... izvršene ako je izraz2 istinit elseif izraz3 naredbe3 ... izvršene ako je izraz3 istinit else naredbe ... izvršene ako nijedan izraz nije

istinit end

Page 13: Razvoj algoritama u matlabu

13

if-else-end struktura

Jednostavna if strukture

if uvjet

naredba

end Primjer

if a==5

disp('pogodio si broj')

end

Page 14: Razvoj algoritama u matlabu

14

if-else-end struktura If struktura sa grananjem na 2 grane

if uvjetNaredbe 1

elseNaredbe 2

End Primjer:

if a==5disp('pogodio si broj')elsedisp('nisi pogodio broj')end

Page 15: Razvoj algoritama u matlabu

15

if-else-end struktura

Promotrimo primjer :>> EPS=1; >> for num=1:1000

EPS=EPS/2; if(1+EPS)<=1

EPS=EPS*2 break

end end

Page 16: Razvoj algoritama u matlabu

16

switch-case struktura Ova je struktura pogodna u slučaju kada je potrebno

više puta ispitivati istinitost izraza a na osnovu jednog argumenta.

Forma ove strukture je switch izraz case test_izraz1

naredbe1... case test_izraz2

naredbe2... otherwise

naredbe3 end

Page 17: Razvoj algoritama u matlabu

17

switch-case struktura% primjer za 'switch-end' strukturu x=2.7; % velicinu u cm units='m' % zelim pretvoriti u 'units' switch units

case {'inch','in'} y=x*2.54;

case {'feet','ft'} y=x*2.54*12;

case {'meter','m'} y=x/100;

case {'milimeter','mm'} y=x*10;

case {'centimeter','cm'} y=x;

otherwise disp(['Nepoznata jedinica:', units]) y=nan;

end

Page 18: Razvoj algoritama u matlabu

18

Eulerov algoritam:

Najveći zajednički djelitelj x i y while( y nije 0)

(ostatak = ono sto ostane pri cjelobrojnom dijelenju x i y x=yy=ostatak)Rezultat =x

Page 19: Razvoj algoritama u matlabu

19

sortiranje

4 1 2 3

For i=1:3for j=i+1:4

if a(i)>a(j)temp=a(i)a(i)=a(j)a(j)=temp

EndEnd

End

Page 20: Razvoj algoritama u matlabu

20

4 1 2 3

Page 21: Razvoj algoritama u matlabu

21

1 4 2 3

Page 22: Razvoj algoritama u matlabu

22

1 4 2 3

Page 23: Razvoj algoritama u matlabu

23

1 4 2 3

Page 24: Razvoj algoritama u matlabu

24

1 4 2 3

Page 25: Razvoj algoritama u matlabu

25

1 4 2 3

Page 26: Razvoj algoritama u matlabu

26

1 4 2 3

Page 27: Razvoj algoritama u matlabu

27

1 2 4 3

Page 28: Razvoj algoritama u matlabu

28

1 2 4 3

Page 29: Razvoj algoritama u matlabu

29

1 2 4 3

Page 30: Razvoj algoritama u matlabu

30

1 2 4 3

Page 31: Razvoj algoritama u matlabu

31

1 2 4 3

Page 32: Razvoj algoritama u matlabu

32

1 2 3 4

Page 33: Razvoj algoritama u matlabu

33

*

1 2 3 4

Page 34: Razvoj algoritama u matlabu

34