Die Operationen mit Gleitkommazahlen sind im allgemeinen nicht informationstreu. Überdies gelten weder das Assoziativ- noch das Distributivgesetz. Wir zeigen dies der Anschaulichkeit halber wieder in dezimaler Schreibweise mit 4-stelliger Mantisse und nehmen hier an, dass bei der Normalisierung und Denormalisierung überzählige Stellen einfach ohne Rundung fortfallen.
Assoziativ-Gesetz
Mit den drei Zahlen
a = 9.857*10-3
b = 9.743*102
c = -9.742*102
ergibt sich
a + b = b
weil wegen des Exponenten die Mantisse von a um 5 Stellen geschoben wird und damit folgt weiter
(a + b) + c = b + c = 0.001*102
und nach Normalisierung
(a + b) + c = 1.000*10-1
Andererseits ergibt sich:
b + c = 1.000*10-1
a + (b + c) = 9.857*10-3 + 1.000*10-1
= 0.098*10-1 + 1.000*10-1
= 1.098*10-1
Für a + b + c ergeben sich also verschiedene Ergebnisse je nachdem, welche der beiden Additionen zuerst durchgeführt wird. Das Assoziativgesetz gilt für die Addition von Gleitkommazahlen also nicht.
Übungsaufgabe: Führen Sie die vorstehende Rechnung mit Rundung bei Normalisierung und Denormalisierung durch und zeigen Sie, dass das Assoziativgesetz auch dann nicht gilt.
Distributivgesetz
Mit den selben Zahlen a , b, c wie oben führen wir folgende Rechnung durch:
b + c = 1.000*10-1
a * (b + c) = 9.857*10-4
Andererseits hat man jeweils nach Beschneidung der Mantissen
a*b = 9.603*100
a*c = -9.602*100
a*b + a*c = 0.001*100
und nach Normalisierung
a*b + a*c = 1.000*10-3
Das Distributivgesetz gilt für Gleitkommazahlen also nicht.
Ein schönes Beispiel für Rundungsfehler ist in der Funktion testarithmetik( x , y ) realisiert. Der Ausdruck
9*x4 - y4 + 2*y2
wird sowohl mit der Rechner-internen Arithmetik ausgewertet wie auch mit der im Kapitel 2 eingeführten beliebig genauen Arithmetik. Beide Ergebnisse werden ausgegeben:
testarithmetik(10864,18817);
Man sieht dem glatten numerischen Ergebnis von 2 nicht an, dass es um den
Faktor 2 falsch ist. Bei geänderten Parametern gibt es auch Differenzen.
Diese fallen dann aber nicht so auf.
Die Ungültigkeit von Assoziativ- und Distributivgesetz hat zur Folge, dass sich Algorithmen für die selbe wissenschaftliche Aufgabe nicht nur durch ihre Effizienz unterscheiden sondern auch in ihrer Genauigkeit. Das wissenschaftliche Rechnen mit diesen beiden Aspekten ist ein wichtiges wissenschaftliches Thema, welches in der Überschneidung von Numerischer Mathematik und Informatik liegt.