| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] | 
| 21.1 Funktionen und Variablen der Zahlentheorie | 
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] | 
Gibt die n-te Bernoulli-Zahl der ganzen Zahl n zurück. Hat die
Optionsvariable zerobern den Wert false, werden Bernoulli-Zahlen
unterdrückt, die Null sind.
Siehe auch burn.
(%i1) zerobern: true$
(%i2) map (bern, [0, 1, 2, 3, 4, 5, 6, 7, 8]);
                  1  1       1      1        1
(%o2)       [1, - -, -, 0, - --, 0, --, 0, - --]
                  2  6       30     42       30
(%i3) zerobern: false$
(%i4) map (bern, [0, 1, 2, 3, 4, 5, 6, 7, 8]);
            1  1    1   5     691   7    3617  43867
(%o4) [1, - -, -, - --, --, - ----, -, - ----, -----]
            2  6    30  66    2730  6    510    798
Gibt das n-te Bernoulli-Polynom in der Variablen x zurück.
Die Riemannsche Zeta-Funktion für das Argument s, die wie folgt definiert ist:
                 inf
                 ====
                 \     1
     zeta(s) =    >    --
                 /      s
                 ====  k
                 k = 1
bfzeta gibt einen Wert als große Gleitkommazahl zurück.  Die Anzahl 
der Stellen wird durch das Argument n angegeben.
Anstatt der Funktion bfzeta ist die Funktion zeta
 zu bevorzugen,
die sowohl für reelle und komplexe Gleitkommazahlen und Gleitkommazahlen mit
eine beliebigen Genauigkeit die Riemannsche Zeta-Funktion berechnen kann.
Die Hurwitzsche Zeta-Funktion für die Argumente s und h, die wie folgt definiert ist:
                        inf
                        ====
                        \        1
         zeta (s,h)  =   >    --------
                        /            s
                        ====  (k + h)
                        k = 0
bfhzeta gibt einen Wert als große Gleitkommazahl zurück.  Die 
Anzahl der Stellen wird durch das Argument n angegeben.
Gibt eine rational Zahl zurück, die eine Näherung für die n-te 
Bernoulli Zahl für die ganze Zahl n ist.  burn berechnet eine 
Näherung als große Gleitkommatzahl mit der folgenden Beziehung:
                   n - 1  1 - 2 n
              (- 1)      2        zeta(2 n) (2 n)!
     B(2 n) = ------------------------------------
                                2 n
                             %pi
