Vorige: , Nach oben: Zahlen   [Inhalt][Index]

5.1.2 Funktionen und Variablen für Zahlen

Funktion: bfloat (expr)

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
Funktion: bfloatp (number)

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
Optionsvariable: bftorat

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
Optionsvariable: bftrunc

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
Funktion: evenp (expr)

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
Funktion: float (expr)
Optionsvariable: float

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)
Optionsvariable: float2bf

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
Funktion: floatnump (number)

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
Optionsvariable: fpprec

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
Optionsvariable: fpprintprec

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
Funktion: integerp (number)

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
Optionsvariable: m1pbranch

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.

Funktion: nonnegintegerp (number)

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
Funktion: numberp (number)

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]
Optionsvariable: numer

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.

Siehe auch float und %enumer.

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]
Optionsvariable: numer_pbranch

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
Funktion: numerval (x_1, val_1, …, var_n, val_n)

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 ]
Funktion: oddp (expr)

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
Optionsvariable: ratepsilon

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.

Funktion: rationalize (expr)

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)
Funktion: ratnump (number)

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: , Nach oben: Zahlen   [Inhalt][Index]