Div, Mod , Gcd , Lcm , <<, >> , FromBase, ToBase , Precision , GetPrecision , N , Rationalize , IsPrime , IsPrimePower , Factors , Factor , PAdicExpand , ContFrac , Decimal , TruncRadian , Floor , Ceil , Round , Pslq .

Weitere Operationen mit Zahlen

Zusätzlich zu den im vorigen Abschnitt beschriebenen Grundrechenarten lassen sich die folgenden Funktionen auf Zahlen anwenden. Viele dieser Funktionen lassen sich auch auf Polynome anwenden.

Div, Mod Division mit Rest
Gcd größter gemeinsamer Teiler
Lcm kleinstes gemeinsames Vielfaches
<<, >> Schiebeoperatoren
FromBase, ToBase Umrechnung zwischen unterschiedlichen Stellenwertsystemen
Precision Rechengenauigkeit einstellen
GetPrecision eingestellte Rechengenauigkeit ermitteln
N numerischen Näherungswert berechnen
Rationalize Umwandlung von Dezimalzahlen in Brüche
IsPrime testen, ob das Argument eine Primzahl ist
IsPrimePower testen, ob das Argument eine Primzahlpotenz ist
Factors Primfaktorzerlegung
Factor Primfaktorzerlegung mit formatierter Ausgabe
PAdicExpand p-adische Erweiterung
ContFrac Umwandlung in einen Kettenbruch
Decimal Umwandlung eines Bruches in die vollständige Dezimaldarstellung
TruncRadian Umwandlung ins Bogenmaß modulo 2*Pi
Floor eine Zahl abrunden
Ceil eine Zahl aufrunden
Round eine Zahl zur nächsten ganzen Zahl runden
Pslq ganzzahlige Relationen zwischen Zahlen suchen


Div, Mod -- Division mit Rest

mathematische Standardbibliothek
Funktionsaufruf:
Div(x,y)
Mod(x,y)
Parameter:
x und y - ganze Zahlen
Beschreibung:
Die Funktion Div führt eine Integerdivision durch, Mod berechnet den Rest.
Div und Mod sind auch für Polynome definiert.
Beispiele:
In> Div(5,3)
Out> 1;
In> Mod(5,3)
Out> 2;
Siehe auch:
Gcd , Lcm .


Gcd -- größter gemeinsamer Teiler

mathematische Standardbibliothek
Funktionsaufruf:
Gcd(n,m)
Gcd(list)
Parameter:
n,m - ganze Zahlen oder univariate Polynome (Polynome mit einer Variablen)
list - eine Liste von ganzen Zahlen oder univariaten Polynomen
Beschreibung:
Die Funktion Gcd(n,m) berechnet den größten gemeinsamen Teiler (ggT) von n und m. Der ggT ist die größte Zahl, die gleichzeitig Teiler von n und von m ist.
Die Bibliotheksfunktion ruft die interne Funktion MathGcd auf, die den ggT mit Hilfe des binären Eulerschen Algorithmus berechnet:

Prozedur zur Berechnung von Gcd(n,m)

1) if n = m then return n
2) if both n and m are even then return 2*Gcd(n/2,m/2)
3) if exactly one of n or m (say n) is even then return Gcd(n/2,m)
4) if both n and m are odd and, say, n>m then return Gcd( (n-m)/2,m)

Dies ist ein sehr schneller Algorithmus auf Rechnern mit effizienten Schiebeoperationen.
Gcd(list), wobei list eine beliebig lange Liste ganzer Zahlen ist, berechnet den ggT aller Zahlen der Liste. Gcd nutzt dabei folgenden Zusammenhang:

Gcd({a,b,c}) = Gcd(Gcd(a,b),c)
Beispiele:
In> Gcd(55,10)
Out> 5;
In> Gcd({60,24,120})
Out> 12;
Siehe auch:
Lcm .


Lcm -- kleinstes gemeinsames Vielfaches

mathematische Standardbibliothek
Funktionsaufruf:
Lcm(n,m)
Parameter:
n,m - ganze Zahlen
Beschreibung:
Die Funktion Lcm(n,m) berechnet das kleinste gemeinsame Vielfache (kgV) von n und m. Das kgV ist die kleinste Zahl, die gleichzeitig Vielfaches von n und von m ist. Das kgV wird mit folgender Gleichung berechnet:

