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