mn - ćw1 - handouts
Transkrypt
mn - ćw1 - handouts
Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne dr Artur Woike Ćwiczenia nr 1 Arytmetyka zmiennoprzecinkowa. Uwarunkowanie zadania. dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Postać zmiennoprzecinkowa liczby Niech będzie dana liczba x ∈ R. Mówimy, że x jest liczbą zmiennoprzecinkową jeżeli x = S · M · BE , gdzie: B ∈ N, B > 2 (ustalona podstawa systemu liczbowego); S ∈ {−1, 1} (znak liczby x); M ∈ h1, B) (znormalizowana mantysa liczby x); E ∈ Z (wykładnik liczby x). Przykład 1. Niech B = 10. Wtedy dla M ∈ h1, 10) liczba rzeczywista x = 1 · 3, 147 · 102 jest liczbą zmiennoprzecinkową. dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Własności systemu zmiennoprzecinkowego Załóżmy, że nasza zmiennoprzecinkowa reprezentacja liczb wykorzystuje m + n + 2 cyfr, w tym: 1 cyfra na znak liczby x; m cyfr na wartość mantysy; 1 cyfra na znak wykładnika; n cyfr na wartość bezwzględną wykładnika. Wtedy: Emin = −B n + 1; Emax = B n − 1; Mmin = 1; Mmax = B − B −(m−1) ; xmin = Mmin · B Emin ; xmax = Mmax · B Emax . dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Własności systemu zmiennoprzecinkowego Przykład 2. Niech B = 10, m = 4, n = 2. Wtedy: Emin = −99; Emax = 99; Mmin = 1; Mmax = 9, 999; xmin = 1 · 1 · 10−99 ; xmax = 1 · 9, 999 · 1099 . dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Własności systemu zmiennoprzecinkowego Zakres liczb możliwych do zapamiętania w naszym zmiennoprzecinkowym systemie liczbowym: h−xmax , −xmin i ∪ hxmin , xmax i . Do tego zakresu dołącza się również zbiór {−0, +0} jako wartości specjalne niemożliwe do uzyskania bezpośrednio w naszym systemie. Liczby x, takie że |x| < xmin , są traktowane jako tzw. niedomiar. Z kolei liczby x, takie że |x| > xmax , są traktowane jako tzw. nadmiar wykładniczy. Sposób obsługi takich liczb może być różny, w zależności od sprzętu i oprogramowania. dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Normalizacja mantysy Jeśli x = S ·M ·B E i M ∈ / h1, B), to aby zapamiętać x w naszym systemie zmiennoprzecinkowym należy znormalizować mantysę. W tym celu należy przesunąć przecinek w M, jednocześnie dostosowując wykładnik E , tak aby wartość liczby nie uległa zmianie. Uwaga. 1 Po normalizacji może wystąpić nadmiar wykładniczy. 2 Jeśli mantysa po normalizacji jest zbyt długa, to należy dostosować jej długość, np. poprzez zastosowanie operacji zaokrąglania lub odcinania. dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Normalizacja mantysy Zadanie 1. Niech B = 10, m = 4, n = 2. Znormalizować liczby x i y , gdzie x = 1 · 16, 437 · 10−3 i y = 1 · 0, 0123 · 10−99 . Rozwiązanie. x 0 = 1 · 1, 644 · 10−2 (po zaokrągleniu) x 00 = 1 · 1, 643 · 10−2 (po odcięciu) y 0 = +0 dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Własności arytmetyki zmiennoprzecinkowej Uwaga. Arytmetyka zmiennoprzecinkowa nie jest łączna i nie jest rozdzielna. Dodatkowo podczas wykonywania operacji zmiennoprzecinkowych mogą wystąpić: zaokrąglenia lub odcięcia; nieprawidłowe operacje; nadmiary wykładnicze; niedomiary. dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Dodawanie i odejmowanie zmiennoprzecinkowe Niech x1 = S1 · M1 · B E1 i x2 = S2 · M2 · B E2 . Możemy założyć, że |x1 | > |x2 |. Jeśli E1 − E2 6= 0, to należy zrównać wykładnik E1 z E2 (tzw. operacja wyrównywania wykładników). Otrzymujemy wtedy nową postać zmiennoprzecinkową liczby x1 : x1 = S1 · M10 · B E2 . Uwaga. Po zrównaniu wykładników mantysa M10 może przestać być znormalizowana. dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Dodawanie i odejmowanie zmiennoprzecinkowe Teraz przyjmujemy: S = S1 , M = M1 ± M2 (lub M = M10 ± M2 ), E = E2 . Otrzymujemy liczbę S · M · B E . 0 Po normalizacji otrzymujemy liczbę zmiennoprzecinkową S ·M 0 ·B E . Wtedy: 0 x1 ± x2 = S · M 0 · B E . dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Dodawanie i odejmowanie zmiennoprzecinkowe Zadanie 2. Niech B = 10, m = 4, n = 2. Wyznaczyć zmiennoprzecinkową sumę x1 + x2 oraz y1 + y2 , gdzie: x1 = 1 · 3, 141 · 103 ; x2 = 1 · 1, 019 · 101 ; y1 = 1 · 3, 244 · 107 ; y2 = 1 · 1, 001 · 102 . Rozwiązanie. (x1 + x2 )0 = (x1 + x2 )00 = 1 · 3, 151 · 103 ; (y1 + y2 )0 = (y1 + y2 )00 = 1 · 3, 244 · 107 . dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Mnożenie zmiennoprzecinkowe Niech x1 = S1 · M1 · B E1 i x2 = S2 · M2 · B E2 . Przyjmujemy: S = S1 · S2 , M = M1 · M2 , E = E1 + E2 . Otrzymujemy liczbę S · M · B E . 0 Po normalizacji otrzymujemy liczbę zmiennoprzecinkową S ·M 0 ·B E . Wtedy: 0 x1 · x2 = S · M 0 · B E . dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Mnożenie zmiennoprzecinkowe Zadanie 3. Wyznaczyć zmiennoprzecinkowy iloczyn x1 · x2 oraz y1 · y2 . Rozwiązanie. (x1 · x2 )0 = 1 · 3, 201 · 104 ; (x1 · x2 )00 = 1 · 3, 200 · 104 ; (y1 · y2 )0 = (y1 · y2 )00 = 1 · 3, 247 · 109 . dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Dzielenie zmiennoprzecinkowe Niech x1 = S1 · M1 · B E1 i x2 = S2 · M2 · B E2 . Przyjmujemy: S1 , S2 M1 M= , M2 E = E1 − E2 . S= Otrzymujemy liczbę S · M · B E . 0 Po normalizacji otrzymujemy liczbę zmiennoprzecinkową S ·M 0 ·B E . Wtedy: x1 0 = S · M0 · BE . x2 dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Liczby zmiennoprzecinkowe Zmiennoprzecinkowy system liczbowy Zasady arytmetyki zmiennoprzecinkowej Dzielenie zmiennoprzecinkowe Zadanie 4. Wyznaczyć zmiennoprzecinkowy iloraz x1 x2 oraz y1 y2 . Rozwiązanie. ( x1 x1 0 ) = ( )00 = 1 · 3, 082 · 102 ; x2 x2 y1 ( )0 = 1 · 3, 241 · 105 ; y2 x1 ( )00 = 1 · 3, 240 · 105 . x2 dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Zadanie źle/dobrze uwarunkowane Przykład zadania źle/dobrze uwarunkowanego Definicja Definicja. (Zadanie źle/dobrze uwarunkowane) 1 Zadanie nazywamy źle uwarunkowanym, jeżeli niewielka zmiana wartości wejściowych (danych) powoduje duże zmiany wartości wyjściowych (wyników) dla tego zadania. 2 Zadanie nazywamy dobrze uwarunkowanym, jeżeli niewielka zmiana wartości wejściowych (danych) powoduje niewielkie zmiany wartości wyjściowych (wyników). dr Artur Woike Metody numeryczne Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Zadanie źle/dobrze uwarunkowane Przykład zadania źle/dobrze uwarunkowanego Przykłady Zadanie 5. Rozwiązać oraz porównać ze sobą rozwiązania dla następujących układów równań liniowych: 1 Ax = b; 2 (A + E ) x = b; 3 Bx = b; 4 (B + E ) x = b. dr Artur Woike Arytmetyka zmiennoprzecinkowa Uwarunkowanie zadania Metody numeryczne Zadanie źle/dobrze uwarunkowane Przykład zadania źle/dobrze uwarunkowanego Przykłady A= B= E = 2.5410 1.8720 1.0000 1.0000 0.0010 2.1120 1.5560 2.0000 1.0000 0.0010 −0.0010 −0.0020 4.6530 b= 3.4280 x1 x = x2 dr Artur Woike Metody numeryczne