background image

Algorytmy

1

2009-04-19

Dr inż. Tadeusz BURAK

1

Metody Numeryczne

Metody Numeryczne

ALGORYTMY

2009-04-19

Dr inż. Tadeusz BURAK

2

Algorytm definicje

Algorytm definicje

Algorytm  jest to sposób postępowania podczas 
rozwiązywania zadania

Algorytm – mechaniczna procedura 
rozwiązywania problemu obliczeniowego

Gdzie:

problem obliczeniowy to zadanie z para-

metrami,

niekoniecznie

matematyczne,

byle

precyzyjnie określone, tzn. jakie parametry są
dopuszczalne,

jakie

warunki

ma

spełniać

rozwiązanie,jakie mają być wyniki.

Parametry to dane wejściowe (INPUT).
Rozwiązanie –dane wyjściowe (OUTPUT).

background image

Algorytmy

2

2009-04-19

Dr inż. Tadeusz BURAK

3

Algorytm definicje II

Algorytm definicje II

ALGORYTM, dokładny przepis podający 
sposób rozwiązania określonego zadania w 
skończonej liczbie kroków; zbiór poleceń 
odnoszących się do pewnych obiektów, ze 
wskazaniem porządku, w jakim mają być 
realizowane.

ALGORYTM  zapisany przy pomocy 
języka programowania jest programem.

Wyróżniamy algorytmy numeryczne

(np. 

Euklidesa)

nienumeryczne operujące na 

obiektach nie liczbowych 

(np. dokumenty)

2009-04-19

Dr inż. Tadeusz BURAK

4

Algorytm definicje III

Algorytm definicje III

ALGORYTM sekwencyjny 
Kolejność czynności jest określona w 
sposób jednoznaczny

ALGORYTM  niesekwencyjny

Kolejność czynności nie w każdym 

przypadku jest jednoznaczna 

Np.– Algorytmy równoległe, współbieżne

ALGORYTMY skończone 

background image

Algorytmy

3

2009-04-19

Dr inż. Tadeusz BURAK

5

Algorytm formy zapisu:

Algorytm formy zapisu:

Zapis słowny

(np. zbiór przepisów kulinarnych)

Zapis matematyczny -

wzory

Graficzny -

schemat blokowy

Zapis w języku programowania

2009-04-19

Dr inż. Tadeusz BURAK

6

Schemat blokowy 

Schemat blokowy -- elmenty

elmenty

We

A,B,C

START

STOP

WEJŚCIE – WYJŚCIE

PRZETWARZANIE - PROCES

DECYZJA

PROCEDURA

(POWTARZALNY FRAGMENT 

ZDEFINIOWANY W INNYM MIEJSCU)

PRZENIESIENIE

START

STOP

WARUNEK

Tak

Nie

9

9

background image

Algorytmy

4

2009-04-19

Dr inż. Tadeusz BURAK

7

Schemat blokowy I (wzór)

Schemat blokowy I (wzór)

)

3

)

2

)

1

)

2

)

2

0

0

0

4

c

c

c

b

a

albo

albo

c

a

b

c

x

b

x

a

y

<

=

>

=

+

+

=

Znając parametry a,b,c znajdź miejsce zerowe funkcji:

a

b

x

a

b

x

=

+

=

2

2

2

1

a

b

x

=

2

brak rozwiązania 
w dziedzinie liczb 

rzeczywistych

2009-04-19

Dr inż. Tadeusz BURAK

8

Start

Start

STOP

STOP

WE:

WE:

A,B,C

A,B,C

D = B

D = B

2

2

--4*A*C

4*A*C

D < 0

D < 0

X = 

X = --B/(2*A)

B/(2*A)

WY:

WY:

D > 0

D > 0

X

X

1

1

= (

= (--B+sqrt(D))/(2*A)

B+sqrt(D))/(2*A)

X2= (

X2= (--B

B--sqrt(D))/(2*A)

sqrt(D))/(2*A)

WY:

WY:

BRAK 

BRAK 

ROZWIĄZANIA

ROZWIĄZANIA

WY:

WY:

X

X

1

1

, X

, X

2

2

STOP

STOP

STOP

STOP

Tak

Tak

Tak

Tak

Nie

Nie

Nie

Nie

Schemat 

Schemat 
blokowy II

