Previous: Теория чисел, Up: Теория чисел [Contents][Index]
Возвращает n-е число Бернулли для целого n.
Числа Бернулли, равные нулю, опускаются, если zerobern равно false.
См. также 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
Возвращает значение многочлена Бернулли порядка n в точке x.
Возвращает дзэта-функцию Римана для аргумента s. Возвращаемое значение - число с плавающей точкой повышенной точности (bfloat); n - количество цифр в возвращаемом значении.
Возвращает дзэта-функцию Гурвица для аргументов s и h. Возвращаемое значение - число с плавающей точкой повышенной точности (bfloat); n - количество цифр в возвращаемом значении. Дзэта-функция Гурвица определяется как
sum ((k+h)^-s, k, 0, inf)
Функцию загружает команда load ("bffac").
Биномиальный коэффициент x!/(y! (x - y)!).
Если x и y - целые, рассчитывается численное значение биномиального коэффициента. Если y или x - y - целое, биномиальный коэффициент выражается через многочлен.
Примеры:
(%i1) binomial (11, 7);
(%o1)                          330
(%i2) 11! / 7! / (11 - 7)!;
(%o2)                          330
(%i3) binomial (x, 7);
        (x - 6) (x - 5) (x - 4) (x - 3) (x - 2) (x - 1) x
(%o3)   -------------------------------------------------
                              5040
(%i4) binomial (x + 7, x);
      (x + 1) (x + 2) (x + 3) (x + 4) (x + 5) (x + 6) (x + 7)
(%o4) -------------------------------------------------------
                               5040
(%i5) binomial (11, y);
(%o5)                    binomial(11, y)
Возвращает n-е число Бернулли для целого n.
burn может быть более эффективным, чем bern для отдельных больших n
(возможно, если n больше 105 или в районе этого), так как bern рассчитывает все
числа Бернулли до n-го перед выдачей результата.
burn использует выражение чисел Бернулли через дзэта-функцию Римана.
Функцию загружает команда load ("bffac").
Преобразует expr в цепную дробь.
expr - выражение, составленное из цепных дробей и квадратных корней из целых чисел.
Операнды выражения могут комбинироваться арифметическими операторами. Помимо цепных дробей и
квадратных корней, сомножители выражения должны быть целыми или рациональными числами. Maxima
не работает с операциями над цепными дробями вне cf.
cf вычисляет аргументы после установки listarith равной false.
Цепная дробь a + 1/(b + 1/(c + ...)) представляется в виде списка [a, b, c, ...].
Элементы списка a, b, c, ... должны раскрываться в целые числа.
expr может содержать sqrt (n), где n - целое.
В этом случае cf даст число членов цепной дроби, равное произведению
cflength на период. Цепная дробь может раскрываться в число через арифметическое
представление, возвращенное cfdisrep. См. также cfexpand для другого способа
вычисления цепной дроби.
См. также cfdisrep, cfexpand и cflength.
Примеры:
(%i1) cf ([5, 3, 1]*[11, 9, 7] + [3, 7]/[4, 3, 2]); (%o1) [59, 17, 2, 1, 1, 1, 27] (%i2) cf ((3/17)*[1, -2, 5]/sqrt(11) + (8/13)); (%o2) [0, 1, 1, 1, 3, 2, 1, 4, 1, 9, 1, 9, 2]
cflength определяет число периодов цепной дроби, рассчитываемых для алгебраических
иррациональных чисел.
(%i1) cflength: 1$ (%i2) cf ((1 + sqrt(5))/2); (%o2) [1, 1, 1, 1, 2] (%i3) cflength: 2$ (%i4) cf ((1 + sqrt(5))/2); (%o4) [1, 1, 1, 1, 1, 1, 1, 2] (%i5) cflength: 3$ (%i6) cf ((1 + sqrt(5))/2); (%o6) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2]
cfdisrep.
(%i1) cflength: 3$ (%i2) cfdisrep (cf (sqrt (3)))$ (%i3) ev (%, numer); (%o3) 1.731707317073171
cf.
(%i1) cf ([1,1,1,1,1,2] * 3); (%o1) [4, 1, 5, 2] (%i2) cf ([1,1,1,1,1,2]) * 3; (%o2) [3, 3, 3, 3, 3, 6]
Возвращает простое выражение вида a + 1/(b + 1/(c + ...)) для списочного
представления цепной дроби [a, b, c, ...].
(%i1) cf ([1, 2, -3] + [1, -2, 1]);
(%o1)                     [1, 1, 1, 2]
(%i2) cfdisrep (%);
                                  1
