wybrane algorytmy wykorzystujące pojęcia z matematyki wyższej
DESCRIPTION
Koło Naukowe Matematyków Uniwersytet Rzeszowski. Wybrane algorytmy wykorzystujące pojęcia z matematyki wyższej. Krzysztof Gąsior. „Matematyka często przeplata się z informatyka i wiele problemów rozwiązywanych za pomocą komputerów to problemy matematyczne” (2). Wprowadzenie. - PowerPoint PPT PresentationTRANSCRIPT
Wybrane algorytmy wykorzystujące Wybrane algorytmy wykorzystujące
pojęcia zpojęcia z
matematyki wyższej matematyki wyższej
Krzysztof Gąsior
Koło Naukowe MatematykówUniwersytet Rzeszowski
„Matematyka często przeplata się z informatyka
i
wiele problemów rozwiązywanych
za pomocą
komputerów to problemy matematyczne”(2)
WprowadzenieWprowadzenie
Czy zastanawialiście się kiedyś:
jak działają programy wykorzystujące pojęcia matematyczne?
dlaczego różne implementacje tej samej metody teoretycznej
dają niekiedy różne wyniki lub z różną dokładnością?
jak dokładnie program został zaimplementowany?
algorytm
Euklidesa
sito Erastotelesa
algorytm Fermata
PrzypomnieniePrzypomnienie
AlgorytmAlgorytm jest przepisem na rozwiązanie postawionego zadania,
będącym określonym układem elementarnych instrukcji wraz z
porządkiem ich wykonania.
Sposoby zapisu algorytmu:
opisu słownego
listy kroków
schematu blokowego lub innego grafu
programu komputerowego
Przypomnienie c.d.Przypomnienie c.d.
Cechy każdego algorytmu:
SkończonośćSkończoność co oznacza, że realizowany ciąg operacjipowinien mieć swój koniec
OkreślonośćOkreśloność co oznacza, że zarówno operacje, jak i porządek ich wykonywania powinny być ściśle określone, nie zostawiając miejsca na dowolną interpretację użytkownika
OgólnośćOgólność algorytm nie ogranicza się do szczegółowego przypadku, ale odnosi się do pewnej klasy zadań
EfektywnośćEfektywność algorytm prowadzi do rozwiązania możliwienajprostszą drogą
Do czego służą algorytmy w matematyce?Do czego służą algorytmy w matematyce?
W matematyce algorytmmatematyce algorytm jest pojęciem służącym do
formułowania rozwiązań i badania rozstrzygalności problemów
Obliczenie wartości logarytmu naturalnegoObliczenie wartości logarytmu naturalnego
ZadanieZadanie
Oblicz wartość ln 4;
Rozwiązanie:Rozwiązanie:
Wartość ln 4 możemy wyznaczyć przy pomocy:
kalkulatora;
gotowych programów np.: Excela, Matematica, Matlab;
skonstruować własny programu;
Jak można napisać własny program?Jak można napisać własny program?
a
x
dxaa
1
1lnlnln
Z analizy matematycznej wiadomo, że:
Powyższą całkę możemy policzyć za pomocą algorytmów
numerycznych:
metoda prostokątów
metoda trapezów
metoda parabol (Simpsona)
metoda Romberga
metoda Monte Carlo
Metoda Monte CarloMetoda Monte Carlo
Metoda Monte - CarloMetoda Monte - Carlo jest prostą metodą, którą stosuje się w
metodach numerycznych.
Metoda ta służy do modelowania procesów złożonych, które nie
mogą być modelowane za pomocą bardziej wyrafinowanych
metod (tzn. o większej złożoności obliczeniowej).
Przykład zastosowania Monte Carlo – obliczanie całkiPrzykład zastosowania Monte Carlo – obliczanie całki
n
xf
xxdxxf
n
i
losowex
x
pk
k
p
1
)(
)(
px - początek przedziału całkowania
kx - koniec przedziału całkowania
)(xf - funkcja podcałkowa
losowex - punkty losowo wybierane z przedziału
n - ilość losowanych punktów
],[ kp xx
0
2
4
6
8
10
12
0,1 0,4 0,7 1 1,3 1,6 1,9 2,2 2,5 2,8 3,1 3,4 3,7 4
Metoda Monte CarloMetoda Monte Carlo
a
n
i losowe
n
xa
x
dxa
1
1
1
)1(ln
Schemat BlokowySchemat Blokowy
Start
Czytaj (a, n);
s = 0;i = 1;
i++;
Pisz (s);
Stop
NIE
losowexss
1
ni
);1(()1 arandomxlosowe
;1 ans
s
Obliczanie wyznacznika macierzyObliczanie wyznacznika macierzy
ZadanieZadanie
Oblicz wyznacznik macierzy:
1846133413
7856432413
2054067
1034654
5623321
A
=WYZNACZNIK.MACIERZY(B2:F6)
Jak można stworzyć własny program?Jak można stworzyć własny program?
Twierdzenie (o rozwinięciu Laplace’a). Twierdzenie (o rozwinięciu Laplace’a).
Niech będzie dana macierz gdzie n > 1.
Wówczas
jest rozwinięciem Laplace’a względem j - tej kolumny.
n
iijij
ij MaA1
)1(det
),(][ KMA nij
Wzór rekurencyjnyWzór rekurencyjny
1
1det
1
11
nAa
naA n
iinin
n – stopień macierzy
inni
in MA 1
DefinicjaDefinicja
Podwyznacznikiem (minor) macierzy A nazywamy wyznacznik
macierzy powstałej przez skreśleniu i − tego wiersza i j − tej
kolumny tej macierzy i jest oznaczany przez
Wzór rekurencyjnyWzór rekurencyjny
.ijM
Tworzenie programuTworzenie programu
Aby uniknąć zbędnego kopiowania elementów
w programie wyliczającym wyznacznik
macierzy, będziemy przekazywali tylko obraz
minora w postaci wektora wiersza, a jego
wymiar będzie oznaczał rozważaną kolumnę.
Tworzenie programu cd.Tworzenie programu cd.
333231
232221
131211
aaa
aaa
aaa
3231
2221
aa
aa
3
2- wektor wiersza
numer kolumny = 2
Problem maksymalizacji zysku produkcjiProblem maksymalizacji zysku produkcji
Zakład produkuje dwa wyroby, zużywając do tego celu
pewną ilość środków produkcji, z których cztery: energia
elektryczna, stal, drewno oraz praca są limitowane. W
produkcji są zużywane w ilościach:
Wyrób Energia Stal Drewno Praca
I 5 5 6 10
II 25 10 0 10
Problem maksymalizacji zysku produkcjiProblem maksymalizacji zysku produkcji
Zasoby tych środków wynoszą:
energia – 1200 jednostek,
stal – 600 jednostek,
drewno – 420 jednostek,
praca – 900 jednostek.
Ile poszczególnych wyrobów powinien produkować zakład,
aby zysk jego był maksymalny, jeżeli jednostkowy wynosi: z
produkcji wyrobu I – 10 zł, wyrobu II – 20 zł. Zakładamy przy
tym, że siła robocza musi być wykorzystana w takiej ilości jaką
dysponuje.
Schemat rozwiązaniaSchemat rozwiązania
1. Określenie danych wejściowych i celu, czyli wyniku
2. Stworzenie modelu matematycznego
3. Znaleźnie metody rozwiązania, czyli algorytmu
4. Stworzenie własnego programu lub skorzystanie z już
istniejącego
5. Analiza poprawności rozwiązania
Programowanie linioweProgramowanie liniowe
Programowanie linoweProgramowanie linowe jest działem matematyki
poświęconym teorii i praktycznym algorytmom wyznaczania
ekstremum funkcji wielu zmiennych przy ograniczeniach na
obszar ich zmienności.
Zagadnie programowania linowego formułuje się w następujący
sposób:
Programowanie linioweProgramowanie liniowe
n
ijj XCCz
10 min (max)
n
j
x
x
X ...1
mnm
n
aa
aa
A
...
.........
...
1
111
nb
b
b ...1
funkcja celu (funkcja ekonomiczna)
warunki ograniczając
e
0
j
j
X
bAX
Programowanie linioweProgramowanie liniowe
Wspomniany wcześniej problem jest klasycznym przykładem
zagadnienia programowania linowego.
2121 2010),( xxxxf
Funkcja celu
0,0
9001010
42006
600105
1200255
21
21
21
21
21
xx
xx
xx
xx
xx
21, xx - zmienne decyzyjne
bilans pracybilans drewna
warunki nieujemności
bilans stali
bilans energiiWarunki
ograniczające
0
30
60
90
120
150
180
210
240
0 5 10 15 20 25 30 35 40 45
x2
x1
5x1 + 25x1 <= 1200 6 x1 <= 420
5 x1 + 10 x2 <= 600 10x1 + 10x2 = 900
Metoda graficznaMetoda graficzna
TwierdzenieTwierdzenie. Jeżeli istnieje rozwiązanie optymalne zadania
programowania liniowego, to istnieje wierzchołek zbioru
dopuszczalnego będący rozwiązaniem optymalnym.
A(30, 60)
Rozwiązaniem zadania jest x1= 60 i x2 = 30 w którym funkcja celu osiąga wartość
f(60, 30) = 1200
Obszar spełniający wszystkie warunki – obszar dopuszczalny
Metoda eliminacji zmiennejMetoda eliminacji zmiennej
Z równości w warunkach ograniczających możemy wyeliminować
drugą zmienną i ograniczyć obszar poszukiwań:
111 10180090, xxxf
12
1
90
7060
xx
x
Warunki ograniczające
funkcja celu
Za pomocą metody kolejnych iteracji
przeszukujemy obszar możliwych rozwiązań w
poszukiwaniu maksimum funkcji celu.
Komórka celu:=10*B7+20*C7
Warunki ograniczające:=B3*$B$7+C3*$C$7=B4*$B$7+C4*$C$7=B5*$B$7+C5*$C$7=B6*$B$7+C6*$C$7
Komórki zmieniane
Zaznaczenie tego pole przyśpieszy
poszukiwanie rozwiązania w przypadku,
gdy chcemy rozwiązać problem
optymalizacji liniowej.
Sprawia, że dla wszystkich komórek
zmienianych, dla których nie ustawiono
dolnej granicy przyjmuje się dolną granicę
równą 0.
Maksymalny zysk
LiteraturaLiteratura
1. S. Krawczyk „Programowanie Matematyczne, zbiór
zadań”, PWE, Warszawa 1987
2. A. Kierzkowski „Turbo Pascal. Ćwiczenia praktyczne”,
Helion, Gliwice 2006
3. M Sysło, „Elementy Informatyki”, PWN, Warszawa
1993
4. B. Gleichgewicht, „Algebra, Podręcznik dla kierunków
nauczycielskich studiów matematycznych”, PWN,
Warszawa 1983
LiteraturaLiteratura
5. Z. Suraj, T. Rumak „Algorytmiczne rozwiązywanie
zadań i problemów”, Fosze, Rzeszów 1995
6. A. Sebyła „Algorytmy matematyczne języku Basic i
Turbo Pascal”, PLJ, Warszawa1993
InternetInternet
Materiały dydaktyczne prof. Zbigniewa Łuckiego, „Mate
matyczne techniki zarządzania”
Strony dydaktyczne, mgr Jerzy Wałaszek
Algorytmy i struktury danych
Nowe cechy języka Java w wersji 1.5
0
30
60
90
120
150
180
210
240
0 5 10 15 20 25 30 35 40 45
x2
x1
10x1 + 10x2 = 900
Metoda graficznaMetoda graficzna
0
30
60
90
120
150
180
210
240
0 5 10 15 20 25 30 35 40 45
x2
x1
5x1 + 25x1 <= 1200 10x1 + 10x2 = 900
Metoda graficznaMetoda graficzna
0
30
60
90
120
150
180
210
240
0 5 10 15 20 25 30 35 40 45
x2
x1
5x1 + 25x1 <= 1200 6 x1 <= 420 10x1 + 10x2 = 900
Metoda graficznaMetoda graficzna