burn kann effizienter als die Funktion bern für große, 
einzelne ganze Zahlen n sein, da bern zunächst alle Bernoulli 
Zahlen bis n berechnet.  burn ruft für ungerade ganze Zahlen und 
Zahlen die kleiner oder gleich 255 die Funktion bern auf.
Das Kommando load(bffac) lädt die Funktion.  Siehe auch bern.
divsum(n, k) potenziert die Teiler des Argumentes n 
mit dem Argument k und gibt die Summe als Ergebnis zurück.
divsum(n) gibt die Summe der Teiler der Zahl n zurück.
(%i1) divsum (12); (%o1) 28 (%i2) 1 + 2 + 3 + 4 + 6 + 12; (%o2) 28 (%i3) divsum (12, 2); (%o3) 210 (%i4) 1^2 + 2^2 + 3^2 + 4^2 + 6^2 + 12^2; (%o4) 210
Gibt die n-te Eulersche Zahl für eine nichtnegative ganze Zahl n zurück.
Für die Euler-Mascheroni Konstante siehe %gamma.
Beispiele:
(%i1) map (euler, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); (%o1) [1, 0, - 1, 0, 5, 0, - 61, 0, 1385, 0, - 50521]
Gibt die n-te Fibonacci-Zahl zurück. Die Fibonacci-Folge ist rekursiv definiert:
fib(0) = 0 fib(1) = 1 fib(n) = fib(n-1) + fib(n-2)
Für negative ganze Zahlen kann die Fibonacci-Folge erweitert wird mit:
n + 1 fib(- n) = (- 1) f(n)
Nach einem Aufruf der Funktion fib(n), enthält die Systemvariable 
prevfib die zur Zahl n vorhergehende Fibonacci-Zahl.
(%i1) map (fib, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); (%o1) [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
Fibonacci-Zahlen im Ausdruck expr werden durch die Goldene Zahl 
%phi ausgedrückt.  Siehe %phi.
Beispiele:
(%i1) fibtophi (fib (n));
                           n             n
                       %phi  - (1 - %phi)
(%o1)                  -------------------
                           2 %phi - 1
(%i2) fib (n-1) + fib (n) - fib (n+1);
(%o2)          - fib(n + 1) + fib(n) + fib(n - 1)
(%i3) fibtophi (%);
            n + 1             n + 1       n             n
        %phi      - (1 - %phi)        %phi  - (1 - %phi)
(%o3) - --------------------------- + -------------------
                2 %phi - 1                2 %phi - 1
                                          n - 1             n - 1
                                      %phi      - (1 - %phi)
                                    + ---------------------------
                                              2 %phi - 1
(%i4) ratsimp (%);
(%o4)                           0
Faktorisiert eine positive ganze Zahl n.  Sind n = p1^e1..pk^nk die
Faktoren der ganzen Zahl n, dann gibt ifactor das Ergebnis
[[p1, e1], ... , [pk, ek]] zurück.
Für die Faktorisierung kommen eine einfache Primfaktorzerlegung mit Primzahlen bis zu 9973, das Zählkörpersieb nach Pollard oder die Methode der Elliptischen Kurven zum Einsatz.
(%i1) ifactors(51575319651600);
(%o1)     [[2, 4], [3, 2], [5, 2], [1583, 1], [9050207, 1]]
(%i2) apply("*", map(lambda([u], u[1]^u[2]), %));
(%o2)                        51575319651600
Returns a list [a, b, u] where u is the greatest
common divisor of n and k, and u is equal to
a n + b k.  The arguments n and k
must be integers.
igcdex implements the Euclidean algorithm.  See also gcdex.
The command load(gcdex) loads the function.
Examples:
(%i1) load(gcdex)$ (%i2) igcdex(30,18); (%o2) [- 1, 2, 6] (%i3) igcdex(1526757668, 7835626735736); (%o3) [845922341123, - 164826435, 4] (%i4) igcdex(fib(20), fib(21)); (%o4) [4181, - 2584, 1]
Gibt die ganzzahlige n-te Wurzel des Betrags von x zurück.
(%i1) l: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]$ (%i2) map (lambda ([a], inrt (10^a, 3)), l); (%o2) [2, 4, 10, 21, 46, 100, 215, 464, 1000, 2154, 4641, 10000]
Berechnet das modulare Inverse von n zum Modul p.  Das Argument
n muss eine ganze Zahl und das Modul p eine positive ganze Zahl 
sein.  inv_mod(n,p) gibt false zurück, wenn das modulare Inverse
nicht existiert.  Das modulare Inverse existiert immer, wenn das Modul p
eine Primzahl ist.
Siehe auch die Funktionen power_mod
 und mod.
