Grenzen des HP 49G

Die hier verwendete Notation ist in einem gesonderten Beitrag zusammengestellt.

Inhalt

Zur Beitragsübersicht


Einleitung

Der HP 49G ist ein sehr leistungsfähiger Taschenrechner. Man kann fast alles mit ihm berechnen. Grenzen sind ihm meist nur durch begrenzten Speicher oder durch Zahlenbereiche gesetzt, die sich nicht mehr darstellen lassen.

Reelle und entsprechend auch komplexe Zahlen sind begrenzt durch die Darstellbarkeit der Zahlenwerte
±9.99999999999 · 10
±499 = ±10±500. Größere bzw. kleinere Zahlen sind nicht mehr auf der Anzeige darstellbar oder werden als Null oder "unendlich" ausgewiesen. Berechnungen kann man natürlich auch noch in darüber hinausgehenden Zahlenbereichen mit dem HP 49G durchführen, wenn man entsprechend mitdenkt.

Mitdenken war früher beim Rechnen mit Rechenschieber und Logarithmen ganz selbstverständlich. Leider ist die Bereitschaft mitzudenken in dem Maße gesunken wie die Erwartungen an die Rechner und das Vertrauen in die Richtigkeit der ausgegebenen Ergebnisse gestiegen sind.

Ganze Zahlen (Integerzahlen) mit mehreren tausend Stellen können auf dem HP 49G im exakten Modus berechnet und dargestellt werden. Hier soll es nach Angaben von HP49-Experten nur von der Größe des zur Verfügung stehenden Benutzerspeichers abhängen, bei welcher Stellenzahl der Rechner nicht mehr mitmacht.

In diesem Beitrag sollen die bereits bekannten Grenzen des HP 49G für Zahlenbereiche und Genauigkeit gezeigt werden. Hier wird ein Beispiel für "zu große Zahlen" gezeigt. Die Betrachtungen gelten mit Einschränkungen auch für "zu kleine Zahlen", wenn man die Funktion [1/x] auf die großen Zahlen anwendet.

Zu große Zahlen

Wie im Beitrag Hochgenaue Integerfunktionen dargestellt, ist es möglich, Integerzahlen mit mehreren tausend Stellen zu erzeugen und damit zu rechnen.

Es soll jetzt versucht werden, die größte durch drei Ziffern darstellbare Zahl 999 zu berechnen.
Diese Zahl wird als 9(99) berechnet. Falsch wäre (99)9, was mit 981 (Zahl mit 78 Stellen) gleichgesetzt werden kann.

Exakte Berechnung

Als Integerzahl:

  1. Exakten Modus einstellen (Flag -105 = 0).
  2. Die Zahl 9 (im RPN-Modus) dreimal in den Stack stellen (in Stackebenen 1 bis 3)
  3. Zweimal die Taste [yx] drücken.

Wir erhalten die Fehlermeldung: "Integer too large". Diese Zahl überschreitet die Grenzen des HP 49G. Ein Ergebnis ist aber theoretisch möglich. 999 ist eine ganze Zahl mit 369693100 Stellen.

 

Näherungsberechnung

Vielleicht ist es möglich, die Zahl 999näherungsweise zu berechnen.

A) Als reelle Zahl (direkt mit dem HP 49G):

  1. Näherungsmodus einstellen (Flag -105 = 1).
  2. Die Zahl 9 (im RPN-Modus) dreimal in den Stack stellen (je in Stackebene 1 bis 3)
  3. Zweimal die Taste [yx] drücken.

Als Ergebnis kommt die Anzeige 9.99999999999E499 (bzw. eine Fehlermeldung, wenn das Flag -21 gesetzt ist). Das ist die Zahl 10500, die größte im HP 49G darstellbare reelle Zahl. Diese Zahl wird im Rechner dem Wert "unendlich" gleichgesetzt. Die Zahl 999 übersteigt 10500.

Dieses Ergebnis ist nicht brauchbar.

 

B) Als reelle Zahl (über Logarithmen)

Trotzdem kann man 999 (im Näherungsmodus) grob genähert berechnen.

Es sei an die Logarithmen erinnert. Im Beitrag "Bevor der Taschenrechner kam" werden sie kurz dargestellt.

Da der HP 49G 12-stellige Logarithmen bietet, benötigt man keine Logarithmentafeln, sondern kann alle Rechengänge mit dem Taschenrechner erledigen.