blokowy II

background image

Algorytmy

5

dr inż. Tadeusz BURAK

9

Algorytm Euklidesa

Algorytm Euklidesa

Algorytm Euklidesa

Algorytm Euklidesa

Algorytm Euklidesa

Algorytm Euklidesa

Algorytm Euklidesa

Algorytm Euklidesa

Algorytm Euklidesa to algorytm znajdowania 

Algorytm Euklidesa to algorytm znajdowania 

Algorytm Euklidesa to algorytm znajdowania 

Algorytm Euklidesa to algorytm znajdowania 

największego wspólnego dzielnika (NWD) dwóch 

największego wspólnego dzielnika (NWD) dwóch 

największego wspólnego dzielnika (NWD) dwóch 

największego wspólnego dzielnika (NWD) dwóch 

liczb naturalnych. Nie wymaga on rozkładania 

liczb naturalnych. Nie wymaga on rozkładania 

liczb naturalnych. Nie wymaga on rozkładania 

liczb naturalnych. Nie wymaga on rozkładania 

tych liczb na czynniki pierwsze.

tych liczb na czynniki pierwsze.

tych liczb na czynniki pierwsze.

tych liczb na czynniki pierwsze.

Algorytm

Algorytm

Algorytm

Algorytm

dane są dwie liczby naturalne a i b

jeśli b jest równe zeru, to NWD jest równe a 

w przeciwnym wypadku oblicz c jako resztę z
dzielenia a przez b 

zastąp a przez b, zaś b przez c i zacznij od 
początku. 

dr inż. Tadeusz BURAK

10

Algorytm Euklidesa 

Algorytm Euklidesa 

Przykład

Przykład

NWD

NWD

NWD

NWD liczb 1029 i 42 wynosi 21 

obliczany jest następująco:

aaaa

bbbb

cccc

1029

1029

1029

1029

42

42

42

42

21

21

21

21

42

42

42

42

21

21

21

21

0000

21

21

21

21

0000

background image

Algorytmy

6

2009-04-19

Dr inż. Tadeusz BURAK

11

Pętla

I = I+1

I = I+1

Licznik

Schemat 

Schemat 
blokowy 

blokowy 

SUMATOR

SUMATOR

Dane:l

1

, l

2

,l

3

,...l

N

,9999  Oblicz średnią?

STOP

STOP

Start

Start

WE: X

WE: X

I = 0; S=0

I = 0; S=0

X = 9999

X = 9999

S = S+X

S = S+X

WY:

WY:

‘Średnia =‘ ;

‘Średnia =‘ ; S

S

S = S / I

S = S / I

Tak

Sumator

Nie

2009-04-19

Dr inż. Tadeusz BURAK

12

Pętla

Schemat 

Schemat 
blokowy 

blokowy 

SUMATOR II

SUMATOR II

Dane:N,l

1

, l

2

,l

3

,...l

N

Oblicz średnią?

Start

Start

WE: X

WE: X

I = 1; S=0

I = 1; S=0

I = N

I = N

Tak

Nie

WE: N

WE: N

I = I+1

I = I+1

STOP

STOP

S = S+X

S = S+X

WY:

WY:

‘Średnia =‘ ;

‘Średnia =‘ ; S

S

Licznik

Sumator

S = S / N

S = S / N

background image

Algorytmy

7

2009-04-19

Dr inż. Tadeusz BURAK

13

I=I+1

START

We  N, l

1

,l

2

,l

3

,..l

N

Umieść w Tab A(I)

X= A(1)

I=1

X< A(I)

X= A(I)

I>N

WY  X

STOP

Dane: N, l

1

, l

2

, l

3

,..l

N

Znajdź największą liczbę

A(1)=L

1

A(2)=L

2

...

A(N)=L

N

2009-04-19

Dr inż. Tadeusz BURAK

14

2.

Procedura zamiany

Dane w tablicy (zmiennej indeksowej):

T(1),T(2),..T(K),..T(L),..T(M)

Zamień wartości T(K) z T(L)

Z = T(K)

PROC.ZAMIEŃ

T(K) =T(L)

T(L) = Z

KONIEC PROC.

background image

Algorytmy

8

dr inż. Tadeusz BURAK

15

Sortowanie

Sortowanie

