[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

# 10. Mathematical Functions

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 10.1 Functions for Numbers

関数: abs (z)

  `abs`関数は数学的な絶対値関数を表し、数値とシンボルどちらにも機能します。 もし zが実数か複素数なら `abs`は zの絶対値を返します。 可能なら、絶対値関数を使ったシンボル式も整理します。

  Maximaは `abs`を含む式に関して微分したり、積分したり極限を取ったりできます。 `abs_integrate`パッケージは、 abs関数を含む積分を計算するように Maximaの機能をさらに拡張します。 以下の例の中の(%i12)を参照してください。

  リストや行列に適用した時、 `abs`は自動的に項目上に分配されます。 同様に等式の両辺上に分配されます。 この振る舞いを変えるには、変数 `distribute_over`を参照してください。

  例:

  数値定数や様々な無限大を含む、実数や複素数に関する `abs`の計算。 一番目の例は `abs`がリストの要素上にいかに分配されるか示します。

      (%i1) abs([-4, 0, 1, 1+%i]);
      (%o1)                  [4, 0, 1, sqrt(2)]

      (%i2) abs((1+%i)*(1-%i));
      (%o2)                           2
      (%i3) abs(%e+%i);
                                      2
      (%o3)                    sqrt(%e  + 1)
      (%i4) abs([inf, infinity, minf]);
      (%o4)                   [inf, inf, inf]

  `abs`を含む式の整理:

      (%i5) abs(x^2);
                                      2
      (%o5)                          x
      (%i6) abs(x^3);
                                   2
      (%o6)                       x  abs(x)

      (%i7) abs(abs(x));
      (%o7)                       abs(x)
      (%i8) abs(conjugate(x));
      (%o8)                       abs(x)

  `abs`関数を伴う積分と微分。 `abs_integrate`パッケージをロードすると、 `abs`関数を含む積分は更に実行することが可能であることに注意してください。 最後の例は`abs`のラプラス変換を示します: `laplace`を参照してください。

      (%i9) diff(x*abs(x),x),expand;
      (%o9)                       2 abs(x)

      (%i10) integrate(abs(x),x);
                                   x abs(x)
      (%o10)                       --------
                                      2

      (%i11) integrate(x*abs(x),x);
                                 /
                                 [
      (%o11)                     I x abs(x) dx
                                 ]
                                 /

      (%i12) load(abs_integrate)$
      (%i13) integrate(x*abs(x),x);
                            2           3
                           x  abs(x)   x  signum(x)
      (%o13)               --------- - ------------
                               2            6

      (%i14) integrate(abs(x),x,-2,%pi);
                                     2
                                  %pi
      (%o14)                      ---- + 2
                                   2

      (%i15) laplace(abs(x),x,s);
                                     1
      (%o15)                         --
                                      2
                                     s

  Categories: Mathematical functions

関数: ceiling (x)

  xが実数の時 x以上の最小の整数を返します。

  もし xが定数式(例えば `10 * %pi`)なら、 `ceiling`は xを多倍長浮動小数点数を使って評価し、 その多倍長浮動小数点数に `ceiling`を適用します。 ほとんど起こりそうにないですが、 `ceiling`は浮動小数点を使うので、 `ceiling`は定数入力に対して間違った値を返す可能性があります。 このエラーを起こさないようにするには `fpprec`の３つの値を使って浮動小数点評価を行います。

  定数でない入力に関しては `ceiling`は整理された値を返そうとします。 以下は `ceiling`が知っている式整理の例です:

      (%i1) ceiling (ceiling (x));
      (%o1)                      ceiling(x)
      (%i2) ceiling (floor (x));
      (%o2)                       floor(x)
      (%i3) declare (n, integer)$
      (%i4) [ceiling (n), ceiling (abs (n)), ceiling (max (n, 6))];
      (%o4)                [n, abs(n), max(n, 6)]
      (%i5) assume (x > 0, x < 1)$
      (%i6) ceiling (x);
      (%o6)                           1
      (%i7) tex (ceiling (a));
      $$\left \lceil a \right \rceil$$
      (%o7)                         false

  関数 `ceiling`はリスト、行列、方程式上に展開されます。 `distribute_over`.を参照してください。

  最終的に、明らかに複雑な入力すべてに対して `ceiling`は名詞形を返します。

  もし関数の範囲が整数の部分集合なら `integervalued`に宣言できます。 `ceiling`, `floor`関数両方ともこの情報を使います; 例えば:

      (%i1) declare (f, integervalued)$
      (%i2) floor (f(x));
      (%o2)                         f(x)
      (%i3) ceiling (f(x) - 1);
      (%o3)                       f(x) - 1

  使用例:

      (%i1) unitfrac(r) := block([uf : [], q],
          if not(ratnump(r)) then
             error("unitfrac: argument must be a rational number"),
          while r # 0 do (
              uf : cons(q : 1/ceiling(1/r), uf),
              r : r - q),
          reverse(uf))$
      (%i2) unitfrac (9/10);
                                  1  1  1
      (%o2)                      [-, -, --]
                                  2  3  15
      (%i3) apply ("+", %);
                                     9
      (%o3)                          --
                                     10
      (%i4) unitfrac (-9/10);
                                        1
      (%o4)                       [- 1, --]
                                        10
      (%i5) apply ("+", %);
                                      9
      (%o5)                         - --
                                      10
      (%i6) unitfrac (36/37);
                              1  1  1  1    1
      (%o6)                  [-, -, -, --, ----]
                              2  3  8  69  6808
      (%i7) apply ("+", %);
                                     36
      (%o7)                          --
                                     37

  Categories: Mathematical functions

関数: entier (x)

  xが数値の場合 x以下の最大の整数を返します。 （`fixnum`における） `fix`はこれの別名で、 `fix(x)`はまさに同じです。

  Categories: Mathematical functions

