razvoj algoritama u matlabu

Post on 22-Jan-2016

57 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

1

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.

3

Podaci u matlabu

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

Brojevi– 35– 3.141

Matrice Tekstualni podaci

– ‘moje ime’

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. 

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

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.

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

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

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

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

11

while petlja

X=500;while x>3

x=x/10;end» xx =

0.5000

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

13

if-else-end struktura

Jednostavna if strukture

if uvjet

naredba

end Primjer

if a==5

disp('pogodio si broj')

end

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

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

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

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

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

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

20

4 1 2 3

21

1 4 2 3

22

1 4 2 3

23

1 4 2 3

24

1 4 2 3

25

1 4 2 3

26

1 4 2 3

27

1 2 4 3

28

1 2 4 3

29

1 2 4 3

30

1 2 4 3

31

1 2 4 3

32

1 2 3 4

33

*

1 2 3 4

34

top related