Metody numeryczne i symulacja WYKŁAD 1
Metody numeryczne i symulacja dr inż. Piotr Gołąbek pgolab@poczta.onet.pl amanda.radom.net/~pgolab/ login: nummod hasło: nummod 30 godzin wykładu 30 godzin laboratorium zaliczenie laboratorium – projekty w Scilab zaliczenie wykładu – egzamin
Zagadnienia MODELOWANIE Zjawisko rzeczywiste Środowisko Skutki PSEUDOLOSOWE GENERATORY DANYCH SYMULACJA MODEL Generator danych Wyniki symulacji
Zagadnienia Zjawisko rzeczywiste Środowisko Skutki MODEL Generator danych Wyniki symulacji
Narzędzie SciLab – wzoruje się na pakiecie MATLAB, www.scilab.org MATLAB = Matrix Laboratory (Laboratorium macierzowe) Jedna z realizacji szerokiej klasy programów implementujących BLAS BLAS = Basic Linear Algebra System Linear Algebra (Algebra Liniowa) – jedna z fundamentalnych metod matematycznych stosowana w naukach przyrodniczych Inny klon: OCTAVE - http://www.octave.org/
Literatura Dryja M., Jankowscy J. i M.: „Przegląd metod i algorytmów numerycznych”, WNT, Warszawa 1989 Fortuna Z., Macukow B., Wąsowski J.: „Metody numeryczne”, WNT, Warszawa 1989 Stoer J., Burlisch R.: „Wstęp do analizy numerycznej”, PWN, Warszawa 1987 Osowski S.: "Modelowanie układów dynamicznych z zastosowaniem języka SIMULINK", Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 1999 Palczewski A.: "Równania różniczkowe zwyczajne", WNT, Warszawa 1999. Perkowski P.: "Technika symulacji cyfrowej", Wydawnictwo Naukowo-Techniczne, Warszawa 1980 Morisson F.: "Sztuka modelowania układów dynamicznych.", Wydawnictwo Naukowo-Techniczne, Warszawa 1996
Model zjawiska/systemu/procesu rzeczywistego Konkretny, materialny twór, naśladujący rzeczywiste zjawisko - model fizyczny, materialny, eksperyment – np. model do badań w tunelu aerodynamicznym albo „test dummies” – manekiny używane w symulacjach zderzeń samochodowych
Model zjawiska/systemu/procesu rzeczywistego Abstrakcyjny opis zjawiska rzeczywistego, wyrażony w jakimś formalnym systemie, najczęściej za pomocą aparatu matematycznego, ale niekoniecznie (np. jako program w języku programowania) matematyka jest językiem
Modele analogowe Szczególna klasa modeli fizycznych – konstrukcja urządzenia, które zachowuje się „tak samo” jak pierwowzór
Modele analogowe
Modele analogowe
Modele z założenia są uproszczone ? =
Modele z założenia są uproszczone Nie jest to wada tej metody, tylko jej istota, odpowiadająca celom modelowania Pomijanie pewnych szczegółów obserwowanego zjawiska aby wychwycić istotne jego aspekty jest podstawową cechą umysłu ludzkiego. Nazywa się to umiejętnością abstrakcji lub umiejętnością generalizacji
Cele modelowania Te same cele, dla których zjawiska rzeczywiste są w ogóle badane: zrozumienie zjawiska – dlaczego się zdarzyło, dlaczego miało taki przebieg i skutki optymalizacja rozwiązania problemu - jak sprawić, żeby zjawisko miało przebieg korzystny z punktu widzenia pewnego kryterium przewidywanie zjawiska – jak na podstawie przyczyn określić możliwe skutki „odwrotne” prognozowanie – jak na podstawie skutków określić możliwe przyczyny
Dlaczego stosowane są modele Najogólniej - koszt gromadzenia danych (obserwacji) o rzeczywistym zjawisku może być zbyt duży w sensie dosłownym w sensie sytuacji krytycznych koszt „nieskończony” – jeśli np. zjawisko było jednokrotne w sensie czasu – kontrakcja i ekspansja Modelowanie może być etapem procesu projektowania
Zjawiska „rzeczywiste” Akt obserwacji – tworzenie modelu Nauka – tworzenie modelu (Heraklit) Inteligencja – tworzenie modelu
Przebieg modelowania Co będzie modelowane - zakres? Czy wzrost populacji w Europie czy tylko w Polsce? Czy przepustowość sieci komputerowej czy średni czas propagacji pakietu z pewnej stacji do innej? Które wielkości (zmienne) odgrywają rolę jakościową na zjawisko i jaki jest ich ilościowy wpływ Optymalny kąt nachylenia wyrzutni: siła wiatru, siła grawitacji? Kształtowanie się kursu akcji: komunikat RPP? wskaźniki GUS?
Przebieg modelowania Jakie są zależności między wyspecyfikowanymi zmiennymi: jakościowe: reguły typu jeśli – to ilościowe: konkretne wielkości i zależności
Przebieg modelowania Formalny zapis relacji między zmiennymi: algebraiczne równania i nierówności równania różniczkowe z jedną niezależną zmienną (najczęściej czasem) - zwyczajne równania różniczkowe z więcej niż jedną niezależnymi zmiennymi (np. położenie i czas) – cząstkowe automaty, diagramy stanu grafy obrazujące zależności ilościowe zależności probabilistyczne, sieci probabilistyczne systemy reguł, np. modele rozmyte modele statystyczne, jak np. sieci neuronowe
Przebieg modelowania Analiza modelu czy istnieje rozwiązanie? czy rozwiązanie jest unikalne? czy istnieją stany stacjonarne? czy są cykle w grafie? czy występują oscylacje między różnymi stanami? Jaka jest czułość modelu na zmianę warunków (wielkości wejściowych/parametrów)
Kilka generalnych aspektów modelowania matematycznygo Zjawiska/modele liniowe vs nieliniowe Zjawiska/modele statyczne vs dynamiczne Reprezentacja ciągła/dyskretna (rozwiązanie symboliczne vs numeryczne)
Liniowość - kryterium Kryterium Znane jako zasada superpozycji W istocie: dwa warunki:
Kryterium rozstrzygające Zjawisko, które nie spełnia kryterium liniowości jest nieliniowe
Przykład W elektrotechnice obwody RLC są nazywane liniowymi Rezystor R: tgα=1/R
Przykład Co mówi kryterium?
Przykład: cewka Cewka: Prawo znane jako reguła Lenza – rozłączanie i załączanie obwodów indukcyjnych jest ryzykowne (przepięcia)
Przykład: cewka Kryterium:
Ćwiczenie Czy kondensator jest też elementem liniowym? Kondensator:
Przykład To jest układ liniowy R=1/D
Przykład To też jest układ liniowy (zasada superpozycji)
Przykłady Nie są liniowe np. zjawiska na giełdzie papierów wartościowych: „jeśli w ciągu miesiąca te akcje przyniosły 3 tys. zł, to w ciągu roku przyniosą 36 tys. zł. zysku (rzucam pracę!)” – niestety, nie.
Dlaczego tak ważne, żeby rozróżniać? Nałożenie warunku na układ to stworzenie równania lub nierówności Np.: „Przez ten rezystor (1kΩ) nie może płynąć prąd większy niż 100mA”: (czyli przypadek graniczny:)
Dlaczego tak ważne ...? Rozwiązanie równania to wyznaczenie jakiegoś interesującego parametru: Jeżeli mamy kilka zmiennych niezależnych, i nałożymy na nie kilka warunków ograniczających i wiążących je ze sobą, to powstanie zbiór (układ) równań
Dlaczego tak ważne ...? Układ równań opisujących zjawiska liniowe będzie układem równań liniowych Jeśli choć jeden fragment systemu ma charakter nieliniowy – powstanie układ równań nieliniowych Na rozwiązywanie równań/układów równań liniowych jest dobra metoda, w przypadku równań/układów równań nieliniowych – jest dużo gorzej
Równania liniowe/nieliniowe Bez problemu można rozwiązać liniowe równanie: Niektóre równania nieliniowe można rozwiązać również dość łatwo:
Równania liniowe/nieliniowe Większość jednak równań nieliniowych dostarcza nam dużo większych kłopotów:
Układy równań liniowych Na rozwiązywanie układów równań liniowych są metody, których mają trzy ważne cechy: Algorytm zawsze kończy pracę w obrębie ściśle określonego limitu liczby kroków obliczeniowych Algorytm zawsze znajduje unikalne rozwiązanie lub potrafi stwierdzić, że takiego rozwiązania nie ma Dokładność wyznaczenia rozwiązania jest związana z dokładnością obliczeń maszyny liczącej a nie jest cechą algorytmu (można więc w pewnym sensie powiedzieć, że algorytm wyznacza rozwiązanie dokładne)
Reprezentacja ciągła i dyskretna „Świat jest ciągły” (czy aby na pewno?) atomy kwanty
Paradox Zenobiusza Czy Achilles dogoni ślimaka? Nie: gdy Achilles znajdzie się w miejscu, gdzie chwilowo był ślimak, ślimak będzie już troszkę dalej...
Ciągłość
Ciągłość ε ε δ δ? Definicja: funkcja f(x) jest ciągła w punkcie x0
Ciągłość Liczby rzeczywiste – pomiędzy dowolnymi dwiema różnymi liczbami rzeczywistymi jest nieskończenie wiele innych liczb rzeczywistych Ciągłość ma dla ludzi wielkie znaczenie – bez założenia ciągłości nie można podejmować żadnych decyzji
Dyskretyzacja Ograniczenie nieskończonej ilości danych potrzebnych do opisania ciągłego obiektu Opis ciągły – tylko symbolicznie, np.: Jak to jest zapisane na płycie CD?
Dyskretyzacja Próbkowanie – mierzenie wartości sygnału w określonych, regularnych chwilach czasu (nie musi być czas, nie musi być regularnie)
Dyskretyzacja amplitudy - kwantyzacja Amplituda też jest ciągła
Dyskretyzacja, kwantyzacja To samo można oczywiście zrobić w innych dziedzinach niż tylko czas, np. w przestrzeni (obraz) Dość oczywista utrata danych, która może się dość nieprzyjemnie zamanifestować
Dyskretyzacja, kwantyzacja Niejednoznaczność uzyskanej informacji (np. tzw. aliasing, albo tzw. szum kwantyzacji):
Dyskretyzacja, kwantyzacja Utrata informacji o istotnych cechach sygnału (np. max. amplituda)
Dyskretyzacja, kwantyzacja
Dyskretyzacja, kwantyzacja Tak więc zabieg kwantyzacji i dyskretyzacji jest konieczny ... ... ale równie konieczne jest określenie związanych z tym błędów
Dyskretyzacja Problemy z aliasingiem – odpowiednia częstotliwość próbkowania, zgodnie z kryterium Nyquista, max częstotliwość, która może być reprezentowana przy próbkowaniu z częstotliwością fs to fs /2
Dyskretyzacja Problem utraty informacji o wartości ekstremalnej – odpowiedni układ próbkowania (np. tzw. track & hold)
Dyskretyzacja W każdym razie zawsze po próbkowaniu mamy pewną nieoznaczoność w czasie: próbka to wartość, która w próbkowanej funkcji leży gdzieś wewnątrz przedziału próbkowania
Kwantyzacja Typowa operacja kwantyzacyjna stosowana w praktyce symulacyjnej to reprezentacja liczb za pomocą arytmetyki komputerowej o skończonej dokładności: jako liczb całkowitych o różnej długości reprezentacji (8-, 16-, 32-bitowe – char, short int, int) jako liczb niecałkowitych o różnej długości reprezentacji – tzw. arytmetyka zmiennoprzecinkowa (32-bitowe – single oraz 64-bitowe – double)
Arytmetyka zmiennoprzecinkowa Każda liczba rzeczywista da się wyrazić, jako: (zakładając, że s jest nieskończone) Ciąg cyfr d (liczba mniejsza od 1) to tzw. mantysa, e to tzw. wykładnik (eksponent). Eksponent jest liczbą całkowitą ze znakiem. Taka sama reprezentacja jest możliwa w innych bazach, nie tylko dziesiętna.
Arytmetyka zmiennoprzecinkowa Reprezentacja o skończonej precyzji: s jest skończone, e ma ograniczony zakres: m < e < M
Arytmetyka zmiennoprzecinkowa Taka reprezentacja ma pewną określoną dokładność – liczba wyrażona w ten sposób reprezentuje pewien zakres liczb rzeczywistych. Oczywiście zbiór liczb w tej arytmetyce jest skończony. Liczby w tej arytmetyce nie są równomiernie rozłożone.
Arytmetyka zmiennoprzecinkowa Np. dla s=1, w bazie β=4 dla wykładnika w zakresie od m=-1 do M=1: ±0.9*4 –1, ±0.9* 4 0 , ± 0.9*4 1, ± 0.8*4 1,...
Arytmetyka zmiennoprzecinkowa W komputerach PC często stosuje się standard IEEE768, w którym bazą reprezentacji jest baza dwójkowa, i zdefiniowane są dwie precyzje: pojedyncza, łącznie 32 bity na liczbę: mantysa ma 24 bity (włączając bit znaku), wykładnik – 8 bitów (włączając bit znaku) podwójna, 64 bity: mantysa 53 bity, wykładnik 11 bitów
Arytmetyka zmiennoprzecinkowa Reprezentacja liczb w tej arytmetyce obarczona jest oczywistym błędem skończonej precyzji, tzw. błędem zaokrąglenia lub błędem obcięcia Prawdziwym jednak problemem są błędy występujące przy realizacji procedury obliczeniowej: tzw. overflow (przepełnienie), underflow, błędy akumulacji i kasowania
Overflow, underflow Występowanie błędu overflow jest związane z tym, że reprezentacja zmiennoprzecinkowa ma swoją maksymalną wartość: 0.9999(...)* β M Jeśli cząstkowy wynik obliczeń przekroczy tę wartość, wystąpi błąd przepełnienia
Overflow Wcale nietrudno o wystąpienie takiej sytuacji, a co gorsza, zależy to od sekwencji obliczeń
Overflow Np. obliczanie wyznacznika macierzy obejmuje obliczenie iloczynu liczb, powiedzmy: Jeśli np.: a M=100, to iloczyn nie da się wyliczyć, a iloczyn: - da
Overflow Dość typowa operacja, wyznaczenie normy (wielkości) jakiegoś wektora, np. normy Euklidesowej: (przypadek szczególny):
Underflow Błąd typu underflow jest mniej „gwałtowny”, zawsze może być naprawiony poprzez założenie wyniku równego zero
Underflow ale, np. test zmiany znaku dla procedury szukania miejsca zerowego:
Obcinanie, zaokrąglenie Zaokrąglanie: najpierw do liczby należy dodać , później dokonać obcinania β
Błędy Absolutny: prawdziwa wartość – przybliżona wartość Względny: (prawdziwa wartość – przybliżona wartość) / przwdziwa wartość
Względne błędy obcięcia i przybliżenia Błąd obcięcia Błąd przybliżenia
Błędy Każda liczba rzeczywista jest związana ze swoim przybliżeniem zmiennoprzecinkowym relacją: gdzie:
Błędy bezwzględne Często stawiany jest wymóg bezwzględnej dokładności rozwiązania (zwłaszcza procedury iteracyjne): Odpowiada to żądaniu błędu względnego:
Utrata znaczących cyfr przy dodawaniu Przykład
Akumulacja błędów
Akumulacja błędu obcinania jeśli jest używane zaokrąglanie, to błędy trochę się kasują (chociaż standardowa dewiacja rośnie), jeśli obcinanie – to jest tendencja do przesunięcia błędu w jedną stronę 0.8132*0.6135 (do czterech cyfr z obcinaniem)=0.4988 (0,0197%) 0.8132*0.6135*0.2103=0,1048 (0,1127%) 0.8132*0.6135*0.2103*0,8425 = 0,0882 (0,219%)