Gleitpunktzahlen - Institut für Numerische Mathematik

Werbung
Gleitpunktzahlen1
Die Menge der Gleitpunktzahlen ist gegeben durch
F̂pb, t, emin , emax q “ Fpb, t, emin , emax q Y Fd pb, t, emin , emax q,
§
Fpb, t, emin , emax q . . . normalisierte Gleitpunktzahlen
§
Fd pb, t, emin , emax q . . . denormalisierte Gleitpunktzahlen.
1 Literatur:
R. Plato: Numerische Mathematik kompakt (2010). Kapitel 16
1/8
Normalisierte Gleitpunktzahlen Fpb, t, emin , emax q
x “ σ ¨ M ¨ be
“ ˘0.d1 d2 . . . dt ˆ be ,
§
σ . . . Vorzeichen, b . . . Basis, emin ď e ď emax ,
§
M . . . Mantisse,
M“
t
ÿ
dk b´k ,
k“1
§
§
§
Ziffern der Mantisse d1 , . . . , dt P t0, 1, . . . , b ´ 1u,
d1 ‰ 0 “Normalisierung”,
t . . . Mantissenlänge.
Beispiel: x “ 3.0.
§ b “ 10: x “ 1 ¨ 3 ¨ 10´1 ¨ 101 “ `0.3 ˆ 101 .
`
˘
§ b “ 2: x “ 1 ¨ 1 ¨ 2´1 ` 1 ¨ 2´2 ¨ 22 “ `0.11 ˆ 22 .
2/8
Denormalisierte Gleitpunktzahlen Fd pb, t, emin , emax q
§
Grund für Fd pb, t, emin , emax q:
Füllung der Lücke in Fpb, t, emin , emax q zw. xmin und ´xmin ;
xmin “ bemin ´1 kleinste positive Zahl in Fpb, t, emin , emax q:
.
§
Darstellung denormalisierter Zahlen
xD “ σ ¨ M ¨ bemin
mit
M“
t
ÿ
dk b´k ,
d2 , . . . , dt P t0, 1, b ´ 1u.
k“2
Beachte: keine Normierung, d.h. d2 darf Null sein.
Kleinste positive denormalisierte Zahl: bemin ´t .
3/8
Beispiel: Doppeltes Grundformat F̂p2, 53, ´1021, 1024q
Verwendung:
§ “double” in C und Java,
§
Standarddarstellung von Zahlen in Matlab.
Speicherung einer Zahl in 64 Bits:
1 Bit: Vorzeichen
52 Bits: Mantisse ( 1 hidden bit)
11 Bits: Exponent bzw. Umschaltung norm./denorm. Zahlen
§
xmin pFq “ 2´1022 « 2.33 ¨ 10´308
§
xmax pFq “ bemax p1 ´ b´t q « 1.8 ¨ 10308
§
xmin pFd q “ 2´1021´53 « 5 ¨ 10´324
§
eps “ 1.1 ¨ 10´16 .
4/8
Rundung
Die Abbildung rd : R Ñ Fpb, t, emin , emax q mit x ÞÑ rdpxq heißt
Rundung, falls
|rdpxq ´ x| “ min |y ´ x|.
yPF
Der relative Fehler einer gerundeten Zahl xmin pFq ď |x| ď xmax pFq
lässt sich folgendermaßen abschätzen:
|rdpxq ´ x|
1
ď b´t`1 “: eps
|x|
2
eps ... Maschinengenauigkeit.
§
Abstand der zu 1.0 nächstgrößeren Zahl: 2eps.
§
Doppeltes Grundformat: eps “ 0.5 ¨ 2´53`1 « 1.1 ¨ 10´16 .
5/8
Gleitpunktarithmetik
Schon elementare Rechenoperationen von GPZ führen zu Resultaten, die
nicht in F liegen, d. h.
§
Maschinenoperationen ‘, a, b, m stimmen im Allgemeinen nicht
mit den entsprechenden exakten Operationen `, ´, ¨, { überein.
Standard für Genauigkeit von Maschinenoperationen (IEEE 754)
Für x, y P F und xmin pFq ď |x ˝ y| ď xmax pFq muss gelten
x ˝ y “ rdpx ˛ yq,
für alle ˝ P t‘, a, b, mu, wobei ˛ P t`, ´, ¨, {u die dazugehörige
exakte Rechenoperation ist.
Der obige Standard wird
‘ auch für weitere elementare Rechenoperationen,
wie z. B. für sin, cos, , . . . gefordert.
6/8
Fehlerverstärkung bei Grundrechenoperationen
Fragestellung: Kann es bei Grundrechenoperationen zu einer erheblichen
Fehlerverstärkung kommen, wenn mit Gleitpunktzahlen gerechnet wird?
Beispiel: Berechnung von
ˆ
f pxq “ x3
x
1
´
x2 ´ 1
x
˙
für x “ 1.2 ¨ 107 .
Berechnungen im doppeltem Grundformat. Graue Ziffern sind fehlerhafte Ziffern:
x m px b x a 1q “: η1 “ 8.333333333333391 ¨ 10´8
1 m x “: η2 “ 8.333333333333334 ¨ 10´8
x3 “ η3 “: 1.728 ¨ 1021
η4 :“ η1 a η2 “ 5.691 . . . ¨ 10´22
f pxq “ η3 b η4 “ 0.983 . . .
Interpretation der Ergebnisse:
§ Auslöschung ist bei η4 aufgetreten.
§ Ausweg: Berechnung von f pxq durch
1
1´x´2
liefert f pxq “ 1.000000000000007
(alle Stellen stimmen).
7/8
a) Fehlerverstärkung bei Addition und Subtraktion
Seien x, y P R und xmin pFq ď |x ` y| ď xmax pFq. Dann gilt:
ˇ
ˇ
ˇ xδx
|rdpxq ` rdpyq ´ px ` yq|
yδy ˇˇ
|x| ` |y|
“ ˇˇ
`
ď eps
,
|x ` y|
x`y
x`yˇ
|x ` y|
wobei δx “
rdpxq´x
x
und δy “
rdpyq´y
y
sind.
§ Haben x und y dasselbe Vorzeichen ist die relative Fehlerverstärkung durch eps beschränkt.
§ Für x « ´y kann es zu einer großen Fehlerverstärkung kommen, weil 1 sehr groß ist.
|x`y|
b) Fehlerverstärkung bei Multiplikation und Division
Seien x, y P R und xmin pFq ď |x ¨ y| ď xmax pFq. Dann gilt:
|rdpxq ¨ rdpyq ´ px ¨ yq|
ď 3eps.
|x ¨ y|
§ Bei der Multiplikation (und Division) ist der relative Fehler zweier gerundeten Zahlen durch
3eps beschränkt.
8/8
Herunterladen