Wybrane algorytmy wykorzystujące pojęcia z matematyki wyższej

49
Wybrane algorytmy Wybrane algorytmy wykorzystujące wykorzystujące pojęcia z pojęcia z matematyki wyższej matematyki wyższej Krzysztof Gąsior Koło Naukowe Matematyków Uniwersytet Rzeszowski

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 Presentation

Transcript of Wybrane algorytmy wykorzystujące pojęcia z matematyki wyższej

Page 1: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 2: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

„Matematyka często przeplata się z informatyka

i

wiele problemów rozwiązywanych

za pomocą

komputerów to problemy matematyczne”(2)

Page 3: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 4: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 5: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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ą

Page 6: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 7: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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;

Page 8: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 9: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 10: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 11: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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).

Page 12: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 13: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 14: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 15: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 16: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 17: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

Obliczanie wyznacznika macierzyObliczanie wyznacznika macierzy

ZadanieZadanie

Oblicz wyznacznik macierzy:

1846133413

7856432413

2054067

1034654

5623321

A

Page 18: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

=WYZNACZNIK.MACIERZY(B2:F6)

Page 19: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 20: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 21: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

Wzór rekurencyjnyWzór rekurencyjny

1

1det

1

11

nAa

naA n

iinin

n – stopień macierzy

inni

in MA 1

Page 22: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 23: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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ę.

Page 24: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

Tworzenie programu cd.Tworzenie programu cd.

333231

232221

131211

aaa

aaa

aaa

3231

2221

aa

aa

3

2- wektor wiersza

numer kolumny = 2

Page 25: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 26: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 27: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 28: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 29: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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.

Page 30: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 31: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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.

Page 32: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 33: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 34: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 35: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 36: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

Za pomocą metody kolejnych iteracji

przeszukujemy obszar możliwych rozwiązań w

poszukiwaniu maksimum funkcji celu.

Page 37: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 38: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 39: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 40: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

Zaznaczenie tego pole przyśpieszy

poszukiwanie rozwiązania w przypadku,

gdy chcemy rozwiązać problem

optymalizacji liniowej.

Page 41: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

Sprawia, że dla wszystkich komórek

zmienianych, dla których nie ustawiono

dolnej granicy przyjmuje się dolną granicę

równą 0.

Page 42: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

Maksymalny zysk

Page 43: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 44: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 45: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 46: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej
Page 47: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 48: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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

Page 49: Wybrane algorytmy wykorzystujące  pojęcia z  matematyki wyższej

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