関数: floor (x)

  xが実数の時 x以下の最大の整数を返します。

  もしxが定数式(例えば `10 * %pi`)なら、 `floor`は多倍長浮動小数点数を使って xを評価し、 結果の多倍長浮動小数点に`floor`を適用します。 ほとんど起こりそうにないですが、 `floor`は浮動小数点を使うので `floor`は定数入力に対して間違った値を返す可能性があります。 このエラーを起こさないようにするには `fpprec`の３つの値を使って浮動小数点評価を行います。

  定数でない入力に関しては `floor`は整理された値を返そうとします。 以下は `ceiling`が知っている式整理の例です:

      (%i1) floor (ceiling (x));
      (%o1)                      ceiling(x)
      (%i2) floor (floor (x));
      (%o2)                       floor(x)
      (%i3) declare (n, integer)$
      (%i4) [floor (n), floor (abs (n)), floor (min (n, 6))];
      (%o4)                [n, abs(n), min(n, 6)]
      (%i5) assume (x > 0, x < 1)$
      (%i6) floor (x);
      (%o6)                           0
      (%i7) tex (floor (a));
      $$\left \lfloor a \right \rfloor$$
      (%o7)                         false

  関数 `floor`はリスト、行列、方程式上に展開されます。 `distribute_over`.を参照してください。

  最終的に、明らかに複雑な入力すべてに対して `floor`は名詞形を返します。

  もし関数の範囲が整数の部分集合なら、 `integervalued`に宣言できます。 `ceiling`, `floor`関数両方ともこの情報を使います; 例えば:

      (%i1) declare (f, integervalued)$
      (%i2) floor (f(x));
      (%o2)                         f(x)
      (%i3) ceiling (f(x) - 1);
      (%o3)                       f(x) - 1

  Categories: Mathematical functions

関数: fix (x)

  `entier (x)`の別名です。

  Categories: Mathematical functions

関数: lmax (L)

  Lがリストか集合の時 `apply ('max, args (L))`を返します。 Lがリストでも集合でもない時エラーを示します。

  Categories: Mathematical functions · Lists · Sets

関数: lmin (L)

  Lがリストか集合の時 `apply ('min, args (L))`を返します。 Lがリストでも集合でもない時エラーを示します。

  Categories: Mathematical functions · Lists · Sets

関数: max (x_1, ..., x_n)

  式 x_1から x_nの中の最大値に関して整理された値を返します。 `get (trylevel, maxmin)`が２以上の時、 `max`は式整理 `max (e, -e) --> |e|`を使います。 `get (trylevel, maxmin)`が３以上の時、 maxは２つの他の引数の間の式を消去しようとします; 例えば `max (x, 2*x, 3*x) --> max (x, 3*x)`。 `trylevel`を2に設定するには `put (trylevel, 2, maxmin)`を使います。

  Categories: Mathematical functions

関数: min (x_1, ..., x_n)

  式 x_1から x_nの中の最小値に関して整理された値を返します。 `get (trylevel, maxmin)`が２以上の時、 `max`は式整理 `max (e, -e) --> |e|`を使います。 `get (trylevel, maxmin)`が３以上の時、 maxは２つの他の引数の間の式を消去しようとします; 例えば `max (x, 2*x, 3*x) --> max (x, 3*x)`。 `trylevel`を2に設定するには `put (trylevel, 2, maxmin)`を使います。

  `max`や `lmin`.も参照してください。

  Categories: Mathematical functions

関数: round (x)

  xが実数の時 xに最も近い整数を返します。 1/2を掛けてroundして2を掛けると最も近い偶数に丸められます。 xの評価は `floor`や `ceiling`に似ています。

  関数 `round`はリスト、行列、方程式上に展開されます。 `distribute_over`.を参照してください。

  Categories: Mathematical functions

関数: signum (x)

  実数か複素数 xに対して、もしxが0ならsignum関数は0を返します; ゼロでない数値入力 xに対して、signum関数は `x/abs(x)`を返します。

  非数値入力に対して Maximaは入力の符号を決定しようと試みます。 符号が負、ゼロ、正いずれかの時 `signum`はそれぞれ、-1, 0, 1を返します。 符号に関する他の値すべてに対して `signum`は式整理された同値形を返します。 式整理は (`signum(-x)`は `-signum(x)`を与える)反転と (`signum(x*y)`は `signum(x) * signum(y)`を与える)乗法恒等式を含みます。

  `signum` 関数はリスト、行列もしくは等式上に分配されます。 `distribute_over`を参照してください。

  Categories: Mathematical functions

関数: truncate (x)

  xが実数の時、 絶対値が xよりも大きくない xに最も近い整数 xの評価は `floor`や `ceiling`.と同じです。

  関数 `truncate`はリスト、行列、方程式上に展開されます。 `distribute_over`.を参照してください。

  Categories: Mathematical functions

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 10.2 Functions for Complex Numbers

関数: cabs (expr)

  複素数を表す式の絶対値を計算します。 関数 `abs`と異なり、 `cabs`関数は常に引数を実部と虚部に分解します。 もし `x`と `y`が実変数か実数式を表すなら、 `cabs`関数は `x + %i*y`の絶対値を

                                 2    2
                           sqrt(y  + x )

  として計算します。

  `cabs`関数は、式の絶対値を計算するのを助けるため、 複素関数の対称性プロパティ既知のプロパティを使うことができます。 もしそんな恒等式が存在するなら、 関数プロパティを使って `cabs`に知らせることができます。 `cabs`が理解する対称性は以下のものです: 鏡像対称, 共役関数, 複素特性。

  `cabs`は動詞関数であり、シンボル計算には適しません。 (絶対値を含む式の積分、微分、極限を含む)そんな計算には `abs`を使ってください。

  `cabs`の結果は絶対値関数 `abs`や逆正接 `atan2`を含むことがあります。

  リストや行列に適用されると、 `cabs`は自動的に項目上に分配されます。 同様に等式の両辺上に分配されます。

  複素数を使って計算する更なる方法には、 関数 `rectform`, `realpart`, `imagpart`, `carg`, `conjugate`, `polarform`を参照してください。

  例:

  `sqrt`と `sin`を使った例。

      (%i1) cabs(sqrt(1+%i*x));
                                   2     1/4
      (%o1)                      (x  + 1)
      (%i2) cabs(sin(x+%i*y));
                          2        2         2        2
      (%o2)       sqrt(cos (x) sinh (y) + sin (x) cosh (y))

  複素偏角を使った絶対値の計算で使われる誤差関数。 `erf`は鏡像対称性を持ちます。

      (%i3) cabs(erf(x+%i*y));
                                                2
                 (erf(%i y + x) - erf(%i y - x))
      (%o3) sqrt(--------------------------------
                                4
                                                                     2
                                      (erf(%i y + x) + erf(%i y - x))
                                    - --------------------------------)
                                                     4

  Maximaは Bessel関数の複素恒等式を知っています。 そのおかげで複素偏角に関する絶対値を計算できます。 以下は `bessel_j`に関する例です。

      (%i4) cabs(bessel_j(1,%i));
      (%o4)                 abs(bessel_j(1, %i))

  Categories: Complex variables