Lcm(n,m) = Div(n*m,Gcd(n,m))
Da Div und Gcd auch für Polynome definiert sind, gilt dies auch für die Funktion Lcm.
Beispiele:
In> Lcm(60,24)
Out> 120;
Siehe auch:
Gcd .


<< und >> -- Schiebeoperatoren

mathematische Standardbibliothek
Funktionsaufruf:
n<<m
n>>m
Parameter:
n,m - ganze Zahlen
Beschreibung:
Diese Operatoren verschieben ganze Zahlen nach links bzw. nach rechts. Sie entsprechen den C-Schiebeoperatoren. Die Schiebeoperatoren erhalten das Vorzeichen, entsprechen also einer Multiplikation bzw. Division mit Zweierpotenzen.
Beispiele:
Beispiele:
1<<10; ergibt 1024
-1024>>10; ergibt -1


FromBase, ToBase -- Umrechnung zwischen unterschiedlichen Stellenwertsystemen

Interne Funktion
Funktionsaufruf:
FromBase(base,number)
ToBase(base,number)
Parameter:
base - Basis des Stellenwertsystems
number - Zahl, die umgewandelt werden soll
Beschreibung:
Umwandlung von Zahlen ins bzw. aus dem Zehnersystem.
Beispiele:
In> FromBase(2,111111)
Out> 63;
In> ToBase(16,255)
Out> ff;
Siehe auch:
PAdicExpand


Precision -- Rechengenauigkeit einstellen

Interne Funktion
Funktionsaufruf:
Precision(n)
Parameter:
n - Anzahl der Nachkommastellen im Zehnersystem
Beschreibung:
Die Funktion setzt die Anzahl der Nachkommastellen. Alle nachfolgenden Rechenoperationen arbeiten mit der eingestellten Genauigkeit.
Beispiele:
In> Precision(10)
Out> True;
In> N(Sin(1))
Out> 0.8414709848;
In> Precision(20)
Out> True;
In> N(Sin(1))
Out> 0.84147098480789650665;
In> GetPrecision()
Out> 20;
Siehe auch:
GetPrecision , N .


GetPrecision -- eingestellte Rechengenauigkeit ermitteln

interne Funktion
Funktionsaufruf:
GetPrecision()
Parameter:
keine
Beschreibung:
Das Ergebnis dieser Funktion ist die mit Precision eingestellte Rechengenauigkeit.
Beispiele:
In> GetPrecision();
Out> 10;
In> Precision(20);
Out> True;
In> GetPrecision();
Out> 20;
siehe auch:
Precision , N .


N -- numerischen Näherungswert berechnen

mathematische Standardbibliothek
Funktionsaufruf:
N(expr)
N(expr, prec)
Parameter:
expr - zu berechnender Ausdruck
prec - Anzahl der Nachkommastellen
Beschreibung:
Numerische Werte verbleiben wenn möglich im ursprünglichen Format, z.B. bei Divisionen oder bei triginometrischen Funktionen. Mit N wird die Umwandlung in eine Fließkommazahl erzwungen, soweit dies möglich ist. Das Ergebnis wird mit der voreingestellten Genauigkeit oder mit der im Argument angegebenen Genauigkeit berechnet.
Beispiele:
In> 1/2
Out> 1/2;
In> N(1/2)
Out> 0.5;
In> Sin(1)
Out> Sin(1);
In> N(Sin(1),10)
Out> 0.8414709848;
In> Pi
Out> Pi;
In> N(Pi,20)
Out> 3.14159265358979323846;
Siehe auch:
Precision , GetPrecision , Pi .


Rationalize -- Umwandlung von Dezimalzahlen in Brüche

mathematische Standardbibliothek
Funktionsaufruf:
Rationalize(expr)
Parameter:
expr - umzuwandelnder Term
Beschreibung:
Die Funktion Rationalize wandelt alle im Term vorkommenden Fließkommazahlen in Bruchzahlen der Form p/q um.
Beispiele:
In> {1.2,3.123,4.5}
Out> {1.2,3.123,4.5};
In> Rationalize(%)
Out> {6/5,3123/1000,9/2};

In> Sin(1.234)
Out> Sin(1.234);
In> Rationalize(%)
Out> Sin(617/500);
Siehe auch:
IsRational .


IsPrime -- testen, ob das Argument eine Primzahl ist

