Modelowanie i symulacja WYKŁAD 2
Kilka generalnych aspektów modelowania matematycznygo Zjawiska/modele liniowe vs nieliniowe Reprezentacja ciągła/dyskretna (rozwiązanie symboliczne vs numeryczne) Zjawiska/modele statyczne vs dynamiczne
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 rezlizacji 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%)
Błędy i retro-błędy Prawdziwa wartość: , zaokrąglona: Zamiast błędu względnego Retro-błąd:
Retrobłędy Błędy zaokrąglenia są interpretowane, jak perturbacje danych Jeśli dane są obarczone błędem (istnieje niepewność danych) a retro-błąd nie jest większy niż ta niepewność, to algorytm numeryczny może być uznany za odpowiedni dla danego zagadnienia
Stabilność numeryczna Metoda daje „prawie” dokładny wynik dla „prawie” dokładnych danych
Uwarunkowanie problemu Wrażliwość rozwiązania na perturbacje w danych Względny stopień uwarunkowania problemu
Uwarunkowanie problemu, przykład Względny wskaźnik uwarunkowania: Dla x bliskiego 1, względny wskaźnik uwarunkowania bardzo duży Przy tym zmiana absolutna jest mała:
Kasowanie Odjęcie dwóch bardzo podobnych liczb: