|
3.1.1 Typen von Zahlen
In Mathematica sind insgesamt vier Typen von Zahlen eingebaut.
Eingebaute Typen von Zahlen in Mathematica
Rationale Zahlen sind immer das Verhältnis zweier unkürzbarer ganzer Zahlen.
In[1]:= 12344/2222
Out[1]= 
Gleitpunktzahlen erkennt man am expliziten Dezimalpunkt.
In[2]:= 5456.
Out[2]= 
Eine Gleitpunktzahl kann eine beliebige Anzahl Stellen haben.
In[3]:= 4.54543523454543523453452345234543
Out[3]= 
Komplexe Zahlen können ganze oder rationale Zahlen als Komponenten haben.
In[4]:= 4 + 7/8 I
Out[4]= 
Sie können auch Gleitpunktzahlen als Komponenten haben.
In[5]:= 4 + 5.6 I
Out[5]= 
Mehrere Versionen der Zahl 123
In Mathematica können Sie die verschiedenen Typen der Zahlen an ihren Köpfen erkennen. (Obwohl Zahlen in Mathematica Köpfe haben wie andere Ausdrücke auch, verfügen sie über keine expliziten Elemente, die man herausziehen könnte.)
Das Objekt 123 wird als eine exakte ganze Zahl mit dem Kopf Integer betrachtet.
In[6]:= Head[123]
Out[6]= 
Durch die Anwesenheit eines expliziten Dezimalpunktes wird Mathematica veranlaßt, 123. als eine Gleitpunktzahl mit Kopf Real zu behandeln.
In[7]:= Head[123.]
Out[7]= 
Tests für verschiedene Typen von Zahlen
NumberQ[x] testet auf eine beliebige Zahl.
In[8]:= NumberQ[5.6]
Out[8]= 
5. wird als Real behandelt, deshalb ergibt IntegerQ False.
In[9]:= IntegerQ[5.]
Out[9]= 
Wenn Sie komplexe Zahlen ausgiebig verwenden, sollten Sie eine Feinheit beachten: Wenn Sie eine Zahl wie 123. eingeben, betrachtet Mathematica sie als Gleitpunktzahl, nimmt aber an, daß ihr Imaginärteil genau Null ist. Möglicherweise wollen Sie manchmal komplexe Gleitpunktzahlen eingeben, deren Imaginärteile zwar Null sind, aber nur bis zu einer bestimmten Präzision.
Wenn der Imaginärteil die exakte ganze Zahl 0 ist, dann vereinfacht Mathematica komplexe zu reellen Zahlen.
In[10]:= Head[ 123 + 0 I ]
Out[10]= 
Hier ist der Imaginärteil nur Null bis zu einer bestimmten Präzision, deshalb behält Mathematica die Form der komplexen Zahl bei.
In[11]:= Head[ 123. + 0. I ]
Out[11]= 
Die Unterscheidung zwischen komplexen Zahlen, deren Imaginärteile genau Null oder nur Null bis zu einer bestimmten Präzision sind, mag pedantisch erscheinen. Wenn wir jedoch in Abschnitt 3.2.7 zum Beispiel die Interpretation von Potenzen und Wurzeln komplexer Zahlen behandeln, wird sich dieser Unterschied als bedeutsam erweisen.
Den Typ einer Zahl in Mathematica kann man einfach bestimmen, indem man mit Head[ausdr] ihren Kopf herauszieht. Für viele Zwecke ist es jedoch besser, Funktionen wie IntegerQ zu benutzen, die explizit auf bestimmte Typen testen. Diese Funktionen sind so konstruiert, daß sie True zurückgeben, wenn ihr Argument offensichtlich vom geforderten Typ ist und sonst False. Folglich wird IntegerQ[x] False ergeben, wenn Sie x keinen expliziten ganzzahligen Wert zugewiesen haben.
Bei symbolischen Berechnungen wollen Sie jedoch möglicherweise manchmal x als ganze Zahl behandeln, obwohl Sie keinen expliziten ganzzahligen Wert zugewiesen haben. Sie können sich über die Voraussetzung, daß das Symbol x keine ganze Zahl ist, hinwegsetzen, indem Sie explizit eine Zuweisung der Form x/: IntegerQ[x] = True vornehmen. Diese Zuweisung spezifiziert, daß sich jedesmal True ergibt, wenn Sie x ausdrücklich mit IntegerQ testen. Sie sollten jedoch beachten, daß die Zuweisung den Kopf von x nicht wirklich ändert, so daß zum Beispiel x auch weiterhin nicht zu n_Integer paßt. Mathematica zieht auch nicht automatisch Schlüsse aufgrund dieser Zuweisung. So kann es zum Beispiel nicht allein auf Grundlage dieser Zuweisung feststellen, daß IntegerQ[x^2] auch True ist.
Da x nicht explizit den Kopf Integer hat, gibt IntegerQ False zurück.
In[12]:= IntegerQ[x]
Out[12]= 
Dies bestimmt, daß x tatsächlich eine ganze Zahl ist. x/: legt fest, daß die Regel mit x und nicht mit IntegerQ verbunden ist.
In[13]:= x/: IntegerQ[x] = True
Out[13]= 
Die Definition setzt sich über die Vorgabe-Annahme, daß x keine ganze Zahl ist, hinweg.
In[14]:= IntegerQ[x]
Out[14]= 
|