| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| 10.1 Functions for Numbers | ||
| 10.2 Functions for Complex Numbers | ||
| 10.3 Combinatorial Functions | ||
| 10.4 Root, Exponential and Logarithmic Functions | ||
| 10.5 Trigonometric Functions | ||
| 10.6 Random Numbers |
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
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
xが実数の時 x以上の最小の整数を返します。
もし xが定数式(例えば 10 * %pi)なら、
ceilingは xを多倍長浮動小数点数を使って評価し、
その多倍長浮動小数点数に ceilingを適用します。
ほとんど起こりそうにないですが、 ceilingは浮動小数点を使うので、
ceilingは定数入力に対して間違った値を返す可能性があります。
このエラーを起こさないようにするには
fpprecの3つの値を使って浮動小数点評価を行います。
定数でない入力に関しては 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
xが数値の場合 x以下の最大の整数を返します。
(fixnumにおける) fixはこれの別名で、
fix(x)はまさに同じです。
Categories: Mathematical functions
xが実数の時 x以下の最大の整数を返します。
もしxが定数式(例えば 10 * %pi)なら、
floorは多倍長浮動小数点数を使って xを評価し、
結果の多倍長浮動小数点にfloorを適用します。
ほとんど起こりそうにないですが、 floorは浮動小数点を使うので
floorは定数入力に対して間違った値を返す可能性があります。
このエラーを起こさないようにするには
fpprecの3つの値を使って浮動小数点評価を行います。
定数でない入力に関しては 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
entier (x)の別名です。
Categories: Mathematical functions
Lがリストか集合の時 apply ('max, args (L))を返します。
Lがリストでも集合でもない時エラーを示します。
Categories: Mathematical functions · Lists · Sets
Lがリストか集合の時 apply ('min, args (L))を返します。
Lがリストでも集合でもない時エラーを示します。
Categories: Mathematical functions · Lists · Sets
式 x_1から x_nの中の最大値に関して整理された値を返します。
get (trylevel, maxmin)が2以上の時、
maxは式整理 max (e, -e) --> |e|を使います。
get (trylevel, maxmin)が3以上の時、
maxは2つの他の引数の間の式を消去しようとします;
例えば max (x, 2*x, 3*x) --> max (x, 3*x)。
trylevelを2に設定するには put (trylevel, 2, maxmin)を使います。
Categories: Mathematical functions
式 x_1から x_nの中の最小値に関して整理された値を返します。
get (trylevel, maxmin)が2以上の時、
maxは式整理 max (e, -e) --> |e|を使います。
get (trylevel, maxmin)が3以上の時、
maxは2つの他の引数の間の式を消去しようとします;
例えば max (x, 2*x, 3*x) --> max (x, 3*x)。
trylevelを2に設定するには put (trylevel, 2, maxmin)を使います。
Categories: Mathematical functions
xが実数の時 xに最も近い整数を返します。
1/2を掛けてroundして2を掛けると最も近い偶数に丸められます。
xの評価は floorや ceilingに似ています。
関数 roundはリスト、行列、方程式上に展開されます。
distribute_over.を参照してください。
Categories: Mathematical functions
実数か複素数 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
xが実数の時、 絶対値が xよりも大きくない xに最も近い整数
xの評価は floorや ceiling.と同じです。
関数 truncateはリスト、行列、方程式上に展開されます。
distribute_over.を参照してください。
Categories: Mathematical functions
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
複素数を表す式の絶対値を計算します。
関数 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を参照してください。
例:
(%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
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
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
式 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
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
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
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
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
二重階乗演算子。
整数や浮動小数点、有理数 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
二項係数 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
例えば、 (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
階乗演算子。
(整数、有理数、実数を含む)負の整数を除いた任意の複素数 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
デフォルト値: -1
factlimは自動的に展開される最高の階乗を指定します。
もし-1ならすべての整数は展開されます。
Categories: Gamma and factorial functions
デフォルト値: false
オプション変数factorial_expandは
(n+1)!のような式の整理を制御します。
ここで nは整数です。
例は !を参照してください。
Categories: Gamma and factorial functions
一般化された階乗を返します。
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
整数だけ違う2つの階乗の出現に関して
exprを検査します。
そして、minfactorialは一方を多項式掛ける他方に変えます。
(%i1) n!/(n+2)!;
n!
(%o1) --------
(n + 2)!
(%i2) minfactorial (%);
1
(%o2) ---------------
(n + 1) (n + 2)
Categories: Number theory
デフォルト値: 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)
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
デフォルト値: false
trueの時、
rを有理数、xを式とすると、
%e^(r*log(x))は x^rに整理されます。
radcanコマンドもこの変換を行い、
その上この同類のさらに複雑な変換をすることに注意すべきです。
logcontractコマンドは logを含む式を「短縮」します。
デフォルト値: 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
デフォルト値: false
%enumerが trueの時、
numerが trueの時はいつでも、
%eは数値2.718...に置き換えられます。
%enumerが falseの時、
%e^xの指数が数に評価される時だけ、
この代入が実行されます。
(%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)のインスタンスは %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
次数 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
xの自然対数(基数 eの対数)を表します。
Maximaは、基数10や他の基数の対数の組み込み関数を持ちません。
log10(x) := log(x) / log(10)は、役立つ定義です。
対数の整理と評価はいくつかのグローバルフラグによって管理されます:
logexpandlog(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_numlogtrueの時、
rをある有理数, xをある式とすると、
式 %e^(r*log(x))は x^rに整理されます。
radcanコマンドもこの変換を行い、その上この同類のさらに複雑な変換をすることに注意すべきです。
logcontractコマンドは logを含む式を「短縮」します。
Categories: Exponential and logarithm functions
デフォルト値: 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が trueの時、
逆円関数や逆双曲線関数は、同値の対数関数に置き換えられます。
logarcのデフォルト値は falseです。
関数 logarc(expr)は、
グローバル変数 logarcを設定することなしに式
exprに対して上記置き換えを実行します。
デフォルト値: false
logcontractを使った時、どの係数が短縮されるかを制御します。
引数1つの述語論理関数の名前に設定することができます。
例えば、もしSQRTを生成したいなら、
logconcoeffp:'logconfun$
logconfun(m):=featurep(m,integer) or ratnump(m)$を実行できます。
すると、
logcontract(1/2*log(x));は log(sqrt(x))を与えるでしょう。
形式 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を引数1つの述語論理関数名に設定することで、
どの係数を短縮するか制御できます。
例えば、もしSQRTを生成したいなら、
logconcoeffp:'logconfun$
logconfun(m):=featurep(m,integer) or ratnump(m)$を実行できます。
すると、
logcontract(1/2*log(x));は log(sqrt(x))を与えるでしょう。
Categories: Exponential and logarithm functions
デフォルト値: 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に設定されているなら、
これらのすべての整理は止められます。
デフォルト値: false
もし trueなら正の整数 nに対して規則
log(-n) -> log(n)+%i*%pi
が実装されます。
デフォルト値: true
もし falseなら、
%eは logを含む累乗へ整理がなされます。
-%pi < carg(x) <= +%piを虚部係数とする複素数値の自然対数の主値を表します。
Categories: Exponential and logarithm functions · Complex variables
xの平方根。
内部的には x^(1/2)で表現されます。
rootscontractも参照してください。
radexpandが trueなら、
nのべき乗となる積の因子のn番目の根を累乗根の外部に押し出すようにします。
例えば、
radexpandが trueの時だけ sqrt(16*x^2)は 4*xになります。
Categories: Mathematical functions
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| 10.5.1 Introduction to Trigonometric | ||
| 10.5.2 Functions and Variables for 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を参照してください。
2つの共用パッケージ ntrig, atrig1は、
Maximaに組み込まれた整理規則を拡張します。
詳しくは describe(command)を実行してください。
Categories: Trigonometric functions
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
デフォルト値: 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
デフォルト値: 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
- 逆双曲余弦
Categories: Hyperbolic functions
- 逆余接
Categories: Trigonometric functions
- 逆双曲余接
Categories: Hyperbolic functions
- 逆余割
Categories: Trigonometric functions
- 逆双曲余割
Categories: Hyperbolic functions
- 逆正割
Categories: Trigonometric functions
- 逆双曲正割
Categories: Hyperbolic functions
- 逆正弦
Categories: Trigonometric functions
- 逆双曲正弦
Categories: Hyperbolic functions
- 逆正接
Categories: Trigonometric functions
- -%piから %piまでの間の
atan(y/x)の値をもたらします。
Categories: Trigonometric functions
- 逆双曲正接
Categories: Hyperbolic functions
atrig1パッケージは、逆三角関数のためのいくつかの追加の整理規則を含みます。
Maximaが既に知っている規則と合わせて、
以下の角度が完全に実装されます:
0, %pi/6, %pi/4, %pi/3, %pi/2。
他の3象限の対応する角度も利用可能です。
これらを使うには load(atrig1);を実行してください。
Categories: Trigonometric functions · Package atrig1
- 余弦
Categories: Trigonometric functions
- 双曲余弦
Categories: Hyperbolic functions
- 余接
Categories: Trigonometric functions
- 双曲余接
Categories: Hyperbolic functions
- 余割
Categories: Trigonometric functions
- 双曲余割
Categories: Hyperbolic functions
デフォルト値: 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パッケージは、
引数が形式 f(n %pi/10)
― fは関数
sin, cos, tan, csc, sec,
cotのいずれか―の三角関数を整理するのに使われる整理規則の集合を含みます。
Categories: Trigonometric functions · Package ntrig
- 正割
Categories: Trigonometric functions
- 双曲正割
Categories: Hyperbolic functions
- 正弦
Categories: Trigonometric functions
- 双曲正弦
Categories: Hyperbolic functions
- 正接
Categories: Trigonometric functions
- 双曲正接
Categories: Hyperbolic functions
exprの中に現れる角の和や角の倍数の三角関数、双曲線関数を展開します。
最もよい結果のためには exprは展開されるべきです。
整理のユーザー制御を強化するために、
この関数は、一度に1レベルのみ、角の和もしくは角の倍数を展開します。
ただちにサインとコサインへの完全な展開を得るには
スイッチ trigexpand: trueを設定してください。
trigexpandは以下のグローバルフラグによって決定されます:
trigexpandもし trueなら、
続いて現れるサインやコサインを含んでいる式すべての展開を起こします。
halfanglesもし trueなら、
半角が整理されます。
trigexpandplustrigexpandの「和」規則を制御します。
和(例えば sin(x + y))の展開は、
trigexpandplusが trueの時だけ起こります。
trigexpandtimestrigexpandの「積」規則を制御します。
積(例えば 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
デフォルト値: true
trigexpandplusは trigexpandの「和」規則を制御します。
trigexpandコマンドが使われるか、
trigexpandスイッチが trueに設定されている時
和(例えば sin(x+y)))の展開は、
trigexpandplusが trueの時だけ起こります。
Categories: Trigonometric functions · Simplification flags and variables
デフォルト値: true
trigexpandtimesは trigexpandの「積」規則を制御します。
trigexpandコマンドが使われるか、
trigexpandスイッチが trueに設定されている時、
積(例えば sin(2*x))の展開は、
trigexpandtimesが trueの時だけ起こります。
Categories: Trigonometric functions · Simplification flags and variables
デフォルト値: 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
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
デフォルト値: true
trigsignがtrueの時、
三角関数への負の引数の整理を認めます。
例えば、
trigsignが trueの時だけ
sin(-x)は -sin(x)になります。
Categories: Trigonometric functions · Simplification flags and variables
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
三角関数の整理された標準疑似線形形式を与えます;
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
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
ランダムステートオブジェクトは乱数生成器の状態を表します。 状態は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
sを乱数生成器状態にコピーします。
set_random_stateはいつも doneを返します。
Categories: Random numbers
疑似乱数を返します。
もし 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
| [ << ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
この文書は市川 雄二によって5月, 20 2015にtexi2html 1.76を用いて生成されました。