Vorige: Einführung in Zahlen, Nach oben: Zahlen [Inhalt][Index]
Konvertiert alle Zahlen im Ausdruck expr in große Gleitkommazahlen.
Die Anzahl der Stellen wird durch die Optionsvariable
fpprec
spezifiziert.
Hat die Optionsvariable float2bf
den Wert false
, gibt Maxima eine
Warnung aus, wenn eine Gleitkommazahl mit doppelter Genauigkeit in eine
große Gleitkommazahl umgewandelt wird.
Siehe auch die Funktion und den Auswertungsschalter float
sowie die
Optionsvariable numer
für die Umwandlung von Zahlen in Gleitkommazahlen
mit doppelter Genauigkeit.
Beispiele:
(%i1) bfloat([2, 3/2, 1.5]); (%o1) [2.0b0, 1.5b0, 1.5b0] (%i2) bfloat(sin(1/2)); (%o2) 4.79425538604203b-1 (%i3) bfloat(%pi),fpprec:45; (%o3) 3.1415926535897932384626433832795028841971694b0
Gibt den Wert true
zurück, wenn das Argument number eine
große Gleitkommazahl ist, ansonsten den Wert false
.
Siehe auch die Funktionen numberp
, floatnump
,
ratnump
und integerp
.
Beispiele:
(%i1) bfloatp(1.5b0); (%o1) true (%i2) a:bfloat(%e); (%o2) 2.718281828459045b0 (%i3) bfloatp(a); (%o3) true (%i4) bfloatp(1.5); (%o4) false
Standardwert: false
Die Optionsvariable bftorat
kontrolliert die Umwandlung von großen
Gleitkommazahlen in rationale Zahlen. Hat bftorat
den Wert false
,
wird die Genauigkeit der Umwandlung von der Optionsvariablen
ratepsilon
kontrolliert. Hat dagegen bftorat
den Wert
true
, wird die große Gleitkommazahl exakt durch die rationale Zahl
repräsentiert.
Hinweis: bftorat
hat keinen Einfluss auf die Umwandlung in rationale
Zahlen mit der Funktion rationalize
.
Beispiel:
(%i1) ratepsilon:1e-4; (%o1) 1.e-4 (%i2) rat(bfloat(11111/111111)), bftorat:false; `rat' replaced 9.99990999991B-2 by 1/10 = 1.0B-1 1 (%o2)/R/ -- 10 (%i3) rat(bfloat(11111/111111)), bftorat:true; `rat' replaced 9.99990999991B-2 by 11111/111111 = 9.99990999991B-2 11111 (%o3)/R/ ------ 111111
Standardwert: true
Hat die Optionsvariable bftrunc
den Wert true
, werden bei der
Ausgabe einer großen Gleitkommazahl nachfolgende Nullen nicht angezeigt.
Beispiele:
(%i1) bftrunc:true; (%o1) true (%i2) bfloat(1); (%o2) 1.0b0 (%i3) bftrunc:false; (%o3) false (%i4) bfloat(1); (%o4) 1.000000000000000b0
Ist das Argument expr eine gerade ganze Zahl, wird true
zurückgegeben. In allen anderen Fällen wird false
zurückgegeben.
evenp
gibt für Symbole oder Ausdrücke immer den Wert false
zurück, auch wenn das Symbol als gerade ganze Zahl deklariert ist oder der
Ausdruck eine gerade ganze Zahl repräsentiert. Siehe die Funktion
featurep
, um zu testen, ob ein Symbol oder Ausdruck eine gerade
ganze Zahl repräsentiert.
Beispiele:
(%i1) evenp(2); (%o1) true (%i2) evenp(3); (%o2) false (%i3) declare(n, even); (%o3) done (%i4) evenp(n); (%o4) false (%i5) featurep(n, even); (%o5) true
Die Funktion float
konvertiert ganze, rationale und große
Gleitkommazahlen, die im Argument expr enthalten sind, in Gleitkommazahlen
mit doppelter Genauigkeit.
float
ist auch eine Optionsvariable mit dem Standardwert false
und
ein Auswertungsschalter für die Funktion ev
. Erhält die
Optionsvariable float
den Wert true
, werden rationale und
große Gleitkommazahlen sofort in Gleitkommazahlen umgewandelt. Als
Auswertungsschalter der Funktion ev
hat float
denselben Effekt,
ohne dass die Optionsvariable float
ihren Wert ändert. Im Unterschied
zur Funktion float
werden durch das Setzen der Optionsvariablen oder bei
Verwendung als Auswertungsschalter keine ganze Zahlen in Gleitkommazahlen
umgewandelt. Daher können die beiden Kommandos ev(expr, float)
und
float(expr)
ein unterschiedliches Ergebnis haben.
Siehe auch die Optionsvariable numer
.
Beispiele:
In den ersten zwei Beispielen werden die Zahlen 1/2
und 1
in eine
Gleitkommazahl umgewandelt. Die Sinusfunktion vereinfacht sodann zu einem
numerischen Wert. Das Auswertungsschalter float
wandelt ganze Zahlen
nicht in eine Gleitkommazahl um. Daher wird sin(1)
nicht zu einem
numerischen Wert vereinfacht.
(%i1) float(sin(1/2)); (%o1) 0.479425538604203 (%i2) float(sin(1)); (%o2) .8414709848078965 (%i3) sin(1/2),float; (%o3) 0.479425538604203 (%i4) sin(1),float; (%o4) sin(1)
Standardwert: true
Hat die Optionsvariable float2bf
den Wert false
, wird eine
Warnung ausgegeben, wenn eine Gleitkommazahl in eine große Gleitkommazahl
umgewandelt wird, da die Umwandlung zu einem Verlust an Genauigkeit führen
kann.
Beispiele:
(%i1) float2bf:true; (%o1) true (%i2) bfloat(1.5); (%o2) 1.5b0 (%i3) float2bf:false; (%o3) false (%i4) bfloat(1.5); bfloat: converting float 1.5 to bigfloat. (%o4) 1.5b0
Gibt den Wert true
zurück, wenn das Argument number eine
Gleitkommazahl ist. Ansonsten wird false
zurückgegeben. Auch wenn
number eine große Gleitkommazahl ist, ist das Ergebnis false
.
Siehe auch die Funktionen numberp
, bfloatp
,
ratnump
und integerp
.
Beispiele:
(%i1) floatnump(1.5); (%o1) true (%i2) floatnump(1.5b0); (%o2) false
Standardwert: 16
ffprec
ist die Zahl der Stellen für das Rechnen mit großen
Gleitkommazahlen. ffprec
hat keinen Einfluß auf das Rechnen mit
Gleitkommazahlen in doppelter Genauigkeit. Siehe auch bfloat
und
fpprintprec
.
Beispiele:
(%i1) fpprec:16; (%o1) 16 (%i2) bfloat(%pi); (%o2) 3.141592653589793b0 (%i3) fpprec:45; (%o3) 45 (%i4) bfloat(%pi); (%o4) 3.1415926535897932384626433832795028841971694b0 (%i5) sin(1.5b0); (%o5) 9.97494986604054430941723371141487322706651426b-1
Standardwert: 0
fpprintprec
ist die Anzahl der Stellen, die angezeigt werden, wenn eine
Gleitkommazahl ausgegeben wird.
Hat fpprintprec
einen Wert zwischen 2 und 16, ist die Anzahl der
angezeigten Stellen für einfache Gleitkommazahlen gleich dem Wert von
fpprintprec
. Hat fpprintprec
den Wert 0 oder ist größer als
16 werden 16 Stellen angezeigt.
Hat für große Gleitkommazahlen fpprintprec
einen Wert zwischen 2
und fpprec
, ist die Anzahl der angezeigten Stellen gleich
fpprintprec
. Ist der Wert von fpprintprec
gleich 0 oder
größer als fpprec
werden fpprec
Stellen angezeigt.
fpprintprec
kann nicht den Wert 1 erhalten.
Beispiele:
(%i1) fpprec:16; (%o1) 16 (%i2) fpprintprec:5; (%o2) 5 (%i3) float(%pi); (%o3) 3.1416 (%i4) bfloat(%pi); (%o4) 3.1415b0 (%i5) fpprintprec:25; (%o5) 25 (%i6) bfloat(%pi); (%o6) 3.141592653589793b0 (%i7) bfloat(%pi); (%o7) 3.141592653589793b0 (%i8) fpprec:45; (%o8) 45 (%i9) bfloat(%pi); (%o9) 3.141592653589793238462643b0 (%i10) fpprintprec:45; (%o10) 45 (%i11) bfloat(%pi); (%o11) 3.1415926535897932384626433832795028841971694b0
Hat den Rückgabewert true
, wenn das Argument number eine ganze
Zahl ist. In allen anderen Fällen gibt integerp
den Wert false
zurück.
integerp
gibt für Symbole oder Ausdrücke immer den Wert false
zurück, auch wenn das Symbol als ganze Zahl deklariert ist oder der Ausdruck
eine ganze Zahl repräsentiert. Siehe die Funktion featurep
, um zu
testen, ob ein Symbol oder Ausdruck eine ganze Zahl repräsentiert.
Beispiele:
(%i1) integerp (1); (%o1) true (%i2) integerp (1.0); (%o2) false (%i3) integerp (%pi); (%o3) false (%i4) declare (n, integer)$ (%i5) integerp (n); (%o5) false
Standardwert: false
Die Optionsvariable m1pbranch
kontrolliert die Vereinfachung der
Exponentiation von -1
für den Fall, dass die Optionsvariable
domain
den Wert complex
hat. Hat m1pbranch
für diesen
Fall den Wert true
, wird die Exponentiation von -1
zu einem
Ausdruck vereinfacht, der dem Hauptwert entspricht. Die Auswirkung der
Optionsvariable m1pbranch
ist in der folgenden Tabelle gezeigt.
domain:real (-1)^(1/3): -1 (-1)^(1/4): (-1)^(1/4) domain:complex m1pbranch:false m1pbranch:true (-1)^(1/3) 1/2+%i*sqrt(3)/2 (-1)^(1/4) sqrt(2)/2+%i*sqrt(2)/2
Siehe auch die Optionsvariable numer_pbranch
.
Gibt den Wert true
zurück, wenn number
eine ganze positive Zahl
oder Null ist. Siehe auch integerp
.
Beispiele:
(%i1) nonnegintegerp(2); (%o1) true (%i2) nonnegintegerp(-2); (%o2) false
Hat das Ergebnis true
, wenn number eine ganze, rationale, eine
Gleitkommazahl oder eine große Gleitkommazahl ist. Ansonsten ist das
Ergebnis false
.
numberp
gibt für ein Symbol immer das Ergebnis false
zurück.
Dies ist auch dann der Fall, wenn das Symbol eine numerische Konstante wie
%pi
ist oder wenn das Symbol mit der Funktion declare
eine
Eigenschaft wie integer
, real
oder complex
erhalten
hat.
Beispiele:
(%i1) numberp (42); (%o1) true (%i2) numberp (-13/19); (%o2) true (%i3) numberp (3.14159); (%o3) true (%i4) numberp (-1729b-4); (%o4) true (%i5) map (numberp, [%e, %pi, %i, %phi, inf, minf]); (%o5) [false, false, false, false, false, false] (%i6) declare(a,even, b,odd, c,integer, d,rational, e,real); (%o6) done (%i7) map (numberp, [a, b, c, d, e]); (%o7) [false, false, false, false, false]
Standardwert: false
Hat die Optionsvariable numer
den Wert true
, werden rationale
Zahlen und große Gleitkommazahlen in Gleitkommazahlen umgewandelt.
Weiterhin werden Konstante wie zum Beispiel %pi
, die einen
numerischen Wert haben, durch diesen ersetzt. Mathematische Funktionen mit
numerischen Argumenten vereinfachen zu einer Gleitkommazahl. Wird die
Optionsvariable numer
gesetzt, erhält die Optionsvariable
float
denselben Wert. Im Unterschied zur Optionsvariablen float
vereinfachen auch mathematische Funktionen mit einem ganzzahligen Wert wie zum
Beispiel sin(1)
zu einem numerischen Wert.
numer
ist auch ein Auswertungsschalter der Funktion ev
. Der
Auswertungsschalter hat die gleiche Funktionsweise wie die Optionsvariable,
ohne dass die Optionsvariable ihren Wert ändert.
Beispiele:
Erhält numer
den Wert true
, werden rationale Zahlen, Konstante
mit einem numerischen Wert und mathematische Funktionen mit numerischen
Argumenten zu einer Gleitkommazahl ausgewertet oder vereinfacht.
(%i1) numer:false; (%o1) false (%i2) [1, 1/3, %pi, sin(1)]; 1 (%o2) [1, -, %pi, sin(1)] 3 (%i3) numer:true; (%o3) true (%i4) [1, 1/3, %pi, sin(1)]; (%o4) [1, .3333333333333333, 3.141592653589793, .8414709848078965]
numer
ist auch ein Auswertungsschalter der Funktion ev
. Hier wird
die Kurzschreibweise der Funktion ev
verwendet.
(%i1) [sqrt(2), sin(1), 1/(1+sqrt(3))]; 1 (%o1) [sqrt(2), sin(1), -----------] sqrt(3) + 1 (%i2) [sqrt(2), sin(1), 1/(1+sqrt(3))],numer; (%o2) [1.414213562373095, .8414709848078965, .3660254037844387]
Standardwert: false
Die Optionsvariable numer_pbranch
kontrolliert die Vereinfachung der
Exponentiation einer negativen ganzen, rationalen oder Gleitkommazahl.
Hat numer_pbranch
den Wert true
und ist der Exponent eine
Gleitkommazahl oder hat die Optionsvariable numer
den Wert true
,
dann berechnet Maxima den Hauptwert der Exponentiation. Ansonsten wird ein
vereinfachter Ausdruck, aber nicht numerischer Wert zurückgegeben. Siehe auch
die Optionsvariable m1pbranch
.
Beispiele:
(%i1) (-2)^0.75; (%o1) (-2)^0.75 (%i2) (-2)^0.75,numer_pbranch:true; (%o2) 1.189207115002721*%i-1.189207115002721 (%i3) (-2)^(3/4); (%o3) (-1)^(3/4)*2^(3/4) (%i4) (-2)^(3/4),numer; (%o4) 1.681792830507429*(-1)^0.75 (%i5) (-2)^(3/4),numer,numer_pbranch:true; (%o5) 1.189207115002721*%i-1.189207115002721
Die Variablen x_1, …, x_n erhalten die numerischen Werte
val_1, …, val_n
. Die numerischen Werte werden immer dann
für die Variablen in Ausdrücke eingesetzt, wenn die Optionsvariable
numer
den Wert true
hat. Siehe auch ev
.
Die Argumente val_1, …, val_n können auch beliebige Ausdrücke sein, die wie numerische Werte für Variablen eingesetzt werden.
Beispiele:
(%i1) numerval(a, 123, b, x^2)$ (%i2) [a, b]; (%o2) [a, b] (%i3) numer:true; (%o3) true (%i4) [a, b]; 2 (%o4) [123, x ]
Gibt true
zurück, wenn das Argument expr eine ungerade ganze Zahl
ist. In allen anderen Fällen wird false
zurückgegeben.
oddp
gibt für Symbole oder Ausdrücke immer den Wert false
zurück, auch wenn das Symbol als ungerade ganze Zahl deklariert ist oder der
Ausdruck eine ungerade ganze Zahl repräsentiert. Siehe die Funktion
featurep
, um zu testen, ob ein Symbol oder Ausdruck eine ungerade
ganze Zahl repräsentiert.
Beispiele:
(%i1) oddp(3); (%o1) true (%i2) oddp(2); (%o2) false (%i3) declare(n,odd); (%o3) done (%i4) oddp(n); (%o4) false (%i5) featurep(n,odd); (%o5) true
Standardwert: 2.0e-15
Die Optionsvariable ratepsilon
kontrolliert die Genauigkeit, mit der
Gleitkommazahlen in rationale Zahlen umgewandelt werden, wenn die
Optionsvariable bftorat
den Wert false
hat. Für ein Beispiel
siehe die Optionsvariable bftorat
.
Konvertiert alle Gleitkommazahlen einschließlich großer Gleitkommazahlen, die in dem Ausdruck expr auftreten, in rationale Zahlen.
Es mag überraschend sein, dass rationalize(0.1)
nicht das Ergebnis
1/10
hat. Dies ist nicht speziell für Maxima. Ursache ist, dass die
gebrochene Zahl 1/10
in der internen Darstellung als binäre Zahl keine
endliche Darstellung hat.
Siehe auch die Funktionen float
und bfloat
sowie die
Auswertungsschalter float
und numer
, um eine rationale Zahl
in eine Gleitkommazahl umzuwandeln.
Beispiele:
(%i1) rationalize (0.5); 1 (%o1) - 2 (%i2) rationalize (0.1); 3602879701896397 (%o2) ----------------- 36028797018963968 (%i3) fpprec : 5$ (%i4) rationalize (0.1b0); 209715 (%o4) ------- 2097152 (%i5) fpprec : 20$
(%i6) rationalize (0.1b0); 236118324143482260685 (%o6) ---------------------- 2361183241434822606848
(%i7) rationalize (sin (0.1*x + 5.6));
3602879701896397 x 3152519739159347 (%o7) sin(------------------ + ----------------) 36028797018963968 562949953421312
(%i8) float(%); (%o8) sin(0.1 x + 5.6)
Gibt true
zurück, wenn number eine ganze oder rationale Zahl ist.
In allen anderen Fällen ist das Ergebnis false
.
Siehe auch die Funktionen numberp
, integerp
,
floatnump
und bfloatp
.
Beispiele:
(%i1) ratnump(1/2); (%o1) true (%i2) ratnump(3); (%o2) true (%i3) ratnump(3.0); (%o3) false
Vorige: Einführung in Zahlen, Nach oben: Zahlen [Inhalt][Index]