[ < ]
[ globale Übersicht ]
[ Kapitelübersicht ]
[ Stichwortsuche ]
[ > ]
Berechnung mit Mathematica
Gleichung:
x = 192119201
y = 35675640
z = (1682*x*y4 + 3*x3 + 29*x*y2 - 2*x5 + 832)
/ 107751
Für die folgenden Untersuchungen vereinfachen wir diese Gleichung zu:
z = (A + B + C - D + 832) / 107751
Mathematica - Multiple-Precsion Software - bietet drei Möglichkeiten:
- Berechnung in Precision infinity
- Berechnung mit vorgegebener Genauigkeit
- Berechnung in Maschinengenauigkeit
Die Berechnung mit Precision infinity gibt das richtige Ergebnis
von 1783.
Geben wir die Genauigkeit bei Gleitpunkteingabe vor, so ergibt
sich:
eingegebene Stellen | Resultat |
< =16 | 7.18056E+20 |
[ 17,35 ] | 0 |
> =36 | 1783 |
Der Grund für die abweichenden Ergebnisse liegt in der Eigenheit
der obiger Gleichung.
(A+B+C) und D sind sehr hohe Zahlen 5.234....E41, die sich in
der Darstellung in Zehnerpotenzen erst ab der 33. Stelle unterscheiden.
Die Differenz scheint auf den ersten Blick sehr klein zu sein.
Beachtet man aber die absolute Größe der verglichenen
Zahlen, so ergibt sich folgendes Bild:
Berechnung mit eingegebenen 36 Stellen:
Mathematica rechnet mit 35 Stellen, das entspricht einem p = 117.
Glieder des Zählers | Resultat |
A+B+C | 5.2346042643890356167265564481307605E+41 |
D | 5.2346042643890356167265564481307585E+41 |
Differenz: 1.92119E+8
Endresultat somit: (1.92119201E+8 + 832) / 107751 = 1783.
Das Resultat ist richtig!
Die Glieder des Zählers A+B+C bzw. D liegen in einem Intervall, das zwischen 2138 und 2139, also zwischen 3.48449E+41 und 6.96898E+41 liegt. Der Abstand der Maschinenzahlen ist in diesem Intervall ist 2138-117 = 2.0915E+06.
Daraus ergibt sich: innerhalb des Intervalls unterscheiden sich die Werte von A+B+C und D um 92 Schritte.
Berechnung mit eingegebenen 35 Stellen:
Mathematica rechnet mit 34 Stellen, das entspricht einem p = 113.
Glieder des Zählers | Resultat |
A+B+C | 5.23460426438903561672655644813076E+41 |
D | 5.234604264389035616726556448130759E+41 |
Differenz: 0E+7
Das Zwischenergebnis A+B+C-D ergibt einen scheinbar irrealen
Wert. Dieser Wert 0E+7 kann nicht eingegeben werden, er kann nur durch
Berechnung erzeugt werden.
Die weitere Verwendung dieses Wertes ergibt erstaunliche Resultate!
Der Grund für das Zwischenresultat ist der, daß
der Abstand der maschineninternen Zahlen auf der Zahlengerade bereits einen Wert von 2138-113 = 3.35544E+07 erreicht.
Durch Reduktion der Werte für A+B+C bzw. D auf 34 Stellen werden die letzten 7 Stellen abgeschnitten, und die Differenz mit 0 errechnet.
Mathematica erkennt aber, daß die voneinander subtrahierten Zahlen eine Größenordnung von E+41 haben und gibt daher an, daß die
Nulldifferenz nur dadurch entsteht, daß die letzten 7 Stellen nicht berücksichtigt werden. Das Zwischenrestultat ist daher: 0E+07.
Bei der weiteren Berechnung ordnet Mathematica das noch zu addierende Glied von 832, stellenwertmäßig richtig ein, d.h. in jenen Bereich, mit dem nicht mehr gerechnet wird (832 < 107). Damit fällt dieses Glied weg, der Zähler wird zu 0 und daher auch das Ergebnis.
Endresultat somit: (0.E+7 + 832) / 107751 = 0 / 107751 = 0.
Das Resultat ist falsch!
Berechnung mit eingegebenen 17 Stellen:
Der gleiche Effekt tritt bei einer Berechnung bis herunter auf
17 Stellen auf, wobei allerdings bei 17 Stellen die Differenz
von A+B+C zu D auf 0E+18 steigt.
Das Endresultat = 0E+13.
Das Resultat ist falsch!
Berechnung mit 16 Stellen = Maschinengenauigkeit:
Mathematica rechnet mit 16 Stellen, das entspricht einem p = 53.
Glieder des Zählers | Resultat |
A+B+C | 5.234604264389036E+41 |
D | 5.234604264389036E+41 |
Differenz: 7.737125245533627E+25
Endresultat somit: (7.737125245533627E+25 + 832) / 107751 = 7.180560037061026E+20.
Das Resultat ist falsch!
Der Wert für A+B+C und der Wert für D scheinen laut
obiger Darstellung gleich zu sein. Sie sind aber maschinenintern
so nicht darstellbar, und werden auf verschiedene
Punkte gerundet. Da in diesem Bereich der Abstand der maschineninternen Zahlen bei 2138-53 = 3.86856E+25 liegt, kommt
es zu einer viel zu hohen Differenz und damit zu einem falschen Resultat. Die Differenz entspricht 2 Schritte auf der Zahlengereaden.
Auswirkung der stellenbedingten Rundung
Um die enorme Auswirkung der stellenbedingten Rundung zu verdeutlichen,
sei die Differenz für die Darstellung von A+B+C mit p = 117 (bringt richtiges Resultat) und p = 113 gezeigt.
Darunter der Unterschied in der Darstellung zwischen p = 117 und p = 53 (Maschinengenauigkeit).
Die kursiv gedruckten Stellen werden jeweils weggerundet.
A+B+C Darstellung mit p = 117 im Vergleich zur Darstellung mit p = 113.
5.23460426438903561672655644813076050000000 1041 -
5.23460426438903561672655644813076000000000 1041
Differenz: 5E+07
A+B+C Darstellung p = 117 zu p =53
5.23460426438903561672655644813076050000000 1041 -
5.23460426438903600000000000000000000000000 1041
Differenz: -3.832734435518692395E+25
[ < ]
[ globale Übersicht ]
[ Kapitelübersicht ]
[ Stichwortsuche ]
[ > ]
Michaela Schuster