Beispiele:
(%i1) inv_mod(3, 41); (%o1) 14 (%i2) ratsimp(3^-1), modulus=41; (%o2) 14 (%i3) inv_mod(3, 42); (%o3) false
Gibt die ganzzahlige Wurzel des Betrages von x zurück, wenn x eine ganze Zahl ist. Andernfalls wird eine Substantivform zurückgegeben.
Berechnet das Jacobi-Symbol für die Argumente p und q.
(%i1) l: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]$ (%i2) map (lambda ([a], jacobi (a, 9)), l); (%o2) [1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0]
Gibt den kleinsten gemeinsamen Teiler der Argumente zurück. Die Argumente können ganze Zahlen und allgemeine Ausdrücke sein.
Mit dem Kommando load(functs) wird die Funktion geladen.
Berechnet den Modulus x mod p des Arguments x zum Modul p. 
x und p können ganze Zahlen, rationale Zahlen, Gleitkommazahlen 
oder allgemeine Ausdrücke sein.
Sind x und p reelle Zahlen und ist p ungleich Null, gibt 
mod(x, p) das Ergebnis von x - p * 
floor(x / p) zurück.  Weiterhin gilt für alle reellen Zahlen
mod(x, 0) = x.  Für eine Diskussion dieser Definition siehe
Kapitel 3.4, "Concrete Mathematics" von Graham, Knuth, and Patashnik.  Die 
Funktion mod(x, 1) ist eine Sägezahnfunktion mit der Periode 1 
mit mod(1, 1) = 0 und mod(0, 1) = 0.
Der Hauptwert einer komplexen Zahl, die im Intervall (-%pi, %pi) liegt,
kann mit %pi - mod(%pi - x, 2*%pi) bestimmt werden, wobei x
die komplexe Zahl ist.
Wie für die Funktionen floor oder ceiling werden konstante 
Ausdrücke, wie zum Beispiel 10 * %pi, in große Gleitkommazahlen 
umgewandelt, um mod zu berechnen.  Diese Umwandlung kann zu Fehlern
führen.
Für nicht nummerische Argumente x oder y kennt mod
verschiedene Vereinfachungen.
Siehe auch die Funktionen power_mod
 und inv_mod.
Beispiele:
Zeige für zwei große ganze Zahlen, dass für das modulare Rechnen die 
Regel mod(a+b,p) = mod(a,p)+mod(b,p) gilt.
(%i1) a:random(10^20)+10^19; (%o1) 72588919020045581148 (%i2) b:random(10^20)+10^19; (%o2) 35463666253140008825 (%i3) p:random(10^20)+10^19; (%o3) 39127433614020247557 (%i4) mod(a+b,p); (%o4) 29797718045145094859 (%i5) mod(mod(a,p)+mod(b,p),p); (%o5) 29797718045145094859
Vereinfachung für nicht nummerische Argumente.
(%i1) mod (x, 0); (%o1) x (%i2) mod (a*x, a*y); (%o2) a mod(x, y) (%i3) mod (0, x); (%o3) 0
Gibt die kleinste Primzahl zurück, die der Zahl n folgt.
(%i1) next_prime(27); (%o1) 29
Führt einen Test auf eine Primzahl für das Argument n durch.  Hat
primep das Ergebnis false, ist n keine Primzahl.  Ist das
Ergebnis true, ist n mit großer Wahrscheinlichkeit eine 
Primzahl.
Für ganze Zahlen n die kleiner als 10^16 sind wird eine probalistisches
Miller-Rabin-Verfahren.  Hat in diesem Fall primep das Ergebnis
true, dann ist n eine Primzahl.
Für ganze Zahlen n größer als 10^16 nutzt primep den
Pseudo-Primzahlentest nach Miller-Rabin mit primep_number_of_tests
 Tests
und den Pseudo_Primzahlentest nach Lucas.  Die Wahrscheinlichkeit, dass eine
Zahl n den Pseudo-Primzahlentest nach Miller-Rabin passiert, ist kleiner
als 1/4.  Mit dem Standardwert 25 für die Optionsvariable 
primpe_number_of_tests ist die Wahrscheinlichkeit viel kleiner als 
10^-15.
Standardwert: 25
Die Anzal der Pseudo-Primzahlentests nach Miller-Rabin der Funktion 
primep.
Gibt die größte Primzahl zurück, die kleiner als die Zahl n ist.
(%i1) prev_prime(27); (%o1) 23
Berechnet den Modulus a^n mod p der Exponentiation a^n zum Modul 
p.  Die Argumente a und n müssen ganze Zahlen sein.  Das 
Modul p muss eine positive ganze Zahl sein.  Ist n negativ, wird die 
Funktion inv_mod
 aufgerufen, um das modulare Inverse zu berechnen.
