REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia I stopnia rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek
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)
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.
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..., 1 6 = 0.16667....
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)
System pozycyjny System pozycyjny Zapis zmiennopozycyjny notacja naukowa Liczbę rzeczywistą w systemie dziesiętnym można zapisać w postaci: L = m p c, gdzie: m mantysa liczby L, p podstawa systemu pozycyjnego, c cecha liczby L. Przykład: 3472.254 = 0.3472254 10 4 = 0.3472254e+04
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
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 1.0101 101.01 10101 1010100 X 0.99901 99.901 9990.1 999010 x 0.01109 1.109 110.90 11090 ɛ x 0.010979 0.010979 0.010979 0.010979 Bardziej obiektywną ocenę dokładności reprezentacji liczb daje wartość błędu względnego ɛ x.
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
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 = 0.2 10 = 0.(0011) 2 = 0.001100112 1 3 = 0.(3) 10 = 0.(01) 2 = 0.333333310 = 0.010101012
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 Wynik dokładny n Wynik przybliżony n i=0 x i i! 5 9.14166667e+01 10 1.46380601e+02 15 1.48379580e+02 1.48413159e+02 20 1.48413147e+02
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
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.
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)
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ść funkcji: e x wykorzystując rozwinięcie w szereg e x = 1 + x 1! + x 2 2! + x 3 3! + ex n i=0 x i i! Wyniki: Lp. x n suma szeregu wartość ścisła 1 +5 22 148.413159 148.413159 2-5 22 6.73795e-3 6.73795e-3 3 +15 50 3.2690e+06 3.2690e+06 4-15 50 3.0590e-07 3.0590e-07 5-35 80 48734.921 1.80485e-35
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 s 1 = 1 + x 2 2! + x 4 4! + x 6 6! + s 2 = x 1! + x 3 3! + x 5 5! + a następnie: e x = s 1 s 2 Wyniki: Lp. x n suma szeregu wartość ścisła 1-5 22 148.413159 148.413159 2-15 50 3.0590e-07 3.0590e-07 5-35 80 1.80485e-35 1.80485e-35 Nie dopuszczamy do sytuacji, kiedy w wyniku kumulacji poszczególnych błędów możemy uzyskać wysoce przekłamany wynik.
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.
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: Rozwiązanie układu równań liniowych A x = B: [ ] [ ] [ ] [ ] [ 5 331 x1 3.5 x1 331.7 = = 6 397 x 2 5.2 x 2 5.0 [ 5 331 6 397 ] [ ] x1 = x 2 [ 3.5 5.1 ] [ x1 ] = x 2 [ 298.6 4.5 Wskaźnikiem uwarunkowania zadania jest wielkość: cond(a) = A A 1 n, gdzie: A = j=1 a ij. max 1 i m Zadanie jest dobrze uwarunkowane jeśli cond(a) jest małe. Dla przykładu: ]!!! ]!!! cond(a) = 403 728 = 293384 zadanie REPREZENTACJA źle uwarunkowane LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH
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ę