関数: carg (z)

  zの複素偏角を返します。 複素偏角は `r exp (theta %i) = z`（`r`は zの絶対値）を満たす `(-%pi, %pi]`の間の角`theta`です。

  `carg`は計算関数であって、式整理関数ではありません。

  `abs` (複素絶対値), `polarform`, `rectform`, `realpart`, `imagpart`も参照してください。

  例:

      (%i1) carg (1);
      (%o1)                           0
      (%i2) carg (1 + %i);
                                     %pi
      (%o2)                          ---
                                      4
      (%i3) carg (exp (%i));
      (%o3)                           1
      (%i4) carg (exp (%pi * %i));
      (%o4)                          %pi
      (%i5) carg (exp (3/2 * %pi * %i));
                                      %pi
      (%o5)                         - ---
                                       2
      (%i6) carg (17 * exp (2 * %i));
      (%o6)                           2

  Categories: Complex variables

関数: conjugate (x)

  xの複素共役を返します。

      (%i1) declare ([aa, bb], real, cc, complex, ii, imaginary);

      (%o1)                         done
      (%i2) conjugate (aa + bb*%i);

      (%o2)                      aa - %i bb
      (%i3) conjugate (cc);

      (%o3)                     conjugate(cc)
      (%i4) conjugate (ii);

      (%o4)                         - ii
      (%i5) conjugate (xx + yy);

      (%o5)             conjugate(yy) + conjugate(xx)

  Categories: Complex variables

関数: imagpart (expr)

  式 exprの虚部を返します。

  `imagpart`は、計算関数であり、整理関数ではありません。

  `abs`, `carg`, `polarform`, `rectform`, `realpart`も参照してください。

  例:

      (%i1) imagpart (a+b*%i);
      (%o1)                                  b
      (%i2) imagpart (1+sqrt(2)*%i);
      (%o2)                               sqrt(2)
      (%i3) imagpart (1);
      (%o3)                                  0
      (%i4) imagpart (sqrt(2)*%i);
      (%o4)                               sqrt(2)

  Categories: Complex variables

関数: polarform (expr)

  exprと同値な式 `r %e^(%i theta)`を返します。 ここで `r`と `theta`は純粋な実数です。

  例:

      (%i1) polarform(a+b*%i);
                                    2    2    %i atan2(b, a)
      (%o1)                   sqrt(b  + a ) %e
      (%i2) polarform(1+%i);
                                               %i %pi
                                               ------
                                                 4
      (%o2)                          sqrt(2) %e
      (%i3) polarform(1+2*%i);
                                             %i atan(2)
      (%o3)                        sqrt(5) %e

  Categories: Complex variables · Exponential and logarithm functions

関数: realpart (expr)

  exprの実部を返します。 `realpart`と `imagpart`は、 平方根、対数関数、指数関数はもちろん三角関数や双曲関数を含む式上で機能します。

  例:

      (%i1) realpart (a+b*%i);
      (%o1)                                  a
      (%i2) realpart (1+sqrt(2)*%i);
      (%o2)                                  1
      (%i3) realpart (sqrt(2)*%i);
      (%o3)                                  0
      (%i4) realpart (1);
      (%o4)                                  1

  Categories: Complex variables

関数: rectform (expr)

  exprと同値な式 `a + b %i`を返します。 ここで aと bは純粋な実数です。

  例:

      (%i1) rectform(sqrt(2)*%e^(%i*%pi/4));
      (%o1)                               %i + 1
      (%i2) rectform(sqrt(b^2+a^2)*%e^(%i*atan2(b, a)));
      (%o2)                              %i b + a
      (%i3) rectform(sqrt(5)*%e^(%i*atan(2)));
      (%o3)                              2 %i + 1

  Categories: Complex variables

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 10.3 Combinatorial Functions

演算子: !!

  二重階乗演算子。

  整数や浮動小数点、有理数 `n`に対して、 `n!!`は積 `n (n-2) (n-4) (n-6) ... (n - 2 (k - 1))` （`k`は `entier (n/2)`、すなわち `n/2`以下の最大整数に等しい）に評価されます。 この定義は非整数の引数に対して他の出版物の定義と一致しないことに注意してください。

  偶数(もしくは奇数) `n`に対して、 `n!!`は2(もしくは1)からnまでのすべての偶数(もしくは奇数)の積に評価されます。

  整数でも浮動小数点でも有理数でもない引数 `n`に対して、 `n!!`は名詞形 `genfact (n, n/2, 2)`を返します。

  Categories: Gamma and factorial functions · Operators