Aufgabenstellung:

Für die gesuchte Zahl Z = 999 gilt:
  • Z = a · 10x
  • log Z = x + log a

Zu berechnen sind x und a.

Lösungsweg:

  1. Zuerst ist 99 mit dem Taschenrechner im exakten Modus zu berechnen:
    99 = 387420489 (= genauer Wert).
  2. Dann muß Z = 999 = 9387420489 über Logarithmen berechnet werden.
    Hier werden dekadische Logarithmen (Basis 10) verwendet:
    log Z = log 999 = 387420489 · log 9 = 387420489 · 0.954242509439
    = 369693099.631
    =
    x + log a.
    Die Stellen vor dem Komma geben für Z den Exponenten x der Basis 10 und
    die Stellen nach dem Komma die Mantisse (= log a) an. Diese bestimmt die Ziffern der Zahl a.
    Jetzt ist also bekannt, daß nach der ersten Ziffer noch 369693099 andere Ziffern folgen.
    Die Multiplikation wurde auf dem Taschenrechner mit 12 signifikanten Stellen ausgeführt. Der berechnete Logarithmus müßte 9 Stellen vor dem Komma und 12 Nachkommastellen, also 21 signifikante Stellen, haben, wenn die Multiplikation mit Logarithmengenauigkeit ausgeführt worden wäre.
  3. Die Ziffern der Zahl a werden durch die Mantisse 0.631 bestimmt. Die Mantisse ist aufgrund der Taschenrechnerbeschränkung auf 12 signifikante Stellen nicht 12-stellig, sondern wird hier auf drei Stellen gerundet angezeigt, weil die restlichen Stellen vom 9-stelligen Exponenten "aufgefressen" wurden. Die zutreffende Mantisse dürfte also zwischen den Werten 6305 und 6315 liegen
    Minimum: log a = 0.6305, daraus folgt: a = 100.6305 = 4.27070919441 ,
    Maximum: log a = 0.6315, daraus folgt: a = 100.6315 = 4.28055419586.
  4. Also liegt Z = 999 = a · 10x zwischen 4.27070919441 · 10369693099
    und 4.28055419586 · 10
    369693099
  5. 999 ist also eine ganze Zahl, die mit 42...... anfängt und genau 369693100 Stellen hat. Aufgrund der gerundeten dreistelligen Mantisse 631 sind nur die ersten zwei Stellen der berechneten Zahl bekannt.

C) Als reelle Zahl über Logarithmen auf dem Umweg über Integer

Berechnungsgang wie bei B), jedoch "genauer":

  1. Zuerst wird 99 mit dem Taschenrechner im exakten Modus berechnet:
    99 = 387420489 (= genauer Wert).
  2. Jetzt 9387420489 über Logarithmen berechnen.
    Wieder dekadische Logarithmen (Basis 10):
    log 999 = 387420489 · log 9 = 387420489 · 0.954242509439
    (wegen der Rundung der letzten Stelle werden für den Logarithmus die Grenzen 0.9542425094385 und 0.9542425094395 genommen)
    Jetzt wird nicht die Multiplikation reeller Zahlen über den Näherungsmodus verwendet, sondern die Multiplikation zwei Integer im exakten Modus. Dazu muß der Logaritmus mit 1013 multipliziert und die erhaltene reelle Zahl durch R->I in eine Integerzahl umgewandelt werden. Dann diesen Logarithmus mit 387420489 multiplizieren und das Ergebnis wieder durch 1013 teilen.
    Halt! Keine Division ausführen! Nur Linksschieben des Dezimalpunkts in der VIEW-Ansicht um 13 Stellen und dann Zerlegung in Ganzzahlteil und Nachkommateil!
    Minimum: log 999 = 387420489 · log 9 = 387420489 · 9542425094385 · 10-13
    = 3696930996312507854265 · 10
    -13 = 369693099.6312507854265
    Maximum: log 999 = 387420489 · log 9 = 387420489 · 9542425094395 · 10-13
    = 3696930996316382059155 · 10
    -13 = 369693099.6316382059155
  3. Daraus ergibt sich
    Minimum: a = 100.6312507854265 = 4.27809855686
    Maximum: a = 100.6316382059155 = 4.28191661717
  4. Also liegt 999 zwischen 4.27809855686 · 10369693099 und 4.28191661717 · 10369693099
  5. 999 ist also eine ganze Zahl, die mit 42...... anfängt und genau 369693100 Stellen hat. Selbst aufgrund der "genaueren" Rechnung mit der 12-stelligen Mantisse können hier auch nur 2 Stellen der Zahl 999 genau ermittelt werden.