mathematische Standardbibliothek
Funktionsaufruf:
IsPrime(n)
Parameter:
n - eine natürliche Zahl
Beschreibung:
Das Ergebnis von IsPrime(n) ist True, falls n eine Primzahl ist, andernfalls False.
Beispiele:
In> IsPrime(1)
Out> False;
In> IsPrime(2)
Out> True;
In> IsPrime(10)
Out> False;
In> IsPrime(23)
Out> True;
In> Select("IsPrime", 1 .. 100)
Out> {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
siehe auch:
IsPrimePower , Factors .


IsPrimePower -- testen, ob das Argument eine Primzahlpotenz ist

mathematische Standardbibliothek
Funktionsaufruf:
IsPrime(n)
Parameter:
n - eine natürliche Zahl
Beschreibung:
Das Ergebnis ist True, falls es eine Primzahl p gibt, so dass p^m = n ist.
Beispiele:
In> IsPrimePower(9)
Out> True;
In> IsPrimePower(10)
Out> False;
In> Select("IsPrimePower", 1 .. 50)
Out> {2,3,4,5,7,8,9,11,13,16,17,19,23,25,27,29,31,32,37,41,43,47,49};
siehe auch:
IsPrime , Factors .


Factors -- Primfaktorzerlegung

mathematische Standardbibliothek
Funktionsaufruf:
Factors(x)
Parameter:
x - eine ganze Zahl oder ein univariates Polynom (Polynom in einer Variablen)
Beschreibung:
Die Funktion Factors zerlegt eine ganze Zahl oder ein univariates Polynom in Primfaktoren oder irreduzible Polynome.

Das Ergebnis ist eine Liste der Form {p,n}, wobei jedes p^n ein Teiler von x ist.

Die Funktion Factor gibt das Ergebnis von Factors in einem übersichtlicheren Format aus.
Beispiele:
In> Factors(24);
Out> {{2,3},{3,1}};
In> Factors(2*x^3 + 3*x^2 - 1);
Out> {{2,1},{x+1,2},{x-1/2,1}};
Siehe auch:
Factor , IsPrime .


Factor -- Primfaktorzerlegung mit formatierter Ausgabe

mathematische Standardbibliothek
Funktionsaufruf:
Factor(x)
Parameter:
x - eine ganze Zahl oder ein univariates Polynom (Polynom in einer Variablen)
Beschreibung:
Die Funktion Factor zerlegt eine ganze Zahl oder ein univariates Polynom in Primfaktoren oder irreduzible Polynome und gibt das Ergebnis übersichtlich formatiert aus.
Beispiele:
In> PrettyForm(Factor(24));

 3
2  * 3

Out> True;
In> PrettyForm(Factor(2*x^3 + 3*x^2 - 1));

             2   /     1 \
2 * ( x + 1 )  * | x - - |
                 \     2 /

Out> True;
Siehe auch:
Factors , IsPrime , PrettyForm .


PAdicExpand -- p-adische Erweiterung

mathematische Standardbibliothek
Funktionsaufruf:
PAdicExpand(n, p)
Parameter:
n - eine Zahl oder ein Polynom
p - die Basis der Erweiterung
Beschreibung:
Die Funktion wandelt die Zahl (bzw. das Polynom) "n" in die p-adische Form um:

n = a0 +a1*p +a2*p^2+...

Beispiel:

In> PrettyForm(PAdicExpand(1234,10))

                   2     3
4 + 3 * 10 + 2 * 10  + 10

Out> True;

In> PrettyForm(PAdicExpand(x^3, x-1));

                             2            3
3 * ( x - 1 ) + 3 * ( x - 1 )  + ( x - 1 )  + 1

Out> True;

See Also:
Mod , ContFrac , FromBase, ToBase .


ContFrac -- Umwandlung in einen Kettenbruch

mathematische Standardbibliothek
Funktionsaufruf:
ContFrac(x) oder ContFrac(x,maxdepth)
Parameter:
x - umzuwandelnder Ausdruck
maxdepth - maximale Tiefe
Beschreibung:
Die Funktion ContFrac wandelt eine Fließkommazahl oder ein Polynom um in einen Kettenbruch. Dies ist insbesondere bei Polynomen sinnvoll, da langsam konvergierende Reihenentwicklungen häufig in der Kettenbruchdarstellung sehr viel schneller konvergieren.
Beispiele:
In> PrettyForm(ContFrac(N(Pi)))

             1
--------------------------- + 3
           1
----------------------- + 7
        1
------------------ + 15
      1
-------------- + 1
   1
-------- + 292
rest + 1

Out> True;

In> PrettyForm(ContFrac(x^2+x+1, 3))

       x
---------------- + 1
         x
1 - ------------
       x
    -------- + 1
    rest + 1

Out> True;
Siehe auch:
PAdicExpand , N .


Decimal -- Umwandlung eines Bruches in die vollständige Dezimaldarstellung

mathematische Standardbibliothek
Funktionsaufruf:
Decimal(frac)
Parameter:
frac - eine Bruchzahl
Beschreibung:
Die Funktion Decimal wandelt eine Bruchzahl in die vollständige Dezimaldarstellung um. Das Ergebnis ist eine Liste, deren erstes Element der ganzzahlige Anteil ist und deren letztes Element die sich periodisch wiederholende Ziffernfolge ist. Die Listenelemente dazwischen sind die Ziffern vor Beginn der Periode bei gemischt periodischen Dezimalbrüchen.
Beispiele:
In> Decimal(1/22)
Out> {0,0,{4,5}};
In> N(1/22,30)
Out> 0.045454545454545454545454545454;
siehe auch:
N .


TruncRadian -- Umwandlung ins Bogenmaß modulo 2*Pi

mathematische Standardbibliothek
Funktionsaufruf:
TruncRadian(r)
Parameter:
r - ein Winkel im Bogenmaß
Beschreibung:
Die Funktion TruncRadian berechnet r mod 2*Pi und liefert ein Ergebnis zwischen 0 und 2*Pi. Diese Funktion wird in den trigonometrischen Funktionen vor der eigentlichen Berechnung angewendet und reduziert bei großen Winkeln deutlich die Rechenzeit.

Die Funktion arbeitet nach folgender Formel:


             /   r    \         
r - MathFloor| ------ | * 2 * Pi
             \ 2 * Pi /         



r und 2*Pi gehen mit doppelter Genauigkeit in die Berechnung ein, so dass Rundungsfehler ausgeschlossen sind.
Beispiele:
In> 2*Pi()
Out> 6.283185307;
In> TruncRadian(6.28)
Out> 6.28;
In> TruncRadian(6.29)
Out> 0.0068146929;
Siehe auch:
Sin , Cos , Tan .


Floor -- eine Zahl abrunden

mathematische Standardbibliothek
Funktionsaufruf:
Floor(x)
Parameter:
x - eine Fließkommazahl
Beschreibung:
Die Funktion Floor liefert als Ergebnis die nächst kleinere ganze Zahl.
Beispiele:
In> Floor(1.1)
Out> 1;
In> Floor(-1.1)
Out> -2;
Siehe auch:
Ceil , Round .


Ceil -- eine Zahl aufrunden

mathematische Standardbibliothek
Funktionsaufruf:
Ceil(x)
Parameter:
x - eine Fließkommazahl
Beschreibung:
Die Funktion Ceil liefert als Ergebnis die nächst größere ganze Zahl.
Beispiele:
In> Ceil(1.1)
Out> 2;
In> Ceil(-1.1)
Out> -1;
Siehe auch:
Floor , Round .


Round -- eine Zahl zur nächsten ganzen Zahl runden

mathematische Standardbibliothek
Funktionsaufruf:
Round(x)
Parameter:
x - eine Fließkommazahl
Beschreibung:
Die Funktion Round rundet auf die nächste ganze Zahl.
Beispiele:
In> Round(1.49)
Out> 1;
In> Round(1.51)
Out> 2;
In> Round(-1.49)
Out> -1;
In> Round(-1.51)
Out> -2;

Siehe auch:
Floor , Ceil .


Pslq -- ganzzahlige Relationen zwischen Zahlen suchen

mathematische Standardbibliothek
Funktionsaufruf:
Pslq(xlist,precision)
Parameter:
xlist - eine Liste von Fließkommazahlen
precision - Rechengenauigkeit
Beschreibung:
Die Funktion Pslq berechnet zu einer Liste von Konstanten x Koeffizienten sol[i] so, dass sum(sol[i]*x[i], i=1..n) = 0 (mit n=Length(x)) ist.
Beispiele:
In> Pslq({ 2*Pi+3*Exp(1) , Pi , Exp(1) },20)
Out> {1,-2,-3};

Hinweis: In diesem Beispiel erkennt die Funktion richtig, dass
1* (2*Pi+3*E) -2*(Pi) - 3*(E) = 0
ist.
Siehe auch:
N .