Die Funktion power_mod ist für ganze Zahlen äquivalent zu 
mod(a^n, p).  Der Algorithmus von power_mod ist besondere für 
große ganze Zahlen effizienter.
Siehe auch die Funktionen inv_mod
 und mod.
Beispiele:
power_mod(a,n,p) ist äquivalent zu mod(a^n,p.  Das modulare
Inverse wird mit der Funktion inv_mod berechnet.
(%i1) power_mod(3, 15, 5); (%o1) 2 (%i2) mod(3^15,5); (%o2) 2 (%i3) power_mod(2, -1, 5); (%o3) 3 (%i4) inv_mod(2,5); (%o4) 3
Für große ganze Zahlen ist power_mod effizienter.  Das folgende 
Ergebnis kann nicht in einer vernünftigen Zeit mit mod(a^n,p) berechnet
werden.
(%i1) power_mod(123456789,123456789,987654321); (%o1) 598987215
Findet für das Argument n Lösungen der Pellschen Gleichung 
a^2 - n b^2 = 1.
(%i1) qunit (17); (%o1) sqrt(17) + 4 (%i2) expand (% * (sqrt(17) - 4)); (%o2) 1
Gibt die Anzahl der ganzen Zahlen zurück, die kleiner oder gleich n sind und die kein Teiler von n sind.
Standardwert: true
Hat zerobern den Wert false, werden von den Funktionen bern
die Bernoulli Zahlen und von euler die Euler Zahlen ausgeschlossen,
die als Ergenis Null haben.  Siehe bern
 und euler.
Die Riemannsche Zeta-Funktion für s, die wie folgt definiert ist:
                 inf
                 ====
                 \     1
     zeta(s) =    >    --
                 /      s
                 ====  k
                 k = 1
Für negative ganze Zahlen n, Null und postive gerade ganze Zahlen 
vereinfacht zeta zu einem exakten Ergebnis.  Damit diese Vereinfachung
für positive ganze Zahlen ausgeführt wird, muss die Optionsvariable
zeta%pi den Wert true haben.  Siehe zeta%pi.
 Für 
einfache und große Gleitkommazahlen hat zeta ein numerisches 
Ergebnis.  Für alle anderen Argumente einschließlich komplexe Zahlen und 
rationale Zahlen gibt zeta eine Substantivform zurück.  Hat die 
Optionsvariable zeta%pi den Wert false, gibt zeta auch 
für gerade ganze Zahlen eine Substantivform zurück.
zeta(1) ist nicht definiert.  Maxima kennt jedoch die einseitigen
Grenzwerte limit(zeta(x), x, 1, plus und 
limit(zeta(x), x, 1, minus.
Die Riemannsche Zeta-Funktion wird auf die Argumente von Listen, Matrizen und 
Gleichungen angewendendet, wenn die Optionsvariable distribute_over
den Wert true hat.
Siehe auch bfzeta
 und zeta%pi.
Beispiele:
(%i1) zeta([-2,-1,0,0.5,2,3,1+%i]);
                                             2
            1     1                       %pi
(%o1) [0, - --, - -, - 1.460354508809586, ----, zeta(3), 
            12    2                        6
                                                    zeta(%i + 1)]
(%i2) limit(zeta(x),x,1,plus);
(%o2)                          inf
(%i3) limit(zeta(x),x,1,minus);
(%o3)                         minf
Standardwert: true
Hat zeta%pi den Wert true, vereinfacht die Funktion zeta(n)
für gerade ganzen Zahlen n zu einem Ergebnis, das proportional zu 
%pi^n ist.  Ansonsten ist das Ergebnis von zeta eine 
Substantivform für gerade ganze Zahlen.
Beispiele:
(%i1) zeta%pi: true$
(%i2) zeta (4);
                                 4
                              %pi
(%o2)                         ----
                               90
(%i3) zeta%pi: false$
(%i4) zeta (4);
(%o4)                        zeta(4)
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] | 
 
  This document was generated by Crategus on Dezember, 12 2012 using texi2html 1.76.