関数: binomial (x, y)

  二項係数 `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)

  Categories: Number theory

関数: factcomb (expr)

  例えば、 `(n + 1)*n!`を `(n + 1)!`に変換することによって、 exprの中の階乗の係数を階乗それ自身と結合しようとします。

  もし `sumsplitfact`が `false`に設定されたなら、 `minfactorial`が `factcomb`の後適用されるようになります。

  例:

      (%i1) sumsplitfact;
      (%o1)                                true
      (%i2) (n + 1)*(n + 1)*n!;
                                               2
      (%o2)                             (n + 1)  n!
      (%i3) factcomb (%);
      (%o3)                         (n + 2)! - (n + 1)!
      (%i4) sumsplitfact: not sumsplitfact;
      (%o4)                                false
      (%i5) (n + 1)*(n + 1)*n!;
                                                2
      (%o5)                             (n + 1)  n!
      (%i6) factcomb (%);
      (%o6)                        n (n + 1)! + (n + 1)!

  Categories: Gamma and factorial functions

関数: factorial
演算子: !

  階乗演算子。

  （整数、有理数、実数を含む）負の整数を除いた任意の複素数 `x`に対して、 `x!`は `gamma(x+1)`として定義されます。

  整数 `x`に対して、 `x!`は1からxまでの整数の積に整理されます。 `0!`は1に整理されます。 浮動小数点または多倍長浮動小数点精度の実数または複素数 `x`に対して、 `x!`は `gamma(x+1)`の値に整理されます。 `x`が `n/2`（`n`は奇数）に等しい時、 （`gamma (1/2)`は `sqrt (%pi)`に等しいから） `x!`は有理因子に `sqrt (%pi)`を掛けたものに整理されます。

  変数 `factlim`, `gammalim`は整数や有理数の引数の階乗の数値評価を制御します。 関数 `minfactorial`, `factcomb`は階乗を含む式の整理を制御します。 `factlim`, `gammalim`, `minfactorial`, `factcomb`を参照してください。

  関数 `gamma`, `bffac`, `cbffac`はガンマ関数の変形です。 多倍長浮動小数点精度の実数と複素数のガンマ関数を評価するために `gamma`は内部で `bffac`や `cbffac`をコールします。

  `makegamma`は階乗や関係した関数に `gamma`を代入します。

  Maximaは階乗関数の導関数や、負の整数のような特殊な値の極限を知っています。

  オプション変数 `factorial_expand`は `(n+x)!`のような式の整理を制御します。 ここで `n`は整数です。

  `binomial`も参照してください。

  オペランドが `factlim`より大きくないなら、整数の階乗は正確な値に整理されます。 実数と複素数の階乗は浮動小数点または多倍長浮動小数点精度に評価されます。

      (%i1) factlim : 10;
      (%o1)                          10
      (%i2) [0!, (7/2)!, 8!, 20!];
                                  105 sqrt(%pi)
      (%o2)                   [1, -------------, 40320, 20!]
                                       16
      (%i3) [4.77!, (1.0+%i)!];
      (%o3)    [81.44668037931197,
                .3430658398165454 %i + .6529654964201665]
      (%i4) [2.86b0!, (1.0b0+%i)!];
      (%o4) [5.046635586910012b0,
             3.430658398165454b-1 %i + 6.529654964201667b-1]

  既知の定数や一般式の階乗は整理されません。 オペランドを評価した後階乗を整理できたとしても整理はされません。

      (%i1) [(%i + 1)!, %pi!, %e!, (cos(1) + sin(1))!];
      (%o1)      [(%i + 1)!, %pi!, %e!, (sin(1) + cos(1))!]
      (%i2) ev (%, numer, %enumer);
      (%o2) [.3430658398165454 %i + .6529654964201665,
             7.188082728976031,
             4.260820476357003, 1.227580202486819]

      (%i1) kill (foo);
      (%o1)                         done
      (%i2) foo!;
      (%o2)                         foo!

  階乗の計算は整理であって評価ではありません。 従って `x!`はクォートされた式の中でも置き換えられます。

      (%i1) '([0!, (7/2)!, 4.77!, 8!, 20!]);
                105 sqrt(%pi)
      (%o1) [1, -------------, 81.44668037931199, 40320,
                     16
                                                   2432902008176640000]

  Maximaは階乗関数の導関数を知っています。

      (%i1) diff(x!,x);
      (%o1)                           x! psi (x + 1)
                                            0

  オプション変数`factorial_expand`は階乗関数を含む式の展開と整理を制御します。

      (%i1) (n+1)!/n!,factorial_expand:true;
      (%o1)                                n + 1

  Categories: Gamma and factorial functions · Operators

オプション変数: factlim

  デフォルト値: -1

  `factlim`は自動的に展開される最高の階乗を指定します。 もし-1ならすべての整数は展開されます。

  Categories: Gamma and factorial functions

オプション変数: factorial_expand

  デフォルト値: false

  オプション変数`factorial_expand`は `(n+1)!`のような式の整理を制御します。 ここで `n`は整数です。 例は `!`を参照してください。

  Categories: Gamma and factorial functions

関数: genfact (x, y, z)

  一般化された階乗を返します。 `x (x-z) (x - 2 z) ... (x - (y - 1) z)`のように定義されます。 それゆえに、 xが整数の時、 `genfact (x, x, 1) = x!`であり、`genfact (x, x/2, 2) = x!!`です。

  Categories: Gamma and factorial functions

関数: minfactorial (expr)

  整数だけ違う２つの階乗の出現に関して exprを検査します。 そして、`minfactorial`は一方を多項式掛ける他方に変えます。

      (%i1) n!/(n+2)!;
                                     n!
      (%o1)                       --------
                                  (n + 2)!
      (%i2) minfactorial (%);
                                      1
      (%o2)                    ---------------
                               (n + 1) (n + 2)

  Categories: Number theory

オプション変数: sumsplitfact

  デフォルト値: `true`

  `sumsplitfact`が `false`の時、 `minfactorial`は `factcomb`の後に適用されます。

      (%i1) sumsplitfact
      (%o1)                                true
      (%i2) n!/(2+n)!
                                            n!
      (%o2)                              --------
                                         (n + 2)!
      (%i3) factcomb(%)
                                            n!
      (%o3)                              --------
                                         (n + 2)!
      (%i4) sumsplitfact:not sumsplitfact
      (%o4)                                false
      (%i5) n!/(2+n)!
                                            n!
      (%o5)                              --------
                                         (n + 2)!
      (%i6) factcomb(%)
                                             1
      (%o6)                           ---------------
                                      (n + 1) (n + 2)

  Categories: Gamma and factorial functions · Simplification flags and variables

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 10.4 Root, Exponential and Logarithmic Functions

オプション変数: %e_to_numlog

  デフォルト値: `false`

  `true`の時、 `r`を有理数、`x`を式とすると、 `%e^(r*log(x))`は `x^r`に整理されます。 `radcan`コマンドもこの変換を行い、 その上この同類のさらに複雑な変換をすることに注意すべきです。 `logcontract`コマンドは `log`を含む式を「短縮」します。

  Categories: Exponential and logarithm functions · Simplification flags and variables

オプション変数: %emode

  デフォルト値: `true`

  `%emode`が`true`の時、 `%e^(%pi %i x)`は以下のように整理されます。

  もし `x`が浮動小数点、整数、もしくは1/2, 1/3, 1/4, 1/6の整数倍なら、 `%e^(%pi %i x)`は `cos (%pi x) + %i sin (%pi x)`に整理された後、 さらに整理されます。

  他の数値`x`に関して、 `%e^(%pi %i x)`は `%e^(%pi %i y)`に整理されます。 ここで `y`は `x - 2 k`（`k`は `abs(y) < 1`が成り立つような整数）です。

  `%emode`が `false`の時には、 `%e^(%pi %i x)`の特別な整理は実行されません。

      (%i1) %emode
      (%o1)                                true
      (%i2) %e^(%pi*%i*1)
      (%o2)                                 - 1
      (%i3) %e^(%pi*%i*216/144)
      (%o3)                                - %i
      (%i4) %e^(%pi*%i*192/144)
                                       sqrt(3) %i   1
      (%o4)                          - ---------- - -
                                           2        2
      (%i5) %e^(%pi*%i*180/144)
                                        %i         1
      (%o5)                         - ------- - -------
                                      sqrt(2)   sqrt(2)
      (%i6) %e^(%pi*%i*120/144)
                                       %i   sqrt(3)
      (%o6)                            -- - -------
                                       2       2
      (%i7) %e^(%pi*%i*121/144)
                                         121 %i %pi
                                         ----------
                                            144
      (%o7)                            %e

  Categories: Exponential and logarithm functions · Simplification flags and variables

オプション変数: %enumer

  デフォルト値: `false`

  `%enumer`が `true`の時、 `numer`が `true`の時はいつでも、 `%e`は数値2.718...に置き換えられます。

  `%enumer`が `false`の時、 `%e^x`の指数が数に評価される時だけ、 この代入が実行されます。

  `ev`, `numer`も参照してください。

      (%i1) %enumer
      (%o1)                                false
      (%i2) numer
      (%o2)                                false
      (%i3) 2*%e
      (%o3)                                2 %e
      (%i4) %enumer:not %enumer
      (%o4)                                true
      (%i5) 2*%e
      (%o5)                                2 %e
      (%i6) numer:not numer
      (%o6)                                true
      (%i7) 2*%e
      (%o7)                          5.43656365691809
      (%i8) 2*%e^1
      (%o8)                          5.43656365691809
      (%i9) 2*%e^x
                                                     x
      (%o9)                       2 2.718281828459045

  Categories: Exponential and logarithm functions · Evaluation flags

関数: exp (x)

  指数関数を表します。 入力にある `exp (x)`のインスタンスは `%e^x`に整理されます; `exp`は整理された式の中には現れません。

  もし `demoivre`が `true`で、かつ、 `b`が `%i`を含まないなら、 `%e^(a + b %i)`は `%e^(a (cos(b) + %i sin(b)))`に整理されます。 `demoivre`を参照してください。

  `%emode`が `true`の時、 `%e^(%pi %i x)`は整理されます。 `%emode`を参照してください。

  `%enumer`が `true`の時、 `numer`が `true`の時にはいつでも `%e`は2.718...に置き換えれます。 `%enumer`を参照してください。

      (%i1) demoivre;
      (%o1)                                false
      (%i2) %e^(a + b*%i);
                                          %i b + a
      (%o2)                             %e
      (%i3) demoivre: not demoivre;
      (%o3)                                true
      (%i4) %e^(a + b*%i);
                                   a
      (%o4)                      %e  (%i sin(b) + cos(b))

  Categories: Exponential and logarithm functions

関数: li [s] (z)

  次数 s、引数 zの多重対数関数を表します。 これは以下の無限級数で定義されます。

                                       inf
                                       ====   k
                                       \     z
                              Li (z) =  >    --
                                s      /      s
                                       ====  k
                                       k = 1

  `li [1]`は `- log (1 - z)`です。 `li [2]`と `li [3]`はそれぞれ、 dilogarithm関数, trilogarithm関数です。

  次数が1の時、多重対数関数は `- log (1 - z)`に整理され、 もし zが実数もしくは複素数の浮動小数点数か `numer`評価フラグが有効なら、さらに数値に整理されます。

  次数が2もしくは3の時、 もし zが実数の浮動小数点数か `numer`評価フラグが有効なら、 多重対数関数は数値に整理されます。

  例:

      (%i1) assume (x > 0);
      (%o1)                        [x > 0]
      (%i2) integrate ((log (1 - t)) / t, t, 0, x);
      (%o2)                       - li (x)
                                      2
      (%i3) li [2] (7);
      (%o3)                        li (7)
                                     2
      (%i4) li [2] (7), numer;
      (%o4)        1.24827317833392 - 6.113257021832577 %i
      (%i5) li [3] (7);
      (%o5)                        li (7)
                                     3
      (%i6) li [2] (7), numer;
      (%o6)        1.24827317833392 - 6.113257021832577 %i
      (%i7) L : makelist (i / 4.0, i, 0, 8);
      (%o7)   [0.0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0]
      (%i8) map (lambda ([x], li [2] (x)), L);
      (%o8) [0, .2676526384986274, .5822405249432515,
      .9784693966661848, 1.64493407, 2.190177004178597
       - .7010261407036192 %i, 2.374395264042415
       - 1.273806203464065 %i, 2.448686757245154
       - 1.758084846201883 %i, 2.467401098097648
       - 2.177586087815347 %i]
      (%i9) map (lambda ([x], li [3] (x)), L);
      (%o9) [0, .2584613953442624, 0.537213192678042,
      .8444258046482203, 1.2020569, 1.642866878950322
       - .07821473130035025 %i, 2.060877505514697
       - .2582419849982037 %i, 2.433418896388322
       - .4919260182322965 %i, 2.762071904015935
       - .7546938285978846 %i]

  Categories: Exponential and logarithm functions

関数: log (x)

  xの自然対数（基数 eの対数）を表します。

  Maximaは、基数10や他の基数の対数の組み込み関数を持ちません。 `log10(x) := log(x) / log(10)`は、役立つ定義です。

  対数の整理と評価はいくつかのグローバルフラグによって管理されます:

  ``logexpand``

    `log(a^b)`を `b*log(a)`にします。 もし `all`に設定されているなら、 `log(a*b)`も `log(a)+log(b)`に整理されます。 もし `super`に設定されているなら, 有理数 `a/b`, `a#1`に対して `log(a/b)`も `log(a)-log(b)`に整理されます。 (整数 `b`に関して `log(1/b)`はいつも整理されます。) もし `false`に設定されているなら これらのすべての整理は止められます。

  ``logsimp``

    もし `false`なら、 `%e`は `log`を含む累乗へ整理がなされます。

  ``lognegint``

    もし `true`なら、正の整数 `n`に対して規則 `log(-n)` -> `log(n)+%i*%pi` が実装されます。

  ``%e_to_numlog``

    `true`の時、 `r`をある有理数, `x`をある式とすると、 式 `%e^(r*log(x))`は `x^r`に整理されます。 `radcan`コマンドもこの変換を行い、その上この同類のさらに複雑な変換をすることに注意すべきです。 `logcontract`コマンドは `log`を含む式を「短縮」します。

  Categories: Exponential and logarithm functions

