Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH INFORMATYKA Transport, studia I stopnia rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Pojęcie metody numerycznej Metoda numeryczna Algorytm 1 Uporządkowany zestaw czynności zmierzających do osiągnięcia celu, np. przepis kulinarny. 2 Logiczny ciąg operacji, na skutek których dane wejściowe zostają przetworzone w wyniki. Metoda numeryczna Skończona liczba najprostszych działań arytmetycznych (+, −, · , /) i logicznych określona za pomocą odpowiedniego algorytmu. Pierwsze metody numeryczne powstały znacznie wcześniej niż komputery! Dane (liczbowe) → Algorytm metody numerycznej → Wyniki (liczbowe) INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Reprezentacja liczby Pojęcie liczby Liczba Dawniej: intuicyjnie rozumiana jako miernik wielkości zbioru np. przedmiotów. Dziś: pojęcie abstrakcyjne, podstawowy obiekt matematyczny. Czy liczba różni się od cyfry? Liczba składa się z cyfr, tak jak słowo składa się z liter, np. w systemie dziesiętnym 198819 składa się z cyfr arabskich 1, 8 i 9. Mówimy: liczba prętów zbrojeniowych, cyfra 5, ilość piasku, ilość stali. Nie powinniśmy mówić: ilość cegieł, cyfra 14, liczba arabska. INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Reprezentacja liczby Reprezentacja liczby Reprezentacja liczby to sposób zapisu wartości liczby za pomocą znaków, w szczególności cyfr. Przykład: Cyfry arabskie: 143 Cyfry rzymskie: CXLI Cyfry starożytnego Egiptu: jaka to liczba? Zazwyczaj liczba jest reprezentowana przez skończoną liczbę cyfr. Skończoność zapisu za pomocą cyfr powoduje, że nie dla każdej liczby jest on dokładny, np. π = 3.14159 . . . , 16 = 0.16667 . . . . INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie System pozycyjny Systemy liczbowe Systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb z cyfr oraz zbiór reguł umożliwiających wykonywanie operacji na liczbach. Systemy dzielą się na: 1 niepozycyjne: poszczególne cyfry zachowują swą wartość liczbową bez względu na miejsce jakie zajmują np. system rzymski 2 pozycyjne: wartość liczbowa cyfry zależy od jej umiejscowienia (pozycji) np. system dziesiętny, dwójkowy (binarny) INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie System pozycyjny System pozycyjny Zapis zmiennopozycyjny – notacja naukowa Liczbę rzeczywistą w systemie dziesiętnym można zapisać w postaci: L = m · pc , gdzie: m – mantysa liczby L, p – podstawa systemu pozycyjnego, c – cecha liczby L. Przykład: 3472.254 = 0.3472254 · 104 = 0.3472254e+04 INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Błędy operacji arytmetycznych Definicja błędu Inżynier ma czynienia z błędem, gdy wynik obliczeń (lub pomiaru) odbiega od wyniku dokładnego czyli PRAWIE ZAWSZE (!!!). Definicja - błąd bezwzględny ∆x = | x − X | x - wartość dokładna (ścisła), X - wartość przybliżona, ∆x - błąd bezwzględny Definicja - błąd względny x = ∆x | x| =| x−X x | x - błąd względny INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Błędy operacji arytmetycznych Błąd bezwzględny i względny Przykład Wartość błędu bezwzględnego ∆x zależy od rzędu wielkości rozpatrywanych liczb. Przykład: x X ∆x x 1.0101 0.99901 0.01109 0.010979 101.01 99.901 1.109 0.010979 10101 9990.1 110.90 0.010979 1010100 999010 11090 0.010979 Bardziej obiektywną ocenę dokładności reprezentacji liczb daje wartość błędu względnego x . INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Błędy operacji arytmetycznych Podstawowe źródła błędów Wszystkie zagadnienia rozwiązywane metodami numerycznymi są na ogół obarczone pewnymi błędami. Błędy te można podzielić na: 1 błędy wejściowe (początkowe) 2 błędy obcięcia 3 błędy zaokrągleń 4 błędy modelu 5 błędy metody INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Błędy operacji arytmetycznych Błędy początkowe Błędy danych wejściowych Dane liczbowe wprowadzone do pamięci (komputera) odbiegają od dokładnych wartości tych danych. Błędy pomiaru – wynikają z pomiarów wielkości fizycznych, np. błąd odczytu wskazań przyrządów, niedoskonałość metody pomiarowej, itp. Błędy reprezentacji – wynikają ze sposobu zapisu wartości liczby. Przykład: 1 5 1 3 = 0.210 = 0.(0011)2 ∼ = 0.001100112 ∼ = 0.(3)10 = 0.(01)2 = 0.333333310 ∼ = 0.010101012 INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Błędy operacji arytmetycznych Błędy obcięcia Błędy obcięcia Powstają podczas zmniejszenia liczby działań (teoretycznie nieskończonych), np. przy obliczaniu sumy szeregu. Przykład: f (x) = e x dla x = 5.0 Wzór sumacyjny Pn x i Wynik dokładny n Wynik przybliżony 1.48413159e+02 5 10 15 20 9.14166667e+01 1.46380601e+02 1.48379580e+02 1.48413147e+02 i=0 i! INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Błędy operacji arytmetycznych Błędy zaokrągleń Błędy zaokrągleń Pojawiają się podczas wykonywania obliczeń. Wynikają z ograniczonej reprezentacji liczb w pamięci komputera. Błędy te możemy zmniejszyć ustalając sposób i kolejność działań lub precyzję obliczeń (nie zawsze można). Przykład: 0.2e+00 + 0.1e+17 - 0.1e+17 = 0 0.1e+17 - 0.1e+17 + 0.2e+00 = 0.2e+00 INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Inne rodzaje błędów Błędy modelu i błędy metody Błędy modelu Wyniki obliczeń określają zachowanie się pewnego rzeczywistego układu fizycznego, chemicznego, itp. Podczas budowania modelu fizycznego (np. konstrukcji) i matematycznego pomija się część efektów – uznaje się je za niestotne dla rozwiązania. Przyjęty model stanowi przybliżenie rzeczywistości. W wyniku obliczeń (numerycznych) mogą pojawić się jakieś jego niezgodności z zachowaniem układu rzeczywistego, które są następstwem pomyłek (czyli tzw. ”grubych błędów”). Błędy metody Metody numeryczne, za pomocą których wykonywane są obliczenia, bardzo często są metodami przybliżonymi. Zatem realizacja danego algorytmu może prowadzić do błędu metody. Nie dotyczy to metod dokładnych. INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Cechy algorytmów Kiedy algorytm jest poprawny? Poszukiwanie rozwiązania problemu czy zadania za pomocą określonej metody numerycznej ma sens, gdy wiadomo, że to rozwiązanie istnieje i jest jednoznaczne. W przeciwnym wypadku możemy doprowadzić do obliczeń bez końca, co przy zastosowaniu komputera skutkuje zawieszeniem jego działania. W celu wykonania obliczeń i uzyskania wyniku należy sformułować poprawny algorytm. Algorytm poprawnie sformułowany jest wtedy, gdy liczba operacji (działań) będzie skończona. Dane (liczbowe) → Algorytm metody numerycznej → Wyniki (liczbowe) INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Cechy algorytmów Algorytm numerycznie niestabilny Algorytm numerycznie niestabilny Niewielkie błędy wynikające z obliczeń numerycznych (np. zaokrąglenia) na jakimś etapie rosną tak, że w kolejnych etapach znacznie zniekształcają wyniki końcowe. Przykład: Obicz wartość szereg x e x = 1 + 1! + Wyniki: Lp. x 1 +5 2 -5 3 +15 4 -15 5 -35 funkcji: e x wykorzystując rozwinięcie w x2 2! + n 22 22 50 50 80 INFORMATYKA x3 3! + ··· → suma szeregu 148.413159 6.73795e-3 3.2690e+06 3.0590e-07 48734.921 ex ≈ xi i=0 i! Pn wartość ścisła 148.413159 6.73795e-3 3.2690e+06 3.0590e-07 1.80485e-35 REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Cechy algorytmów Algorytm numerycznie stabilny Algorytm numerycznie stabilny algorytm, który dla nieco zaburzonych danych zwraca nieco zaburzone wyniki. Zwiększenie dokładności obliczeń pozwala wyznaczyć dowolne istniejące rozwiążanie. Przykład: Obicz wartość funkcji: e x zmieniając algorytm dla x < 0 2 4 6 |x|3 |x|5 s1 = 1 + x2! + x4! + x6! + · · · s2 = |x| 1! + 3! + 5! + · · · a następnie: e x = s1 − s2 Wyniki: Lp. 1 2 5 x -5 -15 -35 n 22 50 80 suma szeregu 148.413159 3.0590e-07 1.80485e-35 wartość ścisła 148.413159 3.0590e-07 1.80485e-35 Nie dopuszczamy do sytuacji, kiedy w wyniku kumulacji poszczególnych błędów możemy uzyskać wysoce przekłamany wynik. INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Cechy algorytmów Cechy dobrego algorytmu Niezawodność, zbieżność Zawsze daje wyniki – niezależnie od danych. Stabilność Zaburzenia w trakcie realizacji (występowanie błędów) nie wpływają na wynik końcowy. Szybkość Wynik uzyskuje się możliwie jak najszybciej (optymalnie szybko). Można spotkać metody (algorytmy) numeryczne które są szybkie, ale nie są stabilne i... odwrotnie. INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie Uwarunkowanie zadania Złe uwarunkowanie zadania To jak bardzo wynik W (a + δa) różni się od W (a) zależy od rodzaju zadania i cechę tą nazywamy uwarunkowaniem zadania. Zadanie jest źle uwarunkowane, jeśli małe zmiany danych początkowych wywołują duże zmiany wyników czyli występuje duża wrażliwość rozwiązania zadania na małe zmiany danych początkowych. Przykład: 5 6 Rozwiązanie układu równań liniowych A x = B: −331 x1 3.5 x1 331.7 = → = !!! −397 x2 5.2 x2 5.0 5 −331 x1 3.5 x1 298.6 = → = !!! 6 −397 x2 5.1 x2 4.5 Wskaźnikiem uwarunkowania zadania jest wielkość:P n cond(A) = ||A|| · ||A−1 || , gdzie: ||A||∞ = max j=1 |aij |. 1¬i ¬m Zadanie jest dobrze uwarunkowane jeśli cond(A) jest małe. Dla przykładu: INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH cond(A) = 403 · 728 = 293384 → zadanie źle uwarunkowane Reprezentacja liczb w obliczeniach numerycznych Błędy w obliczeniach Uwagi o algorytmach Na zakończenie „Doskonały i nieomylny Inżynier to taki, który unika drobnych błędów na drodze do wielkiej katastrofy” prawo Murphy’ego Dziękuję za uwagę INFORMATYKA REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH