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).
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)
i 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
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
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:
X
X
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
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
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
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.
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
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
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
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
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)