オプション変数: logabs

  デフォルト値: `false`

  例えば `integrate(1/x,x)`のように、logが生成される不定積分を実行する時、 もし `logabs`が `true`なら 答えは `log(abs(...))`の形で与えられ、 もし `logabs`が `false`なら 答えは `log(...)`の形で与えられます。 定積分については 終端での不定積分の「評価」がしばしば必要になるので `logabs:true`設定が使われます。

  Categories: Exponential and logarithm functions · Integral calculus · Global flags

オプション変数: logarc
関数: logarc (expr)

  グローバル変数 `logarc`が `true`の時、 逆円関数や逆双曲線関数は、同値の対数関数に置き換えられます。 `logarc`のデフォルト値は `false`です。

  関数 `logarc(expr)`は、 グローバル変数 `logarc`を設定することなしに式 exprに対して上記置き換えを実行します。

  Categories: Exponential and logarithm functions · Simplification flags and variables · Simplification functions

オプション変数: logconcoeffp

  デフォルト値: `false`

  `logcontract`を使った時、どの係数が短縮されるかを制御します。 引数１つの述語論理関数の名前に設定することができます。 例えば、もしSQRTを生成したいなら、 `logconcoeffp:'logconfun$ logconfun(m):=featurep(m,integer) or ratnump(m)$`を実行できます。 すると、 `logcontract(1/2*log(x));`は `log(sqrt(x))`を与えるでしょう。

  Categories: Exponential and logarithm functions · Simplification flags and variables

関数: logcontract (expr)

  形式 `a1*log(b1) + a2*log(b2) + c`の部分式を `log(ratsimp(b1^a1 * b2^a2)) + c`に変換しながら、 再帰的に式 exprを走査します。

      (%i1) 2*(a*log(x) + 2*a*log(y))$
      (%i2) logcontract(%);
                                       2  4
      (%o2)                     a log(x  y )

  `declare(n,integer);`を実行すると、 `logcontract(2*a*n*log(x));`は `a*log(x^(2*n))`に整理されます。 この方法で「短縮」される係数はここで2や`n`に当たるもので、 `featurep(coeff,integer)`を満たします。 ユーザーは、 オプション `logconcoeffp`を引数１つの述語論理関数名に設定することで、 どの係数を短縮するか制御できます。 例えば、もしSQRTを生成したいなら、 `logconcoeffp:'logconfun$ logconfun(m):=featurep(m,integer) or ratnump(m)$`を実行できます。 すると、 `logcontract(1/2*log(x));`は `log(sqrt(x))`を与えるでしょう。

  Categories: Exponential and logarithm functions

オプション変数: logexpand

  デフォルト値: `true`

  もし `true`―これがデフォルト値です―なら、 `log(a^b)`が `b*log(a)`になるようにします。 もし `all`に設定されているなら、 `log(a*b)`も `log(a)+log(b)`に整理されます。 もし `super`に設定されているなら, 有理数 `a/b`, `a#1`に対して、 `log(a/b)`も `log(a)-log(b)`に整理されます。 (整数 `b`に対して `log(1/b)`はいつも整理されます。) もし`false`に設定されているなら、 これらのすべての整理は止められます。

  Categories: Exponential and logarithm functions · Simplification flags and variables

オプション変数: lognegint

  デフォルト値: `false`

  もし`true`なら正の整数 `n`に対して規則 `log(-n)` -> `log(n)+%i*%pi` が実装されます。

  Categories: Exponential and logarithm functions · Simplification flags and variables

オプション変数: logsimp

  デフォルト値: `true`

  もし `false`なら、 `%e`は `log`を含む累乗へ整理がなされます。

  Categories: Exponential and logarithm functions · Simplification flags and variables

関数: plog (x)

  `-%pi` < `carg(x)` <= `+%pi`を虚部係数とする複素数値の自然対数の主値を表します。

  Categories: Exponential and logarithm functions · Complex variables

関数: sqrt (x)

  xの平方根。 内部的には `x^(1/2)`で表現されます。 `rootscontract`も参照してください。

  `radexpand`が `true`なら、 nのべき乗となる積の因子のn番目の根を累乗根の外部に押し出すようにします。 例えば、 `radexpand`が `true`の時だけ `sqrt(16*x^2)`は `4*x`になります。

  Categories: Mathematical functions

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 10.5 Trigonometric Functions

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

### 10.5.1 Introduction to Trigonometric

Maximaは定義されたたくさんの三角関数を持ちます。 すべての三角恒等式がプログラムされているわけではありませんが、 ユーザーはシステムのパターンマッチング能力を使ってそれらの多くを追加することができます。 Maximaで定義された三角関数は以下の通りです: `acos`, `acosh`, `acot`, `acoth`, `acsc`, `acsch`, `asec`, `asech`, `asin`, `asinh`, `atan`, `atanh`, `cos`, `cosh`, `cot`, `coth`, `csc`, `csch`, `sec`, `sech`, `sin`, `sinh`, `tan`, `tanh`。 特に三角関数を扱うためのたくさんのコマンドがあります。 `trigexpand`, `trigreduce`, スイッチ`trigsign`を参照してください。 ２つの共用パッケージ `ntrig`, `atrig1`は、 Maximaに組み込まれた整理規則を拡張します。 詳しくは `describe(command)`を実行してください。

Categories: Trigonometric functions

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

### 10.5.2 Functions and Variables for Trigonometric

オプション変数: %piargs

  デフォルト値: `true`

  `%piargs`が `true`の時で、 引数が %pi, %pi/2, %pi/3, %pi/4, %pi/6のいずれか の整数倍の時は、 三角関数が代数定数に整理されます。

  Maximaは %pi などが整数変数（すなわち、整数に宣言されたシンボル）倍された時適用できる いくつかの恒等式を知っています。

  例:

      (%i1) %piargs : false$
      (%i2) [sin (%pi), sin (%pi/2), sin (%pi/3)];
                                      %pi       %pi
      (%o2)            [sin(%pi), sin(---), sin(---)]
                                       2         3
      (%i3) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
                            %pi       %pi       %pi
      (%o3)            [sin(---), sin(---), sin(---)]
                             4         5         6
      (%i4) %piargs : true$
      (%i5) [sin (%pi), sin (%pi/2), sin (%pi/3)];
                                      sqrt(3)
      (%o5)                    [0, 1, -------]
                                         2
      (%i6) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
                               1         %pi   1
      (%o6)                [-------, sin(---), -]
                            sqrt(2)       5    2
      (%i7) [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3),
             cos (sqrt(2)*%pi/3)];
                      1    1               sqrt(2) %pi
      (%o7)          [-, - -, sqrt(3), cos(-----------)]
                      2    2                    3

  %piと %pi/2 が整数変数にかけられた時、いくつかの恒等式が適用されます。

      (%i1) declare (n, integer, m, even)$
      (%i2) [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m),
             cos (%pi/2 * m)];
                                            m/2
      (%o2)                  [0, 1, 0, (- 1)   ]

  Categories: Trigonometric functions · Simplification flags and variables

オプション変数: %iargs

  デフォルト値: `true`

  `%iargs`が `true`の時、 引数が明らかに虚数単位 %i を掛けたものの時、 三角関数が双曲線関数に整理されます。

  引数が明らかに実数の時でさえ整理が実行されます; Maximaはただ、引数が %i を文字通り掛けたものかどうかを考慮します。

  例:

      (%i1) %iargs : false$
      (%i2) [sin (%i * x), cos (%i * x), tan (%i * x)];
      (%o2)           [sin(%i x), cos(%i x), tan(%i x)]
      (%i3) %iargs : true$
      (%i4) [sin (%i * x), cos (%i * x), tan (%i * x)];
      (%o4)           [%i sinh(x), cosh(x), %i tanh(x)]

  引数が明らかに実数の時でさえ整理が実行されます。

      (%i1) declare (x, imaginary)$
      (%i2) [featurep (x, imaginary), featurep (x, real)];
      (%o2)                     [true, false]
      (%i3) sin (%i * x);
      (%o3)                      %i sinh(x)

  Categories: Trigonometric functions · Hyperbolic functions · Simplification flags and variables

関数: acos (x)

  - 逆余弦

  Categories: Trigonometric functions

関数: acosh (x)

  - 逆双曲余弦

  Categories: Hyperbolic functions

関数: acot (x)

  - 逆余接

  Categories: Trigonometric functions

関数: acoth (x)

  - 逆双曲余接

  Categories: Hyperbolic functions

関数: acsc (x)

  - 逆余割

  Categories: Trigonometric functions

関数: acsch (x)

  - 逆双曲余割

  Categories: Hyperbolic functions

関数: asec (x)

  - 逆正割

  Categories: Trigonometric functions

関数: asech (x)

  - 逆双曲正割

  Categories: Hyperbolic functions

関数: asin (x)

  - 逆正弦

  Categories: Trigonometric functions

関数: asinh (x)

  - 逆双曲正弦

  Categories: Hyperbolic functions

関数: atan (x)

  - 逆正接

  Categories: Trigonometric functions

関数: atan2 (y, x)

  - `-%pi`から `%pi`までの間の `atan(y/x)`の値をもたらします。

  Categories: Trigonometric functions

関数: atanh (x)

  - 逆双曲正接

  Categories: Hyperbolic functions

パッケージ: atrig1

  `atrig1`パッケージは、逆三角関数のためのいくつかの追加の整理規則を含みます。 Maximaが既に知っている規則と合わせて、 以下の角度が完全に実装されます: `0`, `%pi/6`, `%pi/4`, `%pi/3`, `%pi/2`。 他の3象限の対応する角度も利用可能です。 これらを使うには `load(atrig1);`を実行してください。

  Categories: Trigonometric functions · Package atrig1

関数: cos (x)

  - 余弦

  Categories: Trigonometric functions

関数: cosh (x)

  - 双曲余弦

  Categories: Hyperbolic functions

関数: cot (x)

  - 余接

  Categories: Trigonometric functions

関数: coth (x)

  - 双曲余接

  Categories: Hyperbolic functions

関数: csc (x)

  - 余割

  Categories: Trigonometric functions

関数: csch (x)

  - 双曲余割

  Categories: Hyperbolic functions

オプション変数: halfangles

  デフォルト値: `false`

  `halfangles`が`true`の時、 引数 `expr/2`の三角関数は exprの関数に整理されます。

  区間 `0 < x < 2*%pi`の実引数 xに対して 半角の正弦は簡単な公式に整理されます:

                               sqrt(1 - cos(x))
                               ----------------
                                   sqrt(2)

  複雑な因子は すべての複素引数 zでこの公式を正しくするために必要です:

                 realpart(z)
           floor(-----------)
                    2 %pi
      (- 1)                   (1 - unit_step(- imagpart(z))

                                  realpart(z)            realpart(z)
                            floor(-----------) - ceiling(-----------)
                                     2 %pi                  2 %pi
                      ((- 1)                                          + 1))

  Maximaは、この因子と、 関数`sin`, `cos`, `sinh`, `cosh`に関する類似の因子を知っています。 引数zの特別な値に対してこれらの因子は相応に整理されます。

  例:

      (%i1) halfangles:false;
      (%o1)                                false
      (%i2) sin(x/2);
                                              x
      (%o2)                               sin(-)
                                              2
      (%i3) halfangles:true;
      (%o3)                                true
      (%i4) sin(x/2);
                                                          x
                                                  floor(-----)
                                                        2 %pi
                            sqrt(1 - cos(x)) (- 1)
      (%o4)                 ----------------------------------
                                         sqrt(2)
      (%i5) assume(x>0, x<2*%pi)$
      (%i6) sin(x/2);
                                     sqrt(1 - cos(x))
      (%o6)                          ----------------
                                         sqrt(2)

  Categories: Trigonometric functions · Simplification flags and variables

パッケージ: ntrig

  `ntrig`パッケージは、 引数が形式 `f(n %pi/10)` ― fは関数 `sin`, `cos`, `tan`, `csc`, `sec`, `cot`のいずれか―の三角関数を整理するのに使われる整理規則の集合を含みます。

  Categories: Trigonometric functions · Package ntrig

関数: sec (x)

  - 正割

  Categories: Trigonometric functions

関数: sech (x)

  - 双曲正割

  Categories: Hyperbolic functions

関数: sin (x)

  - 正弦

  Categories: Trigonometric functions

関数: sinh (x)

  - 双曲正弦

  Categories: Hyperbolic functions

関数: tan (x)

  - 正接

  Categories: Trigonometric functions

関数: tanh (x)

  - 双曲正接

  Categories: Hyperbolic functions

