26. 色々なオプション
26.1 色々なオプションについて
この章ではMaximaの操作に大域的な影響を与える様々なオプションについて
議論する。又、全ての利用者定義の関数のリストの様々な様々なリストについて
も述べる。
26.2 SHARE
- MC上やDEC20版のMACSYMAでのSHAREディレクトリにはプログラムや情報
ファイル等が含まれており、それらはMACSYMAのコミュニティにとって有益
と考えられている物である。SHARE;での大半のファイルはMACSYMAシステムの
一部ではなく孤立したもので、例えば、LOADFILE("array");の様に利用者に
よって個別に読み込まなければならない。
SHARE;の多くのファイルはMACSYMAの利用者達によって寄贈されたものである。
より詳細とSHAREディレクトリに寄贈する事に関する同意事項については
PRINTFILE(SHARE,USAGE,SHARE);を実行せよ。ディレクトリの"内容一覧"は
PRINTFILE(SHARE,>,SHARE);を実行せよ。
26.3 色々なオプションに関する諸定義
- 変数: ALIASES
- デフォルト値:[] 利用者定義の(ALIAS,ORDERGREAT,ORDERLESS関数や原子を
名詞型と宣言する事によって設定された)別名を持つ原子。
- 変数: ALLSYM
- デフォルト値:[TRUE] - TRUEであれば、全ての添字付けられたオブジェクトは、
それらの全ての共変と反変添字での対称性を持つと仮定される。もし、FALSEで
あれば、添字での何如なる種類の対称性も仮定されない。微分の添字は常に
対称性を持っている。
- 宣言: ALPHABETIC
- MACSYMAのアルファベット、初期ではA-Z迄の文字に%と.を加える。
それ故、DECLARE("~",ALPHABETIC)でNEW~VALUEが名前として使える
様になる。
- 関数: APROPOS (string)
- 引数として文字列を取り、MACSYMAの全ての名前で、文字列stringを何処でも
含むものを探す。それ故、APROPOS(EXP);は、EXPをEXPAND,EXP,EXPONENTIALIZE
の様に名前の一部に含む全てのフラグと関数のログリストを返す。
それ故、何か名前の一部だけを覚えていれば、この命令を用いて残りの名前
を探す事が可能である。同様に、APPROPOS(TR_);でTRANSLATORに関連する
沢山のスイッチ(大半がTR_で始まる)のリストを探す事が出来る。
- 関数: ARGS (exp)
- expの引数のリストを返す。つまり、本質的に次と同値である
ARGSとSUBSTPARTの両方はINFLAGの設定に依存する。
- 関数: DUMMY (i1,i2,...)
- 各添字i1,i2,...に!nの形式の名前を設定する。ここでnは正整数である。
これは式を構成するのに必要な無効添字が既に使われている添数と衝突
しない事を保証する。COUNTER[デフォルト値 1]は次の無効添字を生成
するのに用いられる数値の修飾子を定める。この前置詞はオプションの
DUMMYX[!]で定められる。
- 変数: GENINDEX
- デフォルト値:[I] 必要な時に次の和の変数を生成するのに使われる
アルファベットの前置詞。
- 変数: GENSUMNUM
- デフォルト値:[0] - 数値の修飾子で総和の次の変数を生成する為に用いられる。
FALSEに設定されていれば、その添字は数値では無い添字でGENINDEXだけで構成
される。
- 変数: INF
- - 正の実無限大
- 変数: INFINITY
- - 複素無限大、任意の偏角で無限の大きさを持つ。(INFとMINFも見よ)
- 変数: INFOLISTS
- デフォルト値:[] - MACSYMAでの情報リストの全ての名前のリスト。
次のものがある:
-
LABELS - 代入された全てのC,DとEラベル行
-
VALUES - 代入された全ての原子。つまり、利用者の変数でMACSYMAのものではない。
-
オプションやスイッチ(:,::,や関数による結び付けで設定されたもの)
-
FUNCTIONS - 全ての利用者定義関数(f(x);=...で設定されたもの)
-
ARRAYS - 宣言されたものと非宣言の配列(:,::,や::=...で設定されたもの)
-
MACROS - 利用者によって定義された任意のマクロ
-
MYOPTIONS - 利用者によって再設定された全てのオプション(それらが
デフォルト値に再設定されていようが無関係に)
-
RULES - 利用者定義のパターンマッチングと簡易化の規則(TELLSIMP,
TELLSIMPAFTER,DEFMATCHやDEFRULEで設定されたもの)
-
ALIASES - 利用者定義の別名を持つ原子(ALIAS,ORDERGREAT, ORDERLESS関数
やDECLAREでNOUNとして宣言されたもの)
-
DEPENDENCIES - 関数的な依存関係を持つ原子(DEPENDSやGRADEF関数で設定された
もの)
-
GRADEFS - 利用者定義の微分を持つ関数(GRADEF関数で設定されたもの)
-
PROPS - 上で言及された他の任意の属性、例えば、ATVALUES,MATCHDECLARES等
のDECLARE関数で指定された属性を持つ原子。
-
LET_RULE_PACKAGES - 全ての利用者定義のリストで、規則パッケージに特別な
DEFAULT_LET_RULE_PACKAGEを追加するもの。(DEFAULT_LET_RULE_PACKAGEは規則
パッケージの名前で、利用者によって明示的に設定されなかった時のそれである。)
- 関数: INTEGERP (exp)
- expが整数ならばTRUE、それ以外はFALSE。
- 変数: M1PBRANCH
- デフォルト値:[FALSE] - "羃乗の-1に対する主分枝"。
(-1)^(1/3)の様な物[つまり、"奇数の"有理的指数]と(-1)^(1/4)
[つまり、"偶数の"有理的指数]は次の地図で言及される様に扱われる。
| | DOMAIN:REAL(default)
(-1)^(1/3): -1
(-1)^(1/4): (-1)^(1/4)
DOMAIN:COMPLEX
M1PBRANCH:FALSE(default) M1PBRANCH:TRUE
(-1)^(1/3) 1/2+%i*sqrt(3)/2
(-1)^(1/4) sqrt(2)/2+%i*sqrt(2)/2
|
| | (* 訳者注:
簡単に述べると、例えばx^2の様な実数上の関数はx=0の領域を除くと
2対1の関数となる。つまり、-1と1はx^2で共に1になる様に、-aとaはx^2
で同じ値を持つ。逆に言えば、a^2となるのはa=0でなければ-aと
aの二種類存在し、一意に決らない。しかし、通常はx>0の
範囲に限定すればaの絶対値(|a|と表記)が答えとなり、x<0の範囲
では-|a|がその答となって、これらの範囲に限定すれば答が一意に
決まる事になる。上の説明で地図(chart)とはこの領域(x>0やx<0)を
意味する。この領域を上手に繋ぎ合せて関数がその空間上で1対1になる
様に拡張したものが非常に大雑把だが複素関数論で出てくるリーマン面と
呼ばれるものである。これは位相幾何学で分岐被覆とも呼ぶ。この辺の
詳細は複素関数論や位相幾何学の教科書を参照されたい。
*)
|
- 関数: NUMBERP (exp)
- expが整数、有理数、浮動小数やbigfloatであればTRUE、それ以外はFALSE
となる。
- 関数: PROPERTIES (a)
- 原子aに関連する全ての属性の名前を載せたリストを生成する。
- 特殊記号: PROPS
- - 任意の属性
原子INFOLISTSで明示的に言及されたものの他の任意の属性、例えば、
ATVALUE,MATCHDECLARES等々で、DECLARE関数で指定された属性と
同様のものである。
- 関数: PROPVARS (prop)
- PROPSリスト上の原子のリストを生成し、propによって指定された
属性を持つ。それ故、PROPVARS(ATVALUE)はatvalueを持つ原子の
リストを生成する。
- 関数: PUT (a, p, i)
- 原子aにiで指定された属性pを加える。これは利用者が原子に任意の属性を
与える事が可能となる。
- 関数: QPUT (a, p, i)
- PUTに似ているが、その引数は評価されない。
- 関数: REM (a, i)
- 原子aからiで指定された属性を削除する。
- 関数: REMOVE (args)
- 変数や関数に関連した属性の一部や全てを削除する。
REMOVE(a1, p1, a2, p2, ...)は属性piを原子aiから削除する。
aiとpiはDECLAREで宣言されたリストでも良い。piは任意の属性、例えば、
FUNCTION, MODE_DECLARE等である。変換されたLISP版の関数は削除される
べきである事を暗喩するTRANSFUNかもしれない。
もし、変換されたものでなく、実行された関数のMACSYMA版が欲しい時には
便利である。piは、aiに与えられた構文的拡張を取り除く為のOPやOPERATOR
でもあって良い(付録IIを見よ)。aiが"ALL"であれば、piによって指定された
属性は全てのそれを持つ原子から削除される。より特殊な削除関数(REMVALUE,
REMARRAY, REMFUNCTIONとREMRULE)と違い、REMOVEは与えられた属性が存在し
ない時でも文句を言わない;常に"DONE"を返す。
- 関数: REMVALUE (name1, name2, ...)
- 利用者変数(下添字されていても良い)の値をシステムから削除する
nameがALLであれば、全ての利用者変数が削除される。値は、自動的にMACSYMAが
Ci,DiやEiとラベル付けする様に利用者によって名前付けられた項目である。
- 関数: RENAME (exp)
- expに同値な式を返し、集合[!1,!2,...]から選ばれた各項では無効添字
を持っている。積での各無効添字は異っている;和に関して、RENAMEは
各無効添字を和で同じものにしようとする。加えて、添字はアルファベット
順と数値の順番で蓄えられる。
- 関数: RNCOMBINE (exp)
- expの全ての項を結合する事によってexpを変換する。ここで結合する項は
分母が同じものや互いに数値因子だけ異るだけの分子を持つものである。
これは、同じ分母を持つ項を集めるCOMBINEの挙動とは僅かに異なる。
PFEFORMAT:TRUEを設定し、COMBINEを用いれば、RNCOMBINEを用いて
得られるものと似た結果に到達する事が可能だが、RNCOMBINEは分母の数値
因子での襷掛けを行う追加の段階を持つ。その結果はより快適な形式で、
幾つかの消去が認められるだろう。バグはASBに。
| | (* 訳者注:
"分子の数値因子での襷掛け"とはa/(3*b)+c/(2*b)を(2*a + 3*c)/(2*3*b)
にする事を指している。訳者に石を投げないで…
*)
|
- 関数: SCALARP (exp)
- TRUEとなるのは、expが数、定数やスカラーとして宣言された変数や
数、定数、そしてその様な変数の合成で行列やリストを含まない場合。
- 関数: SCALEFACTORS (coordinatetransform)
- ここでcoordinatetransformは[[式1,式2,...],不定値1,不定値2,...]
の形式で、不定値1、不定値2等々は曲線座標系変数で、直交デカルト成分
の集合が曲線座標系の項で[式1,式2,...]で与えられる。
COORDINATES(座標)はベクトル[不定値1,不定値2,...]に設定され、
DIMENSION(次元)はこのベクトルの長さに設定される。SF[1],SF[2],...,
SF[DIMENSION]は座標系の拡大率に設定され、SFPRODはこれらの拡大率の
積が設定される。最初は、COORDINATESは[X,Y,Z],DIMENSIONは3で、
SF[1]=SF[2]=SF[3]=SFPROD=1と三次元直交デカルト座標系に対応している。
式を現在の座標系に於ける物理的成分への拡張を行う為には、その形式の
使い方がある関数がある。
- 関数: SETUP_AUTOLOAD (file,func1,...,funcN)
- 二つかそれ以上の引数を取る。引数は:ファイルの指定と一つかそれ以上の
関数名,"funcI"で、"funcI"の呼出しを行い、"funcI"が定義されていなければ、
"file"によるファイルの指定は自動的にLOADによって読み込まれなければならず、
そのfileには"funcI"の定義を含んでいなければならない事を指図する
(これは呼出しによる過程、例えば、MACSYMAでINTEGRATEが様々なファイルを
読み込む原因となる)。MACSYMAでファイルを扱う他の命令での様に
SETUP_AUTOLOADの引数は評価されない。
| | 例:
SETUP_AUTOLOAD("bessel")$ J1(0.0);
注意: SETUP_AUTOLOADは配列関数に対しては動作しない。
|
This document was generated
by Hiroshi Yokota on September, 16 2002
using texi2html