Next: Maximas Database, Previous: Simplification [Contents][Index]
Next: Functions for Complex Numbers, Previous: Mathematical Functions, Up: Mathematical Functions [Contents][Index]
exprの絶対値を返します。もしexprが複素数なら、exprの絶対値(modulus)を返します。
abs
はリスト上、行列上、等式上に分配されます。
distribute_over
を参照してください。
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
は、自動ではリストや行列上にマップしません。
最終的に、明らかに複雑な入力すべてに対して、ceiling
は名詞形を返します。
もし関数の範囲が整数の部分集合なら、
integervalued
に宣言できます。
ceiling
、floor
関数両方とも、この情報を使います; 例えば:
(%i1) declare (f, integervalued)$ (%i2) floor (f(x)); (%o2) f(x) (%i3) ceiling (f(x) - 1); (%o3) f(x) - 1
xが数値の場合、x以下の最大の整数を返します。
(fixnum
における)fix
はこれの別名で、
fix(x)
は正確に同じです。
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
は、自動ではリストや行列上にマップしません。
最終的に、明らかに複雑な入力すべてに対して、floor
は名詞形を返します。
もし関数の範囲が整数の部分集合なら、
integervalued
に宣言できます。
ceiling
、floor
関数両方とも、この情報を使います; 例えば:
(%i1) declare (f, integervalued)$ (%i2) floor (f(x)); (%o2) f(x) (%i3) ceiling (f(x) - 1); (%o3) f(x) - 1
entier (x)
の別名です。
Lがリストもしくは集合の時、apply ('max, args (L))
を返します。
Lがリストでも集合でもない時、エラーを示します。
Lがリストもしくは集合の時、apply ('min, args (L))
を返します。
Lがリストでも集合でもない時、エラーを示します。
式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)
を使います。
式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)
を使います。
xが実数の時、xに最も近い整数を返します。
1/2を掛けてroundして2を掛けると、最も近い偶数に丸められます。
xの評価は、floor
やceiling
に似ています。
実数か複素数xに対して、もしxが0ならsignum関数は0を返します;
非ゼロ数値入力xに対して、signum関数はabs(x)/x
を返します。
非数値入力に対して、Maximaは入力の符号を決定しようと試みます。
符号が負、ゼロ、正いずれかの時、signum
はそれぞれ、-1, 0, 1を返します。
符号に関する他の値すべてに対して、signum
は式整理された同値形を返します。
式整理は(signum(-x)
は-signum(x)
を与える)反転と
(signum(x*y)
はsignum(x) * signum(y)
を与える)乗法恒等式を含みます。
signum
関数はリスト、行列もしくは等式上に分配されます。
distribute_over
を参照してください。
Next: Combinatorial Functions, Previous: Functions for Numbers, Up: Mathematical Functions [Contents][Index]
exprの複素数の絶対値を返します。
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
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)
式exprの虚部を返します。
imagpart
は、計算関数であり、整理関数ではありません。
abs
, carg
, polarform
, rectform
, realpart
も
参照してください。
exprと同値な式r %e^(%i theta)
を返します。
ここで、r
とtheta
は純粋な実数です。
exprの実部を返します。
realpart
とimagpart
は、
平方根、対数関数、指数関数はもちろん三角関数や双曲関数を含む式上で機能します。
exprと同値な式a + b %i
を返します。
ここでaとbは純粋な実数です。
Next: Root, Exponential and Logarithmic Functions, Previous: Functions for Complex Numbers, Up: Mathematical Functions [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)
を返します。
二項係数x!/(y! (x - y)!)
。
もしxとyが整数なら、
二項係数の数値が計算されます。
もしyもしくはx - yが整数なら、
二項係数は多項式として表現されます。
例:
(%i1) binomial (11, 7); (%o1) 330 (%i2) 11! / 7! / (11 - 7)!; (%o2) 330 (%i3) binomial (x, 7); (x - 6) (x - 5) (x - 4) (x - 3) (x - 2) (x - 1) x (%o3) ------------------------------------------------- 5040 (%i4) binomial (x + 7, x); (x + 1) (x + 2) (x + 3) (x + 4) (x + 5) (x + 6) (x + 7) (%o4) ------------------------------------------------------- 5040 (%i5) binomial (11, y); (%o5) binomial(11, y)
例えば、(n + 1)*n!
を(n + 1)!
に変換することによって、
exprの中の階乗の係数を階乗それ自身と結合しようとします。
もしsumsplitfact
がfalse
に設定されたなら、
minfactorial
がfactcomb
の後適用されるようになります。
階乗演算子。
(整数、有理数、実数を含む)負の整数を除いた任意の複素数 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
デフォルト値: -1
factlim
は、自動的に展開される最高の階乗を指定します。
もし-1なら、すべての整数は展開されます。
デフォルト値: false
オプション変数factorial_expand
は
(n+1)!
のような式の整理を制御します。
ここでn
は整数です。
例は!
を参照してください。
一般化された階乗を返します。
x (x-z) (x - 2 z) ... (x - (y - 1) z)
のように定義されます。
それゆえに、整数xに関して、
genfact (x, x, 1) = x!
であり、genfact (x, x/2, 2) = x!!
です。
整数だけ違う2つの階乗の出現に関して
exprを検査します。
そして、minfactorial
は、
一方を多項式掛ける他方に変えます。
(%i1) n!/(n+2)!; n! (%o1) -------- (n + 2)! (%i2) minfactorial (%); 1 (%o2) --------------- (n + 1) (n + 2)
デフォルト値: true
sumsplitfact
がfalse
の時、
minfactorial
は、factcomb
の後に適用されます。
Next: Trigonometric Functions, Previous: Combinatorial Functions, Up: Mathematical Functions [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)
の特別な整理は実行されません。
デフォルト値: false
%enumer
がtrue
の時、
numer
がtrue
の時はいつでも、
%e
は数値2.718...に置き換えられます。
%enumer
がfalse
の時、
%e^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
を参照してください。
次数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]
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
を含む累乗へ整理がなされます。
lognumer
もしtrue
なら、
引数は、log
の計算の前に絶対値に変換されます。
もしnumer
もtrue
なら、
log
の引数に負の整数を与えたとき、
引数は、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
を含む式を「短縮」します。
デフォルト値: false
例えばintegrate(1/x,x)
のように、logが生成される不定積分を実行する時、
もしlogabs
がtrue
なら
もしlogabs
がfalse
なら
答えは、log(...)
の形で与えられます。
定積分については、
終端での不定積分の「評価」がしばしば必要になるので、logabs:true
設定が使われます。
グローバル変数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))
を与えるでしょう。
デフォルト値: false
もし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
が実装されます。
デフォルト値: false
もしtrue
なら、
引数は、log
の計算の前に絶対値に変換されます。
もしnumer
もtrue
なら、
log
の引数に負の整数を与えたとき、
引数は、log
の計算の前に絶対値に変換されます。
デフォルト値: true
もしfalse
なら、
%e
は、log
を含む累乗へ整理がなされます。
-%pi
< carg(x)
<= +%pi
を虚部係数とする複素数値の自然対数の主値を表します。
xの平方根。
内部的にはx^(1/2)
で表現されます。
rootscontract
も参照してください。
radexpand
がtrue
なら、nのべき乗となる積の因子のn番目の根を
累乗根の外部に押し出すようにします。
例えば、
radexpand
がtrue
の時だけ、sqrt(16*x^2)
は4*x
になります。
Next: Random Numbers, Previous: Root, Exponential and Logarithmic Functions, Up: Mathematical Functions [Contents][Index]
Next: Functions and Variables for Trigonometric, Previous: Trigonometric Functions, Up: Trigonometric Functions [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)
を実行してください。
Previous: Introduction to Trigonometric, Up: Trigonometric Functions [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 and %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) ]
デフォルト値: 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)
– 逆余弦
– 逆双曲余弦
– 逆余接
– 逆双曲余接
– 逆余割
– 逆双曲余割
– 逆正割
– 逆双曲正割
– 逆正弦
– 逆双曲正弦
– 逆正接
– -%pi
から%pi
までの間のatan(y/x)
の値をもたらします。
– 逆双曲正接
atrig1
パッケージは、逆三角関数のためのいくつかの追加の整理規則を含みます。
Maximaが既に知っている規則と合わせて、
以下の角度が完全に実装されます:
0
, %pi/6
, %pi/4
, %pi/3
, %pi/2
。
他の3象限の対応する角度も利用可能です。
これらを使うには、load("atrig1");
を実行してください。
– 余弦
– 双曲余弦
– 余接
– 双曲余接
– 余割
– 双曲余割
デフォルト値: 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)
ntrig
パッケージは、
引数が形式f(n %pi/10)
―fは関数
sin
, cos
, tan
, csc
, sec
, cot
のいずれか―
の三角関数を整理するのに使われる整理規則の集合を含みます。
– 正割
– 双曲正割
– 正弦
– 双曲正弦
– 正接
– 双曲正接
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)
デフォルト値: true
trigexpandplus
は、trigexpand
の「和」規則を制御します。
trigexpand
コマンドが使われるか、もしくは
trigexpand
スイッチがtrue
に設定されている時
和(例えばsin(x+y))
)の展開は、
trigexpandplus
がtrue
の時だけ起こります。
デフォルト値: true
trigexpandtimes
は、trigexpand
の「積」規則を制御します。
trigexpand
コマンドが使われるか、もしくは、
trigexpand
スイッチがtrue
に設定されている時、
積(例えばsin(2*x)
)の展開は、
trigexpandtimes
がtrue
の時だけ起こります。
デフォルト値: true
triginverses
は、
三角関数や双曲線関数とそれらの逆関数の合成の整理を制御します。
もしall
なら、
例えば、atan(tan(x))
とtan(atan(x))
のどちらもxに整理されます。
もしtrue
なら、
arcfun(fun(x))
の整理は止められます。
もしfalse
なら、
arcfun(fun(x))
と
fun(arcfun(x))
のどちらの整理も止められます。
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
デフォルト値: true
trigsign
がtrue
の時、
三角関数への負の引数の整理を認めます。
例えば、sin(-x)
は、
trigsign
がtrue
の時だけ、
-sin(x)
になります。
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
のいくつかの例を表示します。
三角関数の整理された標準疑似線形形式を与えます;
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
Previous: Trigonometric Functions, Up: Mathematical Functions [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)
は、乱数生成器の現在のステートのコピーを返します。
sを乱数生成器状態にコピーします。
set_random_state
はいつもdone
を返します。
疑似乱数を返します。
もし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
Next: Maximas Database, Previous: Simplification [Contents][Index]