関数: trigexpand (expr)

  exprの中に現れる角の和や角の倍数の三角関数、双曲線関数を展開します。 最もよい結果のためには exprは展開されるべきです。 整理のユーザー制御を強化するために、 この関数は、一度に１レベルのみ、角の和もしくは角の倍数を展開します。 ただちにサインとコサインへの完全な展開を得るには スイッチ `trigexpand: true`を設定してください。

  `trigexpand`は以下のグローバルフラグによって決定されます:

  `trigexpand`

    もし `true`なら、 続いて現れるサインやコサインを含んでいる式すべての展開を起こします。

  `halfangles`

    もし `true`なら、 半角が整理されます。

  `trigexpandplus`

    `trigexpand`の「和」規則を制御します。 和（例えば `sin(x + y)`）の展開は、 `trigexpandplus`が `true`の時だけ起こります。

  `trigexpandtimes`

    `trigexpand`の「積」規則を制御します。 積(例えば `sin(2 x)`)の展開は、 `trigexpandtimes`が `true`の時だけ起こります。

  例:

      (%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
                               2           2
      (%o1)               - sin (x) + 3 cos (x) + x
      (%i2) trigexpand(sin(10*x+y));
      (%o2)          cos(10 x) sin(y) + sin(10 x) cos(y)

  Categories: Trigonometric functions · Simplification functions

オプション変数: trigexpandplus

  デフォルト値: `true`

  `trigexpandplus`は `trigexpand`の「和」規則を制御します。 `trigexpand`コマンドが使われるか、 `trigexpand`スイッチが `true`に設定されている時 和(例えば `sin(x+y))`)の展開は、 `trigexpandplus`が `true`の時だけ起こります。

  Categories: Trigonometric functions · Simplification flags and variables

オプション変数: trigexpandtimes

  デフォルト値: `true`

  `trigexpandtimes`は `trigexpand`の「積」規則を制御します。 `trigexpand`コマンドが使われるか、 `trigexpand`スイッチが `true`に設定されている時、 積(例えば `sin(2*x)`)の展開は、 `trigexpandtimes`が `true`の時だけ起こります。

  Categories: Trigonometric functions · Simplification flags and variables

オプション変数: triginverses

  デフォルト値: `true`

  `triginverses`は三角関数や双曲線関数とそれらの逆関数の合成の整理を制御します。

  もし `all`なら、 例えば、`atan(tan(x))`と `tan(atan(x))`のどちらも xに整理されます。

  もし `true`なら、 `arcfun(fun(x))`の整理は止められます。

  もし `false`なら、 `arcfun(fun(x))`と `fun(arcfun(x))`のどちらの整理も止められます。

  Categories: Trigonometric functions · Simplification flags and variables

関数: trigreduce
`trigreduce` (expr, x)
`trigreduce` (expr)

  xを引数とする三角と双曲の正弦、余弦の積とべきを xの倍数のそれらに結合します。 これらの関数が分母に現れた時これらを消去しようともします。 もし xが省略されたら exprの中の変数すべてが使われます。

  `poissimp`も参照してください。

      (%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
                     cos(2 x)      cos(2 x)   1        1
      (%o1)          -------- + 3 (-------- + -) + x - -
                        2             2       2        2

  Categories: Trigonometric functions · Simplification functions

オプション変数: trigsign

  デフォルト値: `true`

  `trigsign`が`true`の時、 三角関数への負の引数の整理を認めます。 例えば、 `trigsign`が `true`の時だけ `sin(-x)`は `-sin(x)`になります。

  Categories: Trigonometric functions · Simplification flags and variables

関数: trigsimp (expr)

  `tan`, `sec`などを含む式を `sin`, `cos`, `sinh`, `cosh`に整理するために、 恒等式 sin(x)^2 + cos(x)^2 = 1 と cosh(x)^2 - sinh(x)^2 = 1 を使います。

  `trigreduce`, `ratsimp`, `radcan`は結果を更に整理できるかもしれません。

  `demo ("trgsmp.dem")`は `trigsimp`のいくつかの例を表示します。

  Categories: Trigonometric functions · Simplification functions

関数: trigrat (expr)

  三角関数の整理された標準疑似線形形式を与えます; exprは `sin`, `cos`もしくは`tan`のいくつかの有理分数であり、 それらの引数は、整数係数を持つ、いくつかの変数（もしくは核）と `%pi/n` (nは整数)の線形形式です。 結果は `sin`と `cos`に関して線形の分子と分母を持つ整理された分数です。 `trigrat`は可能なときはいつも線形化します。

      (%i1) trigrat(sin(3*a)/sin(a+%pi/3));
      (%o1)            sqrt(3) sin(2 a) + cos(2 a) - 1

  以下の例は Davenport, Siret, and TournierのCalcul Formel, Masson (もしくは英語版ではAddison-Wesley), 1.5.5節, モーレイの定理から取られました。

      (%i1) c : %pi/3 - a - b$
      (%i2) bc : sin(a)*sin(3*c)/sin(a+b);
                                                %pi
                        sin(a) sin(3 (- b - a + ---))
                                                 3
      (%o2)             -----------------------------
                                 sin(b + a)
      (%i3) ba : bc, c=a, a=c;
                                               %pi
                          sin(3 a) sin(b + a - ---)
                                                3
      (%o3)               -------------------------
                                        %pi
                                sin(a - ---)
                                         3
      (%i4) ac2 : ba^2 + bc^2 - 2*bc*ba*cos(b);
               2         2         %pi
            sin (3 a) sin (b + a - ---)
                                    3
      (%o4) ---------------------------
                      2     %pi
                   sin (a - ---)
                             3
                                             %pi
       - (2 sin(a) sin(3 a) sin(3 (- b - a + ---)) cos(b)
                                              3
                   %pi            %pi
       sin(b + a - ---))/(sin(a - ---) sin(b + a))
                    3              3
            2       2              %pi
         sin (a) sin (3 (- b - a + ---))
                                    3
       + -------------------------------
                      2
                   sin (b + a)
      (%i5) trigrat (ac2);
      (%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)
       - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)
       - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)
       + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)
       + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)
       + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)
       - 9)/4

  Categories: Trigonometric functions · Simplification functions

[ < ] | [ > ] |  | [ << ] | [上] | [ >> ] |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

## 10.6 Random Numbers

関数: make_random_state
`make_random_state` (n)
`make_random_state` (s)
`make_random_state` (true)
`make_random_state` (false)

  ランダムステートオブジェクトは乱数生成器の状態を表します。 状態は627個の32ビットワードで構成されます。

  `make_random_state (n)`は nを2^32で割った余りに等しい整数シードの値から新しいランダムステートオブジェクトを 生成します。 nは負でもいいです。

  `make_random_state (s)`はランダムステート sのコピーを返します。

  `make_random_state (true)`は新しいランダムステートオブジェクトを返します。 シードとしてコンピュータの現在時刻を使います。

  `make_random_state (false)`は乱数生成器の現在のステートのコピーを返します。

  Categories: Random numbers

関数: set_random_state (s)

  sを乱数生成器状態にコピーします。

  `set_random_state`はいつも `done`を返します。

  Categories: Random numbers

関数: random (x)

  疑似乱数を返します。 もし xが整数なら、 `random (x)`は0から`x - 1`までの整数を返します。 もし xが浮動小数点なら、 `random (x)`は xより小さい非負の浮動小数点を返します。 もし xが整数でも浮動小数点でもなかったり、xが正でないなら、 `random`はエラーを出力します。

  関数 `make_random_state`と `set_random_state`は乱数生成器の状態を保守します。

  Maximaの乱数生成器はメルセンヌ・ツイスタ MT 19937の実装です。

  例:

      (%i1) s1: make_random_state (654321)$
      (%i2) set_random_state (s1);
      (%o2)                         done
      (%i3) random (1000);
      (%o3)                          768
      (%i4) random (9573684);
      (%o4)                        7657880
      (%i5) random (2^75);
      (%o5)                11804491615036831636390
      (%i6) s2: make_random_state (false)$
      (%i7) random (1.0);
      (%o7)                   .2310127244107132
      (%i8) random (10.0);
      (%o8)                   4.394553645870825
      (%i9) random (100.0);
      (%o9)                   32.28666704056853
      (%i10) set_random_state (s2);
      (%o10)                        done
      (%i11) random (1.0);
      (%o11)                  .2310127244107132
      (%i12) random (10.0);
      (%o12)                  4.394553645870825
      (%i13) random (100.0);
      (%o13)                  32.28666704056853

  Categories: Random numbers · Numerical methods

[ << ] | [ >> ] |  |  |  |  |  | [冒頭] | [目次] | [見出し] | [ ? ]

この文書は市川 雄二によって1月, 7 2015にtexi2html 1.76を用いて生成されました。