490 likes | 681 Views
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.
E N D
Koło Naukowe MatematykówUniwersytet 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 • 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
Algorytm jest przepisem na rozwiązanie postawionego zadania, będącym określonym układem elementarnych instrukcji wraz z porządkiem ich wykonania. Przypomnienie • Sposoby zapisu algorytmu: • opisu słownego • listy kroków • schematu blokowego lub innego grafu • programu komputerowego
Przypomnienie c.d. • Cechy każdego algorytmu: • Skończonośćco oznacza, że realizowany ciąg operacji powinien mieć swój koniec • 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śćalgorytm nie ogranicza się do szczegółowego przypadku, ale odnosi się do pewnej klasy zadań • Efektywnośćalgorytm prowadzi do rozwiązania możliwie najprostszą drogą
W matematyce algorytm jest pojęciem służącym do formułowania rozwiązań i badania rozstrzygalności problemów Do czego służą algorytmy w matematyce?
Obliczenie wartości logarytmu naturalnego Zadanie Oblicz wartość ln 4; 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? 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 Carlo Metoda 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łki - początek przedziału całkowania - koniec przedziału całkowania - funkcja podcałkowa - punkty losowo wybierane z przedziału - ilość losowanych punktów
s ( ) = - s a 1 ; n Schemat Blokowy Start Czytaj (a, n); s = 0; i = 1; NIE Pisz (s); Stop i++;
Obliczanie wyznacznika macierzy Zadanie Oblicz wyznacznik macierzy:
Jak można stworzyć własny program? 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.
Wzór rekurencyjny n – stopień macierzy
Wzór rekurencyjny Definicja 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
Tworzenie 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. - wektor wiersza numer kolumny = 2
Problem 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:
Problem 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ązania • Określenie danych wejściowych i celu, czyli wyniku • Stworzenie modelu matematycznego • Znaleźnie metody rozwiązania, czyli algorytmu • Stworzenie własnego programu lub skorzystanie z już istniejącego • Analiza poprawności rozwiązania
Programowanie liniowe Programowanie linowejest działem matematyki poświęconym teorii i praktycznym algorytmom wyznaczania ekstremum funkcji wielu zmiennych przy ograniczeniach na obszar ich zmienności.
Programowanie liniowe Zagadnie programowania linowego formułuje się w następujący sposób: min (max) warunki ograniczające funkcja celu (funkcja ekonomiczna)
Wspomniany wcześniej problem jest klasycznym przykładem zagadnienia programowania linowego. Programowanie liniowe Funkcja celu - zmienne decyzyjne Warunki ograniczające bilans energii bilans stali bilans drewna bilans pracy warunki nieujemności
Metoda graficzna Twierdzenie. Jeżeli istnieje rozwiązanie optymalne zadania programowania liniowego, to istnieje wierzchołek zbioru dopuszczalnego będący rozwiązaniem optymalnym. Rozwiązaniem zadania jest x1= 60 i x2 = 30 w którym funkcja celu osiąga wartość f(60, 30) = 1200 A(30, 60) Obszar spełniający wszystkie warunki – obszar dopuszczalny
Z równości w warunkach ograniczających możemy wyeliminować drugą zmienną i ograniczyć obszar poszukiwań: Metoda eliminacji zmiennej funkcja celu Warunki ograniczające
Za pomocą metody kolejnych iteracji przeszukujemy obszar możliwych rozwiązań w poszukiwaniu maksimum funkcji celu.
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 Komórka celu: =10*B7+20*C7
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.
Literatura S. Krawczyk „Programowanie Matematyczne, zbiór zadań”, PWE, Warszawa 1987 A. Kierzkowski „Turbo Pascal. Ćwiczenia praktyczne”, Helion, Gliwice 2006 M Sysło, „Elementy Informatyki”, PWN, Warszawa 1993 B. Gleichgewicht, „Algebra, Podręcznik dla kierunków nauczycielskich studiów matematycznych”, PWN, Warszawa 1983
Literatura Z. Suraj, T. Rumak „Algorytmiczne rozwiązywanie zadań i problemów”, Fosze, Rzeszów 1995 A. Sebyła „Algorytmy matematyczne języku Basic i Turbo Pascal”, PLJ, Warszawa1993
Internet • Materiały dydaktyczne prof. Zbigniewa Łuckiego, „Matematyczne techniki zarządzania” • Strony dydaktyczne, mgr Jerzy Wałaszek • Algorytmy i struktury danych • Nowe cechy języka Java w wersji 1.5