[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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(6, n)] (%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)); (%o1) unitfrac(r) := block([uf : [], q], if not ratnump(r) then error("unitfrac: argument must be a rational number" 1 ), while r # 0 do (uf : cons(q : ----------, uf), r : r - q), 1 ceiling(-) r 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(6, n)] (%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
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
複素数を表す式の絶対値を計算します。
関数 abs
と異なり、 cabs
関数は常に引数を実部と虚部に分解します。
もし x
と y
が実変数か実数式を表すなら、
cabs
関数は x + %i*y
の絶対値を以下のように計算します。
(%i1) cabs (1); (%o1) 1 (%i2) cabs (1 + %i); (%o2) sqrt(2) (%i3) cabs (exp (%i)); (%o3) 1 (%i4) cabs (exp (%pi * %i)); (%o4) 1 (%i5) cabs (exp (3/2 * %pi * %i)); (%o5) 1 (%i6) cabs (17 * exp (2 * %i)); (%o6) 17 |
もし cabs
が名詞形を返すなら、
これはもっとも一般的には含まれる変数のプロパティが既知でないことによるものです:
(%i1) cabs (a+%i*b); 2 2 (%o1) sqrt(b + a ) (%i2) declare(a,real,b,real); (%o2) done (%i3) cabs (a+%i*b); 2 2 (%o3) sqrt(b + a ) (%i4) assume(a>0,b>0); (%o4) [a > 0, b > 0] (%i5) cabs (a+%i*b); 2 2 (%o5) sqrt(b + a ) |
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)); sin(1) (%o3) atan(------) cos(1) (%i4) carg (exp (%pi * %i)); (%o4) %pi (%i5) carg (exp (3/2 * %pi * %i)); %pi (%o5) - --- 2 (%i6) carg (17 * exp (2 * %i)); sin(2) (%o6) atan(------) + %pi cos(2) |
If carg
returns a noun form this most communly is caused by
some properties of the variables involved not being known:
(%i1) carg (a+%i*b); (%o1) atan2(b, a) (%i2) declare(a,real,b,real); (%o2) done (%i3) carg (a+%i*b); (%o3) atan2(b, a) (%i4) assume(a>0,b>0); (%o4) [a > 0, b > 0] (%i5) carg (a+%i*b); b (%o5) atan(-) a |
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) yy + 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
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
二重階乗演算子。
整数や浮動小数点、有理数 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) [4, 77!, 0.3430658398165453 %i + 0.6529654964201667] (%i4) [2.86b0!, 1.0b0+%i)!]; incorrect syntax: Missing ] [2.86b0!, 1.0b0+%i) ^ |
既知の定数や一般式の階乗は整理されません。 オペランドを評価した後階乗を整理できたとしても整理はされません。
(%i1) [(%i + 1)!, %pi!, %e!, (cos(1) + sin(1))!]; (%o1) [(%i + 1)!, %pi!, %e!, (sin(1) + cos(1))!] (%i2) ev (%, numer, %enumer); (%o2) [0.3430658398165453 %i + 0.6529654964201667, 7.188082728976031, 4.260820476357003, 1.227580202486819] |
階乗の計算は整理であって評価ではありません。
従って x!
はクォートされた式の中でも置き換えられます。
(%i1) '([0!, (7/2)!, 4.77!, 8!, 20!]); 105 sqrt(%pi) (%o1) [1, -------------, 81.44668037931197, 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
デフォルト値: 100000
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!/(n+2)!; n! (%o2) -------- (n + 2)! (%i3) factcomb(%); n! (%o3) -------- (n + 2)! (%i4) sumsplitfact: not sumsplitfact ; (%o4) false (%i5) n!/(n+2)!; n! (%o5) -------- (n + 2)! (%i6) factcomb(%); 1 (%o6) --------------- (n + 1) (n + 2) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
デフォルト値: 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.248273182099423 - 6.113257028817991 %i (%i5) li [3] (7); (%o5) li (7) 3 (%i6) li [2] (7), numer; (%o6) 1.248273182099423 - 6.113257028817991 %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.0, 0.2676526390827326, 0.5822405264650125, 0.978469392930306, 1.644934066848226, 2.190177011441645 - 0.7010261415046585 %i, 2.37439527027248 - 1.2738062049196 %i, 2.448686765338205 - 1.758084848210787 %i, 2.467401100272339 - 2.177586090303601 %i] (%i9) map (lambda ([x], li [3] (x)), L); (%o9) [0.0, 0.2584613953442624, 0.537213192678042, 0.8444258046482203, 1.2020569, 1.642866878950322 - 0.07821473130035025 %i, 2.060877505514697 - 0.2582419849982037 %i, 2.433418896388322 - 0.4919260182322965 %i, 2.762071904015935 - 0.7546938285978846 %i] |
Categories: Exponential and logarithm functions
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
デフォルト値: 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
も参照してください。
Categories: Mathematical functions
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
10.5.1 Introduction to Trigonometric | ||
10.5.2 Functions and Variables for Trigonometric |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
デフォルト値: 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$ (%i2) sin (x / 2); x (%o2) sin(-) 2 (%i3) halfangles : true$ (%i4) sin (x / 2); x floor(-----) 2 %pi (- 1) sqrt(1 - cos(x)) (%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
なら、
半角が整理されます。
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
デフォルト値: 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
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ランダムステートオブジェクトは乱数生成器の状態を表します。 状態は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) 0.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) 0.2310127244107132 (%i12) random (10.0); (%o12) 4.394553645870825 (%i13) random (100.0); (%o13) 32.28666704056853 |
Categories: Random numbers · Numerical methods
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.