Add mathjax for dgeqrf
[maxima.git] / doc / info / ja / Number.texi
blob3a317a55346470023b5c95d528f8fe15dfea9aae
1 @menu
2 * Functions and Variables for Number Theory::  
3 @end menu
5 @c -----------------------------------------------------------------------------
6 @node Functions and Variables for Number Theory,  , Number Theory, Number Theory
7 @section Functions and Variables for Number Theory
8 @c -----------------------------------------------------------------------------
10 @c -----------------------------------------------------------------------------
11 @anchor{bern}
12 @deffn {関数} bern (@var{n})
14 整数@var{n}について@var{n}番目のBernoulli数を返します。
15 @c WELL, ACTUALLY bern SIMPLIFIES, LIKE FACTORIAL -- DO WE WANT TO GET INTO THAT ???
16 @c OR JUST PRETEND IT'S "RETURNED" ???
17 もし@code{zerobern}が@code{false}なら
18 ゼロに等しいBernoulli数は抑制されます。
20 @code{burn}も参照してください。
22 @example
23 (%i1) zerobern: true$
24 (%i2) map (bern, [0, 1, 2, 3, 4, 5, 6, 7, 8]);
25                   1  1       1      1        1
26 (%o2)       [1, - -, -, 0, - --, 0, --, 0, - --]
27                   2  6       30     42       30
28 (%i3) zerobern: false$
29 (%i4) map (bern, [0, 1, 2, 3, 4, 5, 6, 7, 8]);
30             1  1    1   5     691   7    3617  43867
31 (%o4) [1, - -, -, - --, --, - ----, -, - ----, -----]
32             2  6    30  66    2730  6    510    798
33 @end example
35 @opencatbox
36 @category{Number theory}
37 @closecatbox
38 @end deffn
40 @c -----------------------------------------------------------------------------
41 @anchor{bernpoly}
42 @deffn {関数} bernpoly (@var{x}, @var{n})
44 変数@var{x}に関する@var{n}番目のBernoulli多項式を返します。
46 @opencatbox
47 @category{Number theory}
48 @closecatbox
49 @end deffn
51 @c -----------------------------------------------------------------------------
52 @anchor{bfzeta}
53 @deffn {関数} bfzeta (@var{s}, @var{n})
55 引数@var{s}に関するRiemannのゼータ関数を返します。
56 戻り値は多倍長浮動小数点(bfloat)です;
57 @var{n}は戻り値の小数点以下の桁数です。
59 @opencatbox
60 @category{Number theory}
61 @category{Numerical evaluation}
62 @closecatbox
63 @end deffn
65 @c -----------------------------------------------------------------------------
66 @anchor{bfhzeta}
67 @deffn {関数} bfhzeta (@var{s}, @var{h}, @var{n})
69 引数@var{s}と@var{h}に関するHurwitzのゼータ関数を返します。
70 戻り値は多倍長浮動小数点(bfloat)です;
71 @var{n}は戻り値の小数点以下の桁数です。
73 Hurwitzゼータ関数は以下のように定義されます。
75 @tex
76 $$\zeta \left(s,h\right) = \sum_{k=0}^\infty {1 \over \left(k+h\right)^{s}}$$
77 @end tex
78 @ifnottex
79 @example
80                         inf
81                         ====
82                         \        1
83          zeta (s,h)  =   >    --------
84                         /            s
85                         ====  (k + h)
86                         k = 0
87 @end example
88 @end ifnottex
90 @code{load ("bffac")}はこの関数をロードします。
92 @opencatbox
93 @category{Number theory}
94 @category{Numerical evaluation}
95 @closecatbox
96 @end deffn
98 @c -----------------------------------------------------------------------------
99 @anchor{burn}
100 @deffn {関数} burn (@var{n})
102 @var{n}番目のBernoulli数の近似の有理数をを返します。
103 @code{burn}は、(有理)Bernoulli数が
104 まあまあの効率で(超越的)ゼータによって近似できるという観察を利用します。
106 @example
107                    n - 1  1 - 2 n
108               (- 1)      2        zeta(2 n) (2 n)!
109      B(2 n) = ------------------------------------
110                                 2 n
111                              %pi
112 @end example
114 @code{bern}は、返す前にインデックス@var{n}までのBernoulli数すべてを計算するので、
115 @code{burn}は、大きな、孤立した@var{n}(たぶん105以上の@var{n})
116 に対して@code{bern}より効率的かもしれません。
117 @code{burn}は、255よりおおきな偶数@var{n}に対して近似を呼び出します。
118 奇数と255以下の@var{n}に対しては、関数@code{bern}が呼び出されます。
120 @code{load ("bffac")}はこの関数をロードします。@code{bern}も参照してください。
122 @opencatbox
123 @category{Number theory}
124 @closecatbox
125 @end deffn
127 @c -----------------------------------------------------------------------------
128 @anchor{cf}
129 @deffn {関数} cf (@var{expr})
131 @var{expr}を連分数に変換します。
132 @var{expr}は、
133 連分数と整数の平方根から成る式です。
134 式の中のオペランドは 代数演算子を組み合わせられます。
135 連分数と平方根は別にして、式の中の因子は整数か有理数でなければいけません。
136 Maximaは、
137 @code{cf}の外側で連分数に関する演算について知りません。
139 @code{listarith}を@code{false}にバインドした後、
140 @code{cf}は、引数を評価します。
141 @code{cf}は、リストとして表現された連分数を返します。
143 連分数@code{a + 1/(b + 1/(c + ...))}は、
144 リスト@code{[a, b, c, ...]}で表現されます。
145 リストの要素@code{a}, @code{b}, @code{c}, ...は、
146 整数に評価されなければいけません。
147 @var{expr}は、 may also contain 
148 @code{sqrt (n)}も含むかもしれません。@code{n}は整数です。
149 この場合、@code{cf}は、
150 変数@code{cflength}の値掛ける周期と同じ数の連分数の項を与えます。
152 連分数は、
153 @code{cfdisrep}が返す代数表現を評価することで、
154 数に評価することができます。
155 連分数を評価する別の方法に関しては、
156 @code{cfexpand}も参照してください。
158 @code{cfdisrep}, @code{cfexpand}, @code{cflength}も参照してください。
160 例:
162 @itemize @bullet
163 @item
164 @var{expr}は、連分数と整数の平方根から成る式です。
166 @example
167 (%i1) cf ([5, 3, 1]*[11, 9, 7] + [3, 7]/[4, 3, 2]);
168 (%o1)               [59, 17, 2, 1, 1, 1, 27]
169 (%i2) cf ((3/17)*[1, -2, 5]/sqrt(11) + (8/13));
170 (%o2)        [0, 1, 1, 1, 3, 2, 1, 4, 1, 9, 1, 9, 2]
171 @end example
173 @item
174 @code{cflength}は、
175 連分数の何周期を代数的無理数のために計算するかを制御します。
177 @example
178 (%i1) cflength: 1$
179 (%i2) cf ((1 + sqrt(5))/2);
180 (%o2)                    [1, 1, 1, 1, 2]
181 (%i3) cflength: 2$
182 (%i4) cf ((1 + sqrt(5))/2);
183 (%o4)               [1, 1, 1, 1, 1, 1, 1, 2]
184 (%i5) cflength: 3$
185 (%i6) cf ((1 + sqrt(5))/2);
186 (%o6)           [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2]
187 @end example
189 @item
190 連分数は、@code{cfdisrep}が返す代数的表現を評価することによって評価されることができます。
192 @example
193 (%i1) cflength: 3$
194 (%i2) cfdisrep (cf (sqrt (3)))$
195 (%i3) ev (%, numer);
196 (%o3)                   1.731707317073171
197 @end example
199 @item
200 Maximaは、
201 @code{cf}の外側で連分数に関する演算について知りません。
203 @example
204 (%i1) cf ([1,1,1,1,1,2] * 3);
205 (%o1)                     [4, 1, 5, 2]
206 (%i2) cf ([1,1,1,1,1,2]) * 3;
207 (%o2)                  [3, 3, 3, 3, 3, 6]
208 @end example
210 @end itemize
212 @opencatbox
213 @category{Continued fractions}
214 @closecatbox
215 @end deffn
217 @c NEEDS CLARIFICATION -- MAKE EXPLICIT HOW list IS RELATED TO a, b, c, ...
218 @c ALSO, CAN list CONTAIN ANYTHING OTHER THAN LITERAL INTEGERS ??
220 @c -----------------------------------------------------------------------------
221 @anchor{cfdisrep}
222 @deffn {関数} cfdisrep (@var{list})
224 連分数@code{[a, b, c, ...]}のリスト表現から、
225 形式@code{a + 1/(b + 1/(c + ...))}の通常の代数式を構成し返します。
227 @example
228 (%i1) cf ([1, 2, -3] + [1, -2, 1]);
229 (%o1)                     [1, 1, 1, 2]
230 (%i2) cfdisrep (%);
231                                   1
232 (%o2)                     1 + ---------
233                                     1
234                               1 + -----
235                                       1
236                                   1 + -
237                                       2
238 @end example
240 @opencatbox
241 @category{Continued fractions}
242 @closecatbox
243 @end deffn
245 @c -----------------------------------------------------------------------------
246 @anchor{cfexpand}
247 @deffn {関数} cfexpand (@var{x})
249 連分数@var{x}のコンバージェントの
250 最後(列1)とその1つ前(列2)の
251 分子と分母の行列を返します。
253 @example
254 (%i1) cf (rat (ev (%pi, numer)));
256 `rat' replaced 3.141592653589793 by 103993/33102 =3.141592653011902
257 (%o1)                  [3, 7, 15, 1, 292]
258 (%i2) cfexpand (%); 
259                          [ 103993  355 ]
260 (%o2)                    [             ]
261                          [ 33102   113 ]
262 (%i3) %[1,1]/%[2,1], numer;
263 (%o3)                   3.141592653011902
264 @end example
266 @opencatbox
267 @category{Continued fractions}
268 @closecatbox
269 @end deffn
271 @c -----------------------------------------------------------------------------
272 @anchor{cflength}
273 @defvr {オプション変数} cflength
274 デフォルト値: 1
276 @code{cflength}は、
277 値@code{cflength}掛ける周期として
278 関数@code{cf}が与える連分数の項の数を制御します。
279 従って、デフォルトは1周期を与えます。
281 @example
282 (%i1) cflength: 1$
283 (%i2) cf ((1 + sqrt(5))/2);
284 (%o2)                    [1, 1, 1, 1, 2]
285 (%i3) cflength: 2$
286 (%i4) cf ((1 + sqrt(5))/2);
287 (%o4)               [1, 1, 1, 1, 1, 1, 1, 2]
288 (%i5) cflength: 3$
289 (%i6) cf ((1 + sqrt(5))/2);
290 (%o6)           [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2]
291 @end example
293 @opencatbox
294 @category{Continued fractions}
295 @closecatbox
296 @end defvr
298 @c -----------------------------------------------------------------------------
299 @anchor{divsum}
300 @deffn {関数} divsum (@var{n}, @var{k})
301 @deffnx {関数} divsum (@var{n})
303 @code{divsum (@var{n}, @var{k})}は、
304 @var{n}の約数の@var{k}乗した和を返します。
306 @code{divsum (@var{n})}は
307 @var{n}の約数の和を返します。
309 @example
310 (%i1) divsum (12);
311 (%o1)                          28
312 (%i2) 1 + 2 + 3 + 4 + 6 + 12;
313 (%o2)                          28
314 (%i3) divsum (12, 2);
315 (%o3)                          210
316 (%i4) 1^2 + 2^2 + 3^2 + 4^2 + 6^2 + 12^2;
317 (%o4)                          210
318 @end example
320 @opencatbox
321 @category{Number theory}
322 @closecatbox
323 @end deffn
325 @c -----------------------------------------------------------------------------
326 @anchor{euler}
327 @deffn {関数} euler (@var{n})
329 非負の整数@var{n}に対して
330 @var{n}番目のEuler数を返します。
332 Euler-Mascheroni定数に関しては、@code{%gamma}を参照してください。
334 @example
335 (%i1) map (euler, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
336 (%o1)    [1, 0, - 1, 0, 5, 0, - 61, 0, 1385, 0, - 50521]
337 @end example
339 @opencatbox
340 @category{Number theory}
341 @closecatbox
342 @end deffn
344 @c -----------------------------------------------------------------------------
345 @anchor{fib}
346 @deffn {関数} fib (@var{n})
347 第@var{n}項のFibonacci数を返します。
348 @code{fib(0)}は0に等しく、@code{fib(1)}は1に等しく、
349 @code{fib (-@var{n})}は@code{(-1)^(@var{n} + 1) * fib(@var{n})}に等しい。
351 @code{fib}をコールした後,
352 @code{prevfib}は@code{fib (@var{x} - 1)}、
353 計算された最後の1つ前のFibonacci数に等しい。
355 @example
356 (%i1) map (fib, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
357 (%o1)         [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
358 @end example
360 @opencatbox
361 @category{Number theory}
362 @closecatbox
363 @end deffn
365 @c -----------------------------------------------------------------------------
366 @anchor{fibtophi}
367 @deffn {関数} fibtophi (@var{expr})
369 @var{expr}に関するFibonacci数を
370 定数@code{%phi}を使って表現します。
371 @code{%phi}は、@code{(1 + sqrt(5))/2}, 近似的に1.61803399です。
373 例:
375 @c ===beg===
376 @c fibtophi (fib (n));
377 @c fib (n-1) + fib (n) - fib (n+1);
378 @c fibtophi (%);
379 @c ratsimp (%);
380 @c ===end===
381 @example
382 (%i1) fibtophi (fib (n));
383                            n             n
384                        %phi  - (1 - %phi)
385 (%o1)                  -------------------
386                            2 %phi - 1
387 (%i2) fib (n-1) + fib (n) - fib (n+1);
388 (%o2)          - fib(n + 1) + fib(n) + fib(n - 1)
389 (%i3) fibtophi (%);
390             n + 1             n + 1       n             n
391         %phi      - (1 - %phi)        %phi  - (1 - %phi)
392 (%o3) - --------------------------- + -------------------
393                 2 %phi - 1                2 %phi - 1
394                                           n - 1             n - 1
395                                       %phi      - (1 - %phi)
396                                     + ---------------------------
397                                               2 %phi - 1
398 (%i4) ratsimp (%);
399 (%o4)                           0
400 @end example
402 @opencatbox
403 @category{Number theory}
404 @closecatbox
405 @end deffn
407 @c -----------------------------------------------------------------------------
408 @anchor{ifactors}
409 @deffn {関数} ifactors (@var{n})
411 正の整数@var{n}に対して、
412 @var{n}の素因数分解を返します。
413 もし@code{n=p1^e1..pk^nk}が
414 @var{n}の素因数への分解なら、
415 ifactorsは@code{[[p1, e1], ... , [pk, ek]]}を返します。
417 使われる素因数分解法は9973までの素数による試行除算と、
418 Pollardのロー法、楕円曲線法です。
420 @example
421 (%i1) ifactors(51575319651600);
422 (%o1)     [[2, 4], [3, 2], [5, 2], [1583, 1], [9050207, 1]]
423 (%i2) apply("*", map(lambda([u], u[1]^u[2]), %));
424 (%o2)                        51575319651600
425 @end example
427 @opencatbox
428 @category{Number theory}
429 @closecatbox
430 @end deffn
432 @c -----------------------------------------------------------------------------
433 @anchor{igcdex}
434 @deffn {関数} igcdex (@var{n}, @var{k})
436 リスト @code{[@var{a}, @var{b}, @var{u}]}を返します。
437 ここで、 @var{u}は@var{n}と @var{k}の最大公約数で、
438 @var{u}は @code{@var{a} @var{n} + @var{b} @var{k}}に等しいです。
439 引数 @var{n}と @var{k}は整数でなければいけません。
441 @code{igcdex}はユークリッドのアルゴリズムを実装します。
442 @mrefdot{gcdex}も参照してください。
444 コマンド @code{load("gcdex")}はこの関数をロードします。
446 例:
448 @example
449 (%i1) load("gcdex")$
451 (%i2) igcdex(30,18);
452 (%o2)                      [- 1, 2, 6]
453 (%i3) igcdex(1526757668, 7835626735736);
454 (%o3)            [845922341123, - 164826435, 4]
455 (%i4) igcdex(fib(20), fib(21));
456 (%o4)                   [4181, - 2584, 1]
457 @end example
459 @opencatbox
460 @category{Number theory}
461 @closecatbox
462 @end deffn
464 @c -----------------------------------------------------------------------------
465 @anchor{inrt}
466 @deffn {関数} inrt (@var{x}, @var{n})
468 @var{x}の絶対値の整数@var{n}乗根を返します。
470 @example
471 (%i1) l: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]$
472 (%i2) map (lambda ([a], inrt (10^a, 3)), l);
473 (%o2) [2, 4, 10, 21, 46, 100, 215, 464, 1000, 2154, 4641, 10000]
474 @end example
476 @opencatbox
477 @category{Number theory}
478 @closecatbox
479 @end deffn
481 @c -----------------------------------------------------------------------------
482 @anchor{inv_mod}
483 @deffn {関数} inv_mod (@var{n}, @var{m})
485 @var{m}を法とする@var{n}の逆元を計算します。
486 もし@var{n}が@var{m}を法とするゼロ因子なら、
487 @code{inv_mod (n,m)}は@code{false}を返します。
489 @example
490 (%i1) inv_mod(3, 41);
491 (%o1)                           14
492 (%i2) ratsimp(3^-1), modulus=41;
493 (%o2)                           14
494 (%i3) inv_mod(3, 42);
495 (%o3)                          false
496 @end example
498 @opencatbox
499 @category{Number theory}
500 @closecatbox
501 @end deffn
503 @c -----------------------------------------------------------------------------
504 @anchor{isqrt}
505 @deffn {関数} isqrt (@var{x})
507 整数 @var{x}の絶対値の「整数平方根」を返します。
509 @opencatbox
510 @category{Mathematical functions}
511 @closecatbox
512 @end deffn
514 @c -----------------------------------------------------------------------------
515 @anchor{jacobi}
516 @deffn {関数} jacobi (@var{p}, @var{q})
518 @var{p}と@var{q}のJacobi記号を返します。
520 @example
521 (%i1) l: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]$
522 (%i2) map (lambda ([a], jacobi (a, 9)), l);
523 (%o2)         [1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0]
524 @end example
526 @opencatbox
527 @category{Number theory}
528 @closecatbox
529 @end deffn
531 @c -----------------------------------------------------------------------------
532 @anchor{lcm}
533 @deffn {関数} lcm (@var{expr_1}, ..., @var{expr_n})
535 引数の最小公倍数を返します。
536 引数は、整数はもちろん一般式を取り得ます。
538 @code{load ("functs")}はこの関数をロードします。
540 @opencatbox
541 @category{Number theory}
542 @closecatbox
543 @end deffn
545 @c -----------------------------------------------------------------------------
546 @anchor{mod}
547 @deffn {関数} mod (@var{x}, @var{y})
549 もし@var{x}と@var{y}が実数で、@var{y}がゼロでないなら、
550 @code{@var{x} - @var{y} * floor(@var{x} / @var{y})}を返します。
551 さらにすべての実数@var{x}に関して、@code{mod (@var{x}, 0) = @var{x}}が成り立ちます。
552 定義@code{mod (@var{x}, 0) = @var{x}}の議論に関しては、
553 Graham, Knuth, Patashnik著の「コンピュータの数学」の3.4節を参照してください。
554 関数@code{mod (@var{x}, 1)} は、周期が1で@code{mod (1, 1) = 0}、@code{mod (0, 1) = 0}ののこぎり波関数です。
556 複素数の偏角の主値(区間@code{(-%pi, %pi]}での数)を見つけるためには、
557 関数@code{@var{x} |-> %pi - mod (%pi - @var{x}, 2*%pi)}を使います。
558 @var{x}は引数です。
560 @var{x}と@var{y}が定数式(例えば、@code{10 * %pi})の時、
561 @code{mod}は、@code{floor}や@code{ceiling}が使うのと同じ多倍長浮動小数点評価スキームを
562 使います。
563 再び同様に、まれですが、@code{mod}は間違った値を返すことがありえます。
565 数値でない引数@var{x}や@var{y}に関して,@code{mod}は、いくつかの式整理規則を知っています:
568 @c ===beg===
569 @c mod (x, 0);
570 @c mod (a*x, a*y);
571 @c mod (0, x);
572 @c ===end===
573 @example
574 (%i1) mod (x, 0);
575 (%o1)                           x
576 (%i2) mod (a*x, a*y);
577 (%o2)                      a mod(x, y)
578 (%i3) mod (0, x);
579 (%o3)                           0
580 @end example
582 @opencatbox
583 @category{Mathematical functions}
584 @closecatbox
585 @end deffn
587 @c -----------------------------------------------------------------------------
588 @anchor{next_prime}
589 @deffn {関数} next_prime (@var{n})
591 @var{n}よりも大きな最も小さな素数を返します。
593 @example
594 (%i1) next_prime(27);
595 (%o1)                       29
596 @end example
598 @opencatbox
599 @category{Number theory}
600 @closecatbox
601 @end deffn
603 @c -----------------------------------------------------------------------------
604 @anchor{partfrac}
605 @deffn {関数} partfrac (@var{expr}, @var{var})
607 主変数@var{var}に関する部分分数式@var{expr}を展開します。
608 @code{partfrac}は、完全な部分分数分解を行います。
609 利用したアルゴリズムは、
610 部分分数展開(元の分母の因子)の分母は互いに素であるという事実に基づいています。
611 分子は分母の線形結合として書け、結果が展開ということになります。
613 @example
614 (%i1) 1/(1+x)^2 - 2/(1+x) + 2/(2+x);
615                       2       2        1
616 (%o1)               ----- - ----- + --------
617                     x + 2   x + 1          2
618                                     (x + 1)
619 (%i2) ratsimp (%);
620                                  x
621 (%o2)                 - -------------------
622                          3      2
623                         x  + 4 x  + 5 x + 2
624 (%i3) partfrac (%, x);
625                       2       2        1
626 (%o3)               ----- - ----- + --------
627                     x + 2   x + 1          2
628                                     (x + 1)
629 @end example
630 @end deffn
632 @c -----------------------------------------------------------------------------
633 @anchor{power_mod}
634 @deffn {関数} power_mod (@var{a}, @var{n}, @var{m})
636 @code{a^n mod m}を計算するために
637 剰余アルゴリズムを使います。
638 ここで、@var{a}と@var{n}は整数で、@var{m}は正の整数です。
639 もし@var{n}が負なら、@code{inv_mod}が剰余逆元を見つけるために使われます。
641 @example
642 (%i1) power_mod(3, 15, 5);
643 (%o1)                          2
644 <(%i2) mod(3^15,5);
645 (%o2)                          2
646 (%i3) power_mod(2, -1, 5);
647 (%o3)                          3
648 (%i4) inv_mod(2,5);
649 (%o4)                          3
650 @end example
652 @opencatbox
653 @category{Number theory}
654 @closecatbox
655 @end deffn
657 @c -----------------------------------------------------------------------------
658 @anchor{primep}
659 @deffn {関数} primep (@var{n})
661 素数テスト。
662 もし@code{primep (@var{n})}が@code{false}を返すなら、
663 @var{n}は合成数であり、
664 もし@code{true}を返すなら、@var{n}は非常に高い確立で素数です。
666 3317044064679887385961981より小さな@var{n}に対して、
667 Miller-Rabinのテストの決定的バージョンが使われます。
668 もし@code{primep (@var{n})}が@code{true}を返すなら、
669 @var{n}は素数です。
671 3317044064679887385961981よりの大きな@var{n}に対して、
672 @code{primep}は、
673 @code{primep_number_of_tests}個のMiller-Rabinの疑似素数テストと
674 1つのLucasの疑似素数テストを使います。
675 @var{n}がMiller-Rabinのテスト1つを通過する確率は
676 1/4より小さいです。
677 @code{primep_number_of_tests}に関してデフォルト値25を使うと、
678 通過した@var{n}が合成である確率は
679 10^-15よりもはるかに小さいです。
681 @opencatbox
682 @category{Predicate functions}
683 @category{Number theory}
684 @closecatbox
685 @end deffn
687 @c -----------------------------------------------------------------------------
688 @anchor{primep_number_of_tests}
689 @defvr {オプション変数} primep_number_of_tests
690 デフォルト値: 25
692 @code{primep}の中で使われるMiller-Rabinのテストの回数。
695 @opencatbox
696 @category{Predicate functions}
697 @category{Number theory}
698 @closecatbox
699 @end defvr
701 @c -----------------------------------------------------------------------------
702 @anchor{prev_time}
703 @deffn {関数} prev_prime (@var{n})
705 @var{n}よりも小さな最大の素数を返します。
707 @example
708 (%i1) prev_prime(27);
709 (%o1)                       23
710 @end example
712 @opencatbox
713 @category{Number theory}
714 @closecatbox
715 @end deffn
717 @c -----------------------------------------------------------------------------
718 @anchor{qunit}
719 @deffn {関数} qunit (@var{n})
721 実二次数体@code{sqrt (@var{n})}の基本単数、
722 すなわち、ノルムが1の要素を返します。
723 ここで、@var{n}は整数です。
724 これは、結果的にペル方程式@code{a^2 - @var{n} b^2 = 1}を解くことになります。
726 @example
727 (%i1) qunit (17);
728 (%o1)                     sqrt(17) + 4
729 (%i2) expand (% * (sqrt(17) - 4));
730 (%o2)                           1
731 @end example
733 @opencatbox
734 @category{Number theory}
735 @closecatbox
736 @end deffn
738 @c -----------------------------------------------------------------------------
739 @anchor{totient}
740 @deffn {関数} totient (@var{n})
742 @var{n}以下の、
743 @var{n}と互いに素な整数の数を返します。
745 @opencatbox
746 @category{Number theory}
747 @closecatbox
748 @end deffn
750 @c -----------------------------------------------------------------------------
751 @defvr {オプション変数} zerobern
752 デフォルト値: @code{true}
754 @code{zerobern}が@code{false}の時、
755 @code{bern}はBernoulli数を除外し、@code{euler}はゼロに等しいEuler数を除外します。
756 @code{bern}と@code{euler}を参照してください。
758 @opencatbox
759 @category{Number theory}
760 @closecatbox
762 @end defvr
764 @c -----------------------------------------------------------------------------
765 @anchor{zeta}
766 @deffn {関数} zeta (@var{n})
768 Riemannのゼータ関数を返します。
769 もし@var{x}が負の整数、0, 1,または、正の偶数なら、
770 Reimannのゼータ関数は厳密な値に整理されます。
771 正の偶数に対しては、
772 加えて、オプション変数@code{zeta%pi}は@code{true}でなければいけません。
773 (@code{zeta%pi}を参照してください。)
774 浮動小数点または多倍長浮動小数点数に対して、Reimannゼータ関数は数値的に評価されます。
775 Maximaは、
776 有理非整数、浮動小数点数、複素数の引数を含む
777 他の引数すべてに対して、また、もし@code{zeta%pi}が値@code{false}なら偶数に対して、
778 名詞形@code{zeta (@var{n})}を返します。
780 @code{zeta(1)}は未定義ですが、
781 Maximaは上からと下からの極限@code{limit(zeta(x), x, ,1)}を知っています。
783 @code{bfzeta}と@code{zeta%pi}も参照してください。
785 例:
788 @c ===beg===
789 @c zeta([-2, -1, 0, 0.5, 2, 3,1+%i]);
790 @c limit(zeta(x),x,1,plus);
791 @c limit(zeta(x),x,1,minus);
792 @c ===end===
793 @example
794 (%i1) zeta([-2, -1, 0, 0.5, 2, 3, 1+%i]);
795                                              2
796             1     1                       %pi
797 (%o1) [0, - --, - -, - 1.460354508809586, ----, zeta(3), 
798             12    2                        6
799                                                     zeta(%i + 1)]
800 (%i2) limit(zeta(x),x,1,plus);
801 (%o2)                          inf
802 (%i3) limit(zeta(x),x,1,minus);
803 (%o3)                         minf
804 @end example
806 @opencatbox
807 @category{Number theory}
808 @closecatbox
809 @end deffn
811 @c -----------------------------------------------------------------------------
812 @anchor{zeta%pi}
813 @defvr {オプション変数} zeta%pi
814 デフォルト値: @code{true}
816 @code{zeta%pi}が@code{true}の時、
817 偶数@code{n}に対して、@code{zeta}は@code{%pi^n}に比例する式を返します。
818 そうでないなら、
819 偶数@code{n}に対して、@code{zeta}は名詞形@code{zeta (n)}を返します。
821 例:
823 @c ===beg===
824 @c zeta%pi: true$
825 @c zeta (4);
826 @c zeta%pi: false$
827 @c zeta (4);
828 @c ===end===
829 @example
830 (%i1) zeta%pi: true$
831 (%i2) zeta (4);
832                                  4
833                               %pi
834 (%o2)                         ----
835                                90
836 (%i3) zeta%pi: false$
837 (%i4) zeta (4);
838 (%o4)                        zeta(4)
839 @end example
841 @opencatbox
842 @category{Number theory}
843 @closecatbox
844 @end defvr