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

Post on 30-Dec-2015

28 views 1 download

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

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