von elias.koegel » Sa 5. Jul 2008, 19:51
Der Taschenrechner rechnet nicht binär, sondern mit Binary Coded Decimal. Zum Beispiel 48,03 wäre in BCD 0100 1000,0000 0011 , also in genau zwei Bytes speicherbar. Es wird praktisch jede Zehnerstelle in Binär umgewandelt und nicht die Zahl als ganzes. Das sollte die Frage beantworten, wie der GTR mit 0,4 rechnen kann. Die Zahlen in BCD zu speichern hat den Vorteil, dass eben solche Fälle wie mit 0,4 nicht undefiniert werden und somit Rechenfehler minimiert werden. Der Nachteil ist aber, dass die Rechengeschwindigkeit abnimmt, und das vermutlich gar nicht mal so gering.
Desweiteren speichert der GTR nicht die ganzen Zahlen einfach so, wie sie kommen, also zum Beispiel 21432293846, sondern immer als Gleitkommazahl. Diese Zahlen bestehen aus 3 Komponenten: Mantisse, Exponent und Basis. Die Basis ist beim GTR 10. Die Zahl hat dann die Form: Mantisse * Basis ^ Exponent. Die Basis muss nicht gespeichert werden, da sie im GTR immer gleich ist. Die o.g. Zahl würde dann so aussehen: 2,1432293846 * 10 ^ 10. Mit Kommazahlen geht das natürlich auch: 0,000234 entspricht 2,34 * 10 ^ -4. Ich denke, das sollte deine Frage beantworten, wie der GTR so große Zahlen speichern kann.
Interessant ist jetzt noch, wie eine Zahl abgespeichert wird. Wer schonmal beobachtet hat, wird festgestellt haben, dass eine Variable immer 10 Byte belegt. Ein Listenfeld ebenfalls. Nun kann man überlegen, wie der Speicher zusammengebaut ist. Durch den BCD-Code sind immer nur 4 Bit pro Ziffer nötig. Die Mantisse hat 16 Ziffern, also werden genau 8 Byte gebraucht. Der Exponent ist zweistellig, braucht also noch ein Byte. Das 10. Byte enthält dann weitere Informationen, wie zum Beispiel die Vorzeichen von Mantisse und Exponent.
Leider muss ich dich enttäuschen, denn der GTR hat definitiv kein CAS. Was du vermutest ist schon richtig. Es sind aber alles Rundungsfehler oder besser Glücksrundungen. Mache mal folgenden Versuch:
sqrt(2)
sqrt(Ans)
sqrt(Ans)
...
sqrt(Ans) (Bis nur noch 1 da steht)
Ans-1
Es wird plötzlich eine Zahl angezeigt und nicht wie zu erwarten Null. Der GTR zeigt von seinen 15 Stellen nur 10 an. Die restlichen 5 nutzt er für die Genauigkeit. Die kann man sich nur mit einigen mathematischen Tricks anzeigen lassen.
sqrt(2) wird als 1,4142... im Speicher abgelegt.
Die Genauigkeit für FMin im Run-Menü ist die gleiche, wie im Graph-Menü. Ich verstehe jetzt leider nicht genau, was du mit Schrittgröße meinst. Ich nehme an, dass du an ein anderes Verfahren denkst, wie das Minima bestimmt wird. Meines Wissens (oder besser nach meiner Vermutung) wird das Minima mithilfe des Newtonverfahrens ermittelt. Hier wäre die Anzahl der Interationen interessant. Aber da kann ich dir leider keine Auskunft geben. Ich weiß nur, dass das Ergebnis meist auf ausreichend viele Nachkommastellen genau ist, und bei weiteren Berechnungen keine Probleme macht.
Zum Newton-Verfahren, zur Gleitkommazahl und BCD kann dir Wikipedia noch ein ganzes Stück weiterhelfen.
Ansonsten hoffe ich, dass ich deine Fragen annähernd beantwortet habe. Wenn nicht, einfach nachhaken.