Maschinenzahlen < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 00:27 Fr 18.10.2013 | Autor: | Zero_112 |
Aufgabe | Es sei M(b,t,m) die Menge aller in normalisierter Gleitpunktdarstellung codierbaren Maschinenzahlen für die Basis b, die Mantissenlänge t und die Exponentenlänge m (einschließlich der Null).
Berechnen Sie in M(10,3,3) mit üblicher Rundung die Summe: F = [mm] 1+\summe_{i=1}^{1000}0.001 [/mm]
a) Stück für Stück von links nach rechts addieren
b) Stück für Stück von rechts nach links addieren
Erklären Sie warum verschiedene Ergebnisse herauskommen und sagen Sie, welche Alternative besser ist. |
Hallo.
Ich habe allgemein einige Unsicherheiten im Umgang mit Maschinenzahlen.
Mantissenlänge 3 bedeutet doch, dass Zahlen diese Form haben: "x.xx" (also 2 Nachkommastellen), oder?
Die Aufgabe würde ich dementsprechend so lösen:
a) [mm] 1+\summe_{i=1}^{1000}0.001 [/mm] = [mm] 1+0.001+\summe_{i=2}^{1000}0.001 [/mm] = gl(1.001) + [mm] \summe_{i=2}^{1000}0.001 [/mm] = 1+ [mm] \summe_{i=2}^{1000}0.001 [/mm] = ...= 1
Bei b) bin ich mir aber irgendwie nicht sicher, ich würde einfach die Summe ausrechnen, also [mm] \summe_{i=1}^{1000}0.001 [/mm] = 1 und dann noch zur anderen 1 addieren, sodass 2 rauskommt.
Ist es richtig, dass 0.001 nicht in M(10,3,3) liegt, da sie Mantissenlänge 4 hat?
|
|
|
|
> Es sei M(b,t,m) die Menge aller in normalisierter
> Gleitpunktdarstellung codierbaren Maschinenzahlen für die
> Basis b, die Mantissenlänge t und die Exponentenlänge m
> (einschließlich der Null).
Leider hast du nicht ganz exakt beschrieben, was mit der
"normalisierten" Darstellung im Detail gemeint ist (siehe
unten !).
> Berechnen Sie in M(10,3,3) mit üblicher Rundung die
> Summe: F = [mm]1+\summe_{i=1}^{1000}0.001[/mm]
> a) Stück für Stück von links nach rechts addieren
> b) Stück für Stück von rechts nach links addieren
>
> Erklären Sie warum verschiedene Ergebnisse herauskommen
> und sagen Sie, welche Alternative besser ist.
> Hallo.
>
> Ich habe allgemein einige Unsicherheiten im Umgang mit
> Maschinenzahlen.
> Mantissenlänge 3 bedeutet doch, dass Zahlen diese Form
> haben: "x.xx" (also 2 Nachkommastellen), oder?
Das ist aber erst die Mantisse. Die Maschinenzahl enthält
aber außerdem den Exponenten (hier zur Basis 10), der
offenbar auch 3 Stellen haben darf.
> Die Aufgabe würde ich dementsprechend so lösen:
>
> a) [mm]1+\summe_{i=1}^{1000}0.001[/mm] =
> [mm]1+0.001+\summe_{i=2}^{1000}0.001[/mm] = gl(1.001) +
> [mm]\summe_{i=2}^{1000}0.001[/mm] = 1+ [mm]\summe_{i=2}^{1000}0.001[/mm] =
> ...= 1
Ja, ich denke, das siehst du richtig. Weil schon für die
Darstellung der Zahl 1.001 eine vierstellige Mantisse
notwendig ist, ergibt die Summe der ersten zwei
Summanden
[mm] 1.00*10^0+1.00*10^{-3} \approx 1.00*10^0
[/mm]
Und so wie der zweite Summand fallen dann natürlich
auch alle weiteren Summanden der Auslöschung bzw.
Absorption durch den Rundungsprozess zum Opfer,
sodass am Ende die Anfangs-Eins immer noch ganz
jämmerlich und EINS-am dasteht !
> Bei b) bin ich mir aber irgendwie nicht sicher, ich würde
> einfach die Summe ausrechnen, also [mm]\summe_{i=1}^{1000}0.001[/mm]
> = 1 und dann noch zur anderen 1 addieren, sodass 2
> rauskommt.
Ich denke, man sollte sich die aufeinander folgenden
Teilsummen auch hier klar machen:
1. Addition: [mm] 1.00*10^{-3}+1.00*10^{-3}=2.00*10^{-3}
[/mm]
2. Addition: [mm] 2.00*10^{-3}+1.00*10^{-3}=3.00*10^{-3}
[/mm]
.....
.....
998. Addition: [mm] 9.98*10^{-1}+1.00*10^{-3}=9.99*10^{-1}
[/mm]
999. Addition: [mm] 9.99*10^{-1}+1.00*10^{-3}=1.00*10^{0}
[/mm]
1000. Addition: [mm] 1.00*10^{0}+1.00*10^{0}=2.00*10^{0}
[/mm]
(ohne absolute Gewähr - weil ich nicht ganz detailliert
weiß, wie Überträge gehandhabt werden)
> Ist es richtig, dass 0.001 nicht in M(10,3,3) liegt, da sie
> Mantissenlänge 4 hat?
Nein; diese Zahl gehört sehr wohl dazu, denn ihre echte
Mantisse besteht ja nur aus der Ziffer 1. Die Zahl wird
ja dargestellt als [mm] 1.00*10^{-3}
[/mm]
Anmerkung: ich habe noch gesehen, dass es für die
"Normalisierung" verschiedene Systeme bzw. eben
"Normen" gibt: entweder gesamte Mantisse hinter
dem Dezimalpunkt (und vorne dran eine 0, welche
aber dann eigentlich gar nicht mehr notiert bzw.
gespeichert werden muss) - oder aber konsequent
die erste Stelle vor dem Dezimalpunkt und der Rest
dahinter.
Dies spielt aber für die vorliegende Aufgabe eigentlich
keine wesentliche Rolle.
Ich hoffe wenigstens, dass ich die Aufgabenstellung
prinzipiell richtig aufgefasst habe ...
LG , Al-Chw.
|
|
|
|