metodą przez porównanie sąsiednich elementów

metodą przez porównanie sąsiednich elementów

32

24

45

-13

26

24

32

45

-13

26

24

32

45

-13

26

24

32

-13

45

26

24

32

-13

26

45

dr inż. Tadeusz BURAK

16

Sortowanie 2

Sortowanie 2

24

32

-13

26

45

24

32

-13

26

45

24

-13

32

26

45

24

-13

26

32

45

background image

Algorytmy

9

dr inż. Tadeusz BURAK

17

Sortowanie 3

Sortowanie 3

24

-13

26

32

45

-13

24

26

32

45

-13

24

26

32

45

dr inż. Tadeusz BURAK

18

Sortowanie 4

Sortowanie 4

-13

24

26

32

45

-13

24

26

32

45

32

24

45

-13

26

Wynik

Dane wejściowe

background image

Algorytmy

10

dr inż. Tadeusz BURAK

19

Sortowanie schemat blokowy

Sortowanie schemat blokowy

START

We: N,L

1

,L

2

...L

N

Do tablicy: (1),A(2),…,A(N)

J=2

ZAMIEŃ
A(J-1) z A(J)

J > N - I

I = N -1

A(J-1) > A(J)

J =J + 1

I =I + 1

Tak

Nie

Nie

I=1

dr inż. Tadeusz BURAK

20

Miejsce zerowe funkcji

Miejsce zerowe funkcji

metoda bisekcji 

metoda bisekcji –

– podziału połówkowego

podziału połówkowego

-15

-10

-5

0

5

10

15

20

-4

-2

0

2

4

6

8

10

Dana jest następująca funkcja:

Zadaniem jest znalezienie miejsca zerowego 

background image

Algorytmy

11

dr inż. Tadeusz BURAK

21

Miejsce zerowe funkcji

Miejsce zerowe funkcji

((

metoda bisekcji)

metoda bisekcji)

ALGORYTM 1

ALGORYTM 1

Założenia:

•Funkcja jest monotoniczna w założonym przedziale.

•Wartości funkcji na końcach przedziału są różnego znaku.

( F(Xp) * F(Xk) ) < 0

Algorytm: 

•znajdujemy wartość funkcji dla połowy długości przedziału

•Jeżeli wartość funkcji na początku i w środku przedziału jest  
tego samego znaku to wybieramy jako nowy początek 
przedziału punkt środkowy – jeśli znaki się różnią to punkt 
ś

rodkowy staje się nowym końcem przedziału. 

dr inż. Tadeusz BURAK

22

Miejsce zerowe funkcji

Miejsce zerowe funkcji

((

metoda bisekcji)

metoda bisekcji)

ALGORYTM 2

ALGORYTM 2

Dla danej funkcji:

Przedział początkowy przyjmuje:   Xp=1 , Xk=2

I odpowiednio    Yp= -1,02  ;  Yk=0,498

Wyliczone Xs = 1,5  i odpowiednio  Ys = -0,213

-1,5

-1

-0,5

0

0,5

1

0,5

1

1,5

2

2,5

background image

Algorytmy

12

dr inż. Tadeusz BURAK

23

Xp= 1,500

Xs= 1,625

Xk= 1,750

0,250

F(Xp)= -0,21

F(Xs)= -0,026 F(Xk)= 0,155

Miejsce zerowe funkcji

Miejsce zerowe funkcji

((

metoda 

metoda bisekcji

bisekcji))

ALGORYTM 3

ALGORYTM 3

Xp= 1,000

Xs= 1,500

Xk= 2,000

1,000

F(Xp)= -1,02 F(Xs)= -0,213 F(Xk)= 0,498

Xp= 1,500

Xs= 1,750

Xk= 2,000

0,500

F(Xp)= -0,21 F(Xs)= 0,155

F(Xk)= 0,498

Xp= 1,630

Xs= 1,688

Xk= 1,750

0,125

F(Xp)

=

-0,026 F(Xs)

=

0,065

F(Xk)= 0,155

dr inż. Tadeusz BURAK

24

Algorytm obliczania całki oznaczonej 

Algorytm obliczania całki oznaczonej 
metodą prostokątów

metodą prostokątów

a     a+h  a+2h ....

b

A+h/

2

a    a+h/2  a+h

F(h/2)