Reprezentacja liczby, błędy, algorytmy w obliczeniach

Transkrypt

Reprezentacja liczby, błędy, algorytmy w obliczeniach
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