第 9 章 多項式について
18.3 簡易化に関連する函数
apply nouns
apply nouns (h式i)
式中の名詞型を処理します.例えば, exp:’diff(xˆ 2/2,x);apply nouns(exp);はxになります.これ はapply nouns(exp)ではなくev(exp,nouns)を用いた場合と同じ結果になりますが,apply nouns を用いた方が速くてメモリ消費もより少ない長所があります.また,evで問題が生じる恐れのある
translate等で変換されたMAXIMAのプログラムに対しても使えます.
名詞形式の演算子に対し,applyで関連する規則を適用させるのは, 呼出されたapply nounsで あって,ev nounsではない事に注意しましょう.
paragraphdemoivre demoivre(h式i)
demoivre変数の設定やevによる式の再評価なしで変換を行います.
exponentialize exponentialize(h式i)
h式iを指数函数形式に変換します.
sumcontract sumcontract(h式i)
上限と下限の差が定数となる加法の全ての総和を結合します.結果は,各総和の集合に対して,全 ての適切な外の項を加えて一つの総和にしたものを含む式になります.suncontractは全ての互換な 総和を結合し,可能であれば,総和の一つから添字の一つを用います.sumcontractを実行する前に intosum(h式ir)の実行が必要かもしれません.
askinteger
askinteger (h式i)
askinteger (h式i,hオプション引数i)
h式iは任意の有効なMAXIMAの式で,hオプション引数iはeven(偶数), odd(奇数),integer(整 数)の何れか一つで,省略された場合は内部でinteger が設定されます.この函数はMAXIMAに蓄 えられた情報からh式iがeven,odd,或いはintegerであるかを決定しようとします.MAXIMAに 蓄えられた情報では不十分な場合,利用者に質問して,MAXIMAに情報を蓄えます.
(%i16) aa:1;
(%o16) 1
(%i17) askinteger(aa);
(%o17) yes
(%i18) askinteger(aa,odd);
(%o18) yes
(%i19) askinteger(aa,even);
184 第18章 簡易化について
(%o19) no
(%i20) askinteger(yy);
Is yy an integer?
yes;
(%o20) yes
(%i21) askinteger(yy,odd);
Is yy an odd number?
no;
(%o21) no
(%i22) askinteger(yy,even);
(%o22) yes
(%i23) askinteger(zz,even);
Is zz an even number?
no;
(%o23) no
(%i24) askinteger(zz,odd);
Is zz an odd number?
no;
(%o24) no
(%i25) askinteger(zz,integer);
Is zz an integer?
yes;
(%o25) yes
(%i26) askinteger(zz+yy+aa,integer);
(%o26) yes
(%i27) askinteger(zz,integer);
(%o27) yes
(%i28) askinteger(zz,even);
Is zz an even number?
yes;
(%i29) askinteger(zz*2+aa,even);
(%o29) no
ここでの例で示す様にyyがintegerであると指定すると,それからyyはintegerとなります.更
に,yyがoddであると宣言すれば,自動的にevenになります. 但し,zzがoddでなく,evenではない と宣言しても,askinteger(zz)はnoとはならずに尋ねて来ます.ここで,yesとすれば,それまで入力 したoddでもevenでもない事が消去されます.askintegerはzz+yy+aaや2*zz+aaの様な式に対 しても,それ以前の入力情報から,整数,奇数か偶数であるかを判断します.
asksign
asksign (h式i)
h式iが,正,負,或いは零であるかを決定します. この際に,MAXIMAに蓄えられた情報をもと に決定しようとしますが, 情報が不十分で決定出来なければ,その演繹を完遂する為に必要な質問 を利用者に対して行います.
利用者の答はMAXIMAに記録されます.
asksignが尋ねる値はpos(正値),neg(負値),zero(零)の何れか一つです.
expand
expand (h式i)
expand (h式i,hpi,hni)
和の積や指数函数内の和を展開し,有理式の分子を各々の項に分離し,乗法(可換と非可換の両方) をh式iの全ての階層で加法に対して分配します.
尚,多項式に対しては,より効率的なアルゴリズムを用いるratexpandを通常用いるべきです.
大域変数のmaxnegexとmaxposexはMAXIMAが展開する式の負と正の羃の次数の最大値を 設定します.
expand(h式i,p,n)の場合,pをmaxposex,nをmaxnegexに各々対応し,この条件でh式iの展開 を行います.
expandwrt
expandwrt (h式i,h変数1i,· · ·,h変数ni)
h変数1i,· · ·,h変数niに対し, h式iを展開します.h変数iiを含む全ての積は明示的に現れます.
返される形式はh変数iiを持つ式の和の積を持たないものとなります.h変数iiは変数,演算子や式 でも構いません.
デフォルトで分母は展開されませんが,大域変数のexpandwrt denomでこれは制御が出来ます.
この函数を使う為には予めload(stopex)で読込を実行します.
expandwrt factored
expandwrt factored (h式>i,h変数1i,· · ·,h変数ni)
expndwrtに似ているが,幾分違った式の積を扱います.expand factoredは要求される展開を処
理しますが,引数リストの中の変数に含まれるh式 iの因子に対してのみ処理を行います. 予 め,load(stopex)で読込を実行する必要があります.
intosum
intosum (h式i)
186 第18章 簡易化について 総和の乗法がなされる全ての物を取り,それらを総和の内部に置きます. 添字が式の外側で用い られていれば,この函数はsumcontractに対して実行するのと同様に適切な添字を探そうとします.
これは本質的に総和のoutative属性の観念の逆になりますが,この属性を取り除かずに素通りする だけである事に注意して下さい.
幾つかの場合ではintosumの前にscanmap(multthru,h式i)が必要かもしれません.
numerval
numerval (h変数1i,h式1i,· · ·,h変数ni,h式ni)
h変数iiをh式iiの数値変数として宣言し,h式iiは大域変数numerがtrueであれば,任意の式 に現われる変数に対して評価と代入が行われます.
radcan
radcan (h式i)
h式iは,対数函数,指数函数と羃乗根を含んでいても構いません. h式iをある変数順序に対する CRE表現に変換し,簡易化を行います. 特定の変数順序に対し,CRE表現は一意に定まります(従っ て,CRE表現は式の正準表現になります).その為,radcanを用いた簡易化も一意に定まります. 但 し,radcanは時間を多く消費します.これは因子分解と指数の部分分数展開を基本とした簡易化の 為,式の成分の間の関係を探索する為です.
scsimp
scsimp (h式i,h規則1i,· · ·,h規則ni)
scsimp(=Sequential Comparative SIMPlification)は,式(その最初の引数),同一性や規則(その 他の引数)の集合を取って簡易化を試みます. より小さな式が得られると,その処理が繰返されま す.そうでなければ,全ての簡易化が試みられた後に,もとの式が返却されます.
unknown
unknown (h式i)
h式iが一つの演算子を持つ場合,函数が組込みの簡易化函数が分らない場合にtrueを返します.
第 19 章 三角函数
Maximaは沢山の三角函数を持っています. 三角函数の恒等式,即ち,cos(x)2+sin(x)2 = 1や
cos(2∗x) = 2∗cos(x)2−1 の様なものは予めMaximaに組込まれていますが,システムの並び照
合機能を使う事で,多くの恒等式を規則として利用者が付加する事が出来ます.
Maximaで予め定義された三角函数は下記のものがあります.
acos, acosh, acot, acoth, acsc, acsch,asec,asech,asin,asinh, atan, atanh, cos, cosh, cot, coth,csc, csch, sec, sech, sin, sinh,tanl,tanh.
三角函数に付随する函数は,大域変数のtrigexpand,trigreduceとtrigsignを参照して下さい.二
つのshareパッケージはMaximaに組み込みの簡易化の規則のtrigとatrigを拡張します.
188 第19章 三角函数