Ćwiczenia nr 1 Postać zmiennoprzecinkowa liczby Niech będzie dana liczba x R Mówimy, że x jest liczbą zmiennoprzecinkową jeżeli x = S M B E, gdzie: B N, B 2 (ustalona podstawa systemu liczbowego); S { 1, 1} (znak liczby x); M 1, B) (znormalizowana mantysa liczby x); E Z (wykładnik liczby x) Przykład 1 Niech B = 10 Wtedy dla M 1, 10) liczba rzeczywista x = 1 3, 147 10 2 jest liczbą zmiennoprzecinkową
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: E min = B n + 1; E max = B n 1; M min = 1; M max = B B (m 1) ; x min = M min B E min ; x max = M max B Emax Własności systemu zmiennoprzecinkowego Przykład 2 Niech B = 10, m = 4, n = 2 Wtedy: E min = 99; E max = 99; M min = 1; M max = 9, 999; x min = 1 1 10 99 ; x max = 1 9, 999 10 99
Własności systemu zmiennoprzecinkowego Zakres liczb możliwych do zapamiętania w naszym zmiennoprzecinkowym systemie liczbowym: x max, x min x min, x max 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 < x min, są traktowane jako tzw niedomiar Z kolei liczby x, takie że x > x max, 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 Normalizacja mantysy Jeśli x = S M B E i M / 1, 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
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 = 1 1, 644 10 2 (po zaokrągleniu) x = 1 1, 643 10 2 (po odcięciu) y = +0 Własności arytmetyki zmiennoprzecinkowej Uwaga 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
Dodawanie i odejmowanie zmiennoprzecinkowe Niech x 1 = S 1 M 1 B E 1 i = S 2 M 2 B E 2 Możemy założyć, że x 1 Jeśli E 1 E 2 0, to należy zrównać wykładnik E 1 z E 2 (tzw operacja wyrównywania wykładników) Otrzymujemy wtedy nową postać zmiennoprzecinkową liczby x 1 : x 1 = S 1 M 1 B E 2 Uwaga może przestać być znorma- Po zrównaniu wykładników mantysa M 1 lizowana Dodawanie i odejmowanie zmiennoprzecinkowe Teraz przyjmujemy: S = S 1, M = M 1 ± M 2 (lub M = M 1 ± M 2), E = E 2 Otrzymujemy liczbę S M B E Po normalizacji otrzymujemy liczbę zmiennoprzecinkową S M BE Wtedy: x 1 ± = S M B E
Dodawanie i odejmowanie zmiennoprzecinkowe Zadanie 2 Niech B = 10, m = 4, n = 2 Wyznaczyć zmiennoprzecinkową sumę x 1 + oraz y 1 + y 2, gdzie: x 1 = 1 3, 141 10 3 ; = 1 1, 019 10 1 ; y 1 = 1 3, 244 10 7 ; y 2 = 1 1, 001 10 2 Rozwiązanie (x 1 + ) = (x 1 + ) = 1 3, 151 10 3 ; (y 1 + y 2 ) = (y 1 + y 2 ) = 1 3, 244 10 7 Mnożenie zmiennoprzecinkowe Niech x 1 = S 1 M 1 B E 1 i = S 2 M 2 B E 2 Przyjmujemy: S = S 1 S 2, M = M 1 M 2, E = E 1 + E 2 Otrzymujemy liczbę S M B E Po normalizacji otrzymujemy liczbę zmiennoprzecinkową S M BE Wtedy: x 1 = S M B E
Mnożenie zmiennoprzecinkowe Zadanie 3 Wyznaczyć zmiennoprzecinkowy iloczyn x 1 oraz y 1 y 2 Rozwiązanie (x 1 ) = 1 3, 201 10 4 ; (x 1 ) = 1 3, 200 10 4 ; (y 1 y 2 ) = (y 1 y 2 ) = 1 3, 247 10 9 Dzielenie zmiennoprzecinkowe Niech x 1 = S 1 M 1 B E 1 i = S 2 M 2 B E 2 Przyjmujemy: S = S 1 S 2, Otrzymujemy liczbę S M B E M = M 1 M 2, E = E 1 E 2 Po normalizacji otrzymujemy liczbę zmiennoprzecinkową S M B E Wtedy: x 1 = S M B E
Dzielenie zmiennoprzecinkowe Zadanie 4 Wyznaczyć zmiennoprzecinkowy iloraz x 1 oraz y 1 y 2 Rozwiązanie ( x 1 ) = ( x 1 ) = 1 3, 082 10 2 ; ( y 1 y 2 ) = 1 3, 241 10 5 ; ( x 1 ) = 1 3, 240 10 5 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)
Przykłady Zadanie źle/dobrze uwarunkowane Przykład zadania źle/dobrze uwarunkowanego 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 Przykłady 25410 A = 21120 18720 15560 10000 B = 20000 10000 10000 E = 00010 00010 00010 00020 b = 46530 34280 x = x 1 Zadanie źle/dobrze uwarunkowane Przykład zadania źle/dobrze uwarunkowanego