Ergebnisse im Vergleich

Bei B) wurde durchgehend mit dem (in der 12. Stelle gerundeten) Logarithmus gerechnet und am Schluß für das Ergebnis Maximum und Minimum ermittelt, bei C) dagegen wurde vorher für log 9 aufgrund der Rundung das mögliche Maximum und Minimum ermittelt und dann genau multipliziert. Beides ist nur eine Näherung, weil am Schluß delogarithmiert werden muß.

Am Beispiel der Zahl 999 wurde gezeigt, daß der HP 49G mit seinen Funktionen allein (Berechnung nach A) überfordert ist, aber durch Hinzunehmen anderer Funktionen doch eine Näherungslösung möglich ist, wobei eine genauere Rechnung über Integermultiplikation (C) gegenüber den reinen reellen Funktionen des HP 49G (B) kaum Vorteile bringt.

Größe der Zahl 999
Ausgedruckt (Zeichenbreite 1/10 Zoll = 2,54 mm) wäre die Zahl 999 in Ziffern 939 km lang. Bei einer Zeilenlänge von 80 Zeichen und 72 Zeilen pro Seite müßten 64183 Seiten gedruckt werden, um diese Zahl auf Papier darzustellen. Bei doppelseitigem Druck auf 80g-A4-Papier würde der Papierstapel 160 kg wiegen.

Bei 1 Byte pro Ziffer benötigt diese Zahl im Computer 369693100 Byte = 353 MB Speicherplatz. Selbst bei rein binärer Darstellung wären noch 146 MB nötig. Daß damit der HP 49G überfordert ist, dürfte nun klar sein.

Was folgt daraus?

Man sieht hier an dem Beispiel, daß der HP 49G mit der exakten Berechnung einer Zahl überfordert werden kann. Man sieht aber auch, daß durch Nachdenken und Ausnützen vorhandener Möglichkeiten des Taschenrechners die Berechnung in grober Näherung doch möglich ist. Falls die Funktionen reeller Zahlen (log, 10x) benutzt werden, hängt die Genauigkeit der Berechnung von den 12 signifikanten Stellen der Ergebnisdarstellung ab.

Gerade reelle Zahlen mit ihrer halblogarithmischen Darstellung #.###########E### lassen in ihrer Genauigkeit zu wünschen übrig, insbesondere in Bereichen mit großem Exponenten. Hier muß man die Beschränkung des Rechners durch Umwege auszugleichen versuchen. Wenn möglich, sollte man immer mit genauen Integerzahlen rechnen.

Nicht lösbar

Die in Hexaziffern dargestellte Zahl Z = FFF = F(FF) (= dezimal 151515 = 15(1515)) ist eine eindeutige ganze Zahl mit vielen Milliarden Stellen. Sie kann mit dem HP 49G nicht berechnet werden. Auch die Mathematiker können sie nicht berechnen.

Lösungsansatz:
1515 kann man im exakten Modus und den log 15 im Näherungsmodus berechnen.
Die Multiplikation log Z =1515 · log 15 schafft der HP 49G nicht mehr, die Mantisse verschwindet. Selbst mit den 12-stelligen Logarithmen des HP 49G kommt man zu keinem auch nur groben Ergebnis. Weder die genaue Stellenanzahl noch die erste Ziffer der Zahl lassen sich (mit unseren heutigen Hilfsmitteln) berechnen. Als Stellenanzahl von Z kann man lediglich die Größenordnung mit 5.15 · 1017 ermitteln. Die erste Ziffer kennen wir nicht, jedoch die letzte Ziffer von Z ist eine 5.

Nur um die Zahl Z = FFF zu speichern, wären 1018 Bytes, etwa 1012 MB nötig. Soviel Speicher besitzt kein normaler Rechner. Also kann man diese Zahl getrost vergessen.


Zum Beginn der Seite
Zur Beitragsübersicht

Copyright © 2002 Otto Praxl
Alle Rechte vorbehalten!