(%o2)                     1 + ---------
                                    1
                              1 + -----
                                      1
                                  1 + -
                                      2
Возвращает матрицу числителей и знаменателей последней (первый столбец) и предпоследней (второй столбец) подходящей дроби для цепной дроби x.
(%i1) cf (rat (ev (%pi, numer)));
`rat' replaced 3.141592653589793 by 103993/33102 =3.141592653011902
(%o1)                  [3, 7, 15, 1, 292]
(%i2) cfexpand (%); 
                         [ 103993  355 ]
(%o2)                    [             ]
                         [ 33102   113 ]
(%i3) %[1,1]/%[2,1], numer;
(%o3)                   3.141592653011902
Значение по умолчанию: 1
Функция cf возвращает число членов цепной дроби, равное произведению
cflength на период. Таким образом, по умолчанию возвращается один период.
(%i1) cflength: 1$ (%i2) cf ((1 + sqrt(5))/2); (%o2) [1, 1, 1, 1, 2] (%i3) cflength: 2$ (%i4) cf ((1 + sqrt(5))/2); (%o4) [1, 1, 1, 1, 1, 1, 1, 2] (%i5) cflength: 3$ (%i6) cf ((1 + sqrt(5))/2); (%o6) [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2]
divsum (n, k) возвращает сумму делителей n, возведенных
в степень k.
divsum (n) возвращает сумму делителей n.
(%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
Возвращает n-е число Эйлера для неотрицательного целого n.
Для постоянной Эйлера-Маскерони см. %gamma.
(%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]
Постоянная Эйлера-Маскерони, 0.5772156649015329 ....
Представляет факториал x. Maxima работает с factorial (x)
аналогично x!. См. !.
Возвращает n-е число Фибоначчи.
fib(0) равно 0, fib(1) равно 1, fib (-n) равно
(-1)^(n + 1) * fib(n).
После вызова fib prevfib равно fib (x - 1),
числу Фибоначчи, предшествующему последнему рассчитанному.
(%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]
Выражает числа Фибоначчи в expr через постоянную %phi,
равную (1 + sqrt(5))/2, приблизительно 1.61803399.
Примеры:
(%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
Для целого положительного n возвращает факторизацию n.
Если n=p1^e1..pk^nk есть разложение n на простые множители, ifactors
возвращает [[p1, e1], ... , [pk, ek]].
Используемые методы факторизации - обычное деление на простые числа (до 9973), ро-алгоритм Полларда и метод эллиптических кривых.
(%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
Возвращает целый n-й корень абсолютного значения x.
(%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]
Рассчитывает число, обратное n по модулю m.
inv_mod (n,m) возвращает false, если n есть делитель нуля
по модулю  m.
(%i1) inv_mod(3, 41); (%o1) 14 (%i2) ratsimp(3^-1), modulus=41; (%o2) 14 (%i3) inv_mod(3, 42); (%o3) false
Символ Якоби для p и 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]
Возвращает наибольший общий делитель аргументов. Аргументы могут быть как целыми числами, так и общими выражениями.
Функцию загружает load ("functs").
Проверяет expr на наличие двух факториалов, различающихся на целое число.
После этого minfactorial заменяет выражение произведением многочленов.
(%i1) n!/(n+2)!;
                               n!
(%o1)                       --------
                            (n + 2)!
(%i2) minfactorial (%);
                                1
(%o2)                    ---------------
                         (n + 1) (n + 2)
Возвращает наименьшее простое число, большее n.
(%i1) next_prime(27); (%o1) 29
Разлагает выражение expr на простые дроби относительно главной переменной var.
partfrac делает полное разложение на простые дроби. Используемый алгоритм
основан на том, что знаменатели в разложении на простые дроби (сомножители
исходного знаменателя) взаимно просты. Числители могут быть записаны как
линейные комбинации знаменателей, откуда вытекает разложение.
(%i1) 1/(1+x)^2 - 2/(1+x) + 2/(2+x);
                      2       2        1
(%o1)               ----- - ----- + --------
                    x + 2   x + 1          2
                                    (x + 1)
(%i2) ratsimp (%);
                                 x
(%o2)                 - -------------------
                         3      2
                        x  + 4 x  + 5 x + 2
(%i3) partfrac (%, x);
                      2       2        1
(%o3)               ----- - ----- + --------
                    x + 2   x + 1          2
                                    (x + 1)
Использует модулярный алгоритм вычисления a^n mod m, где a и n - целые
и m - положительное целое. Если n отрицательно,
для поиска обратного по модулю m числа используется inv_mod.
(%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
Проверка на простоту. Если primep (n) возвращает false, то n
является составным числом; если возвращает true, то n с большой
вероятностью является простым числом.
Для n меньше 341550071728321 используется детерминированная версия теста
Миллера-Рабина. Если primep (n) возвращает true, то n есть простое число.
Для n больше 34155071728321 primep использует primep_number_of_tests
тестов Миллера-Рабина на псевдопростоту и один тест Люкаса на псевдопростоту.
Вероятность того, что n пройдет один тест Миллера-Рабина, менее 1/4. Для значения по
умолчанию 25 переменной primep_number_of_tests вероятность того, что n
будет составным, много меньше 10^-15.
Значение по умолчанию: 25
Число тестов Миллера-Рабина, используемых в primep.
Возвращает наибольшее простое число, меньшее n.
(%i1) prev_prime(27); (%o1) 23
Возвращает элемент поля sqrt (n) с единичной нормой, что равносильно
решению уравнения Пелля a^2 - n b^2 = 1.
(%i1) qunit (17); (%o1) sqrt(17) + 4 (%i2) expand (% * (sqrt(17) - 4)); (%o2) 1
Возвращает число целых чисел, меньших или равных n, которые взаимно просты с n.
Значение по умолчанию: true
Если zerobern равно false, bern исключает числа Бернулли, равные нулю.
См. bern.
Возвращает дзэта-функцию Римана, если n - отрицательное целое, 0, 1,
или положительное четное число, и возвращает невычисляемую форму zeta (n)
для всех других аргументов, включая не целые рациональные, числа с плавающей точкой и
комплексные.
См. также bfzeta и zeta%pi.
(%i1) map (zeta, [-4, -3, -2, -1, 0, 1, 2, 3, 4, 5]);
                                     2              4
           1        1     1       %pi            %pi
(%o1) [0, ---, 0, - --, - -, inf, ----, zeta(3), ----, zeta(5)]
          120       12    2        6              90
Значение по умолчанию: true
Значение по умолчанию: true
Если zeta%pi равно true, zeta возвращает выражение,
пропорциональное %pi^n для целого четного n. В противном случае для
целого четного n возвращается невычисляемая форма zeta (n).
(%i1) zeta%pi: true$
(%i2) zeta (4);
                                 4
                              %pi
(%o2)                         ----
                               90
(%i3) zeta%pi: false$
(%i4) zeta (4);
(%o4)                        zeta(4)
Previous: Теория чисел, Up: Теория чисел [Contents][Index]