Next: , Previous:   [Contents][Index]

4 Command Line


4.1 Introduction to Command Line


4.2 Functions and Variables for Command Line

システム変数: __

__は、現在評価中の入力式です。 すなわち、入力式 exprが評価されている間、 __exprです。

__は、入力が整理されたり評価されたりする前に入力式に割り当てられます。 しかし表示される時、__の値は(評価はされませんが)整理されます。

batchload__を認識します。 batchが処理するファイル内では、 __は対話プロンプトでのそれと同じ意味になります。 loadが処理するファイル内では、 __は対話プロンプトやバッチファイルの中で直前に入力された入力式にバインドされています; __は処理中のファイル内の入力式にはバインドされません。 特に、 load (filename)が対話プロンプトからコールされた時、 __は、ファイルが処理されている間、 load (filename)にバインドされます。

_%も参照してください。

例:

(%i1) print ("I was called as", __);
I was called as print(I was called as, __) 
(%o1)              print(I was called as, __)
(%i2) foo (__);
(%o2)                     foo(foo(__))
(%i3) g (x) := (print ("Current input expression =", __), 0);
(%o3) g(x) := (print("Current input expression =", __), 0)
(%i4) [aa : 1, bb : 2, cc : 3];
(%o4)                       [1, 2, 3]
(%i5) (aa + bb + cc)/(dd + ee + g(x));
                            cc + bb + aa
Current input expression = -------------- 
                           g(x) + ee + dd
                                6
(%o5)                        -------
                             ee + dd
システム変数: _

_は直前の入力式です。 (例えば、%i1, %i2, %i3, …)

_は、入力が整理されたり評価されたりする前に、入力式に割り当てられます。 しかし、 _の値は、表示される時(評価はされませんが)整理されます。

batchload_を認識します。 batchが処理するファイル内では、 _は対話プロンプトでのそれと同じ意味になります。 loadが処理するファイル内では、 _は、対話プロンプトやバッチファイルの中で、直前に入力された入力式にバインドされます; _は処理中のファイル内の入力式にはバインドされません。

__%も参照してください。

例:

(%i1) 13 + 29;
(%o1)                          42
(%i2) :lisp $_
((MPLUS) 13 29)
(%i2) _;
(%o2)                          42
(%i3) sin (%pi/2);
(%o3)                           1
(%i4) :lisp $_
((%SIN) ((MQUOTIENT) $%PI 2))
(%i4) _;
(%o4)                           1
(%i5) a: 13$
(%i6) b: 29$
(%i7) a + b;
(%o7)                          42
(%i8) :lisp $_
((MPLUS) $A $B)
(%i8) _;
(%o8)                         b + a
(%i9) a + b;
(%o9)                          42
(%i10) ev (_);
(%o10)                         42
システム変数: %

%はMaximaが直前に計算した出力式です。 (例えば、 %o1, %o2, %o3, …) 出力の表示には無関係です。

batchload%を認識します。 batchが処理するファイル内では、 %は対話プロンプトでのそれと同じ意味になります。 loadが処理するファイル内では、 %は、対話プロンプトやバッチファイルの中で、直前に計算された出力式にバインドされます; %は、処理中のファイル内の出力式にはバインドされません。

_, %%, %thも参照してください。

システム変数: %%

合成文、すなわちblock, lambda, もしくは(s_1, ..., s_n)の中で、 %%は前の文の値です。

合成文の最初の文もしくは合成文の外側では%%は未定義です。

%%は、batchloadで認識され、 対話プロンプトでのそれと同じ意味になります。

%も参照してください。

例:

以下の二つの例は同じ結果になります。

(%i1) block (integrate (x^5, x), ev (%%, x=2) - ev (%%, x=1));
                               21
(%o1)                          --
                               2
(%i2) block ([prev], prev: integrate (x^5, x),
               ev (prev, x=2) - ev (prev, x=1));
                               21
(%o2)                          --
                               2

合成文は他の合成文を含むかもしれません。 文が単文か合成文かに関係なく、 %%は前の文の値です。

(%i3) block (block (a^n, %%*42), %%/6);
                                 n
(%o3)                         7 a

合成文の中ではブレイクプロンプトで%%の値を検査することができます。 ブレイクプロンプトは break関数を実行することで開きます。 例えば、以下の例で%%;を入力すると、42が出力されます。

(%i4) block (a: 42, break ())$

Entering a Maxima break point. Type 'exit;' to resume.
_%%;
42
_
関数: %th (i)

i番前の出力式の値。 すなわち、計算される次の式をn番目の出力とすると %th (m)は、(n - m)番目の出力です。

batchload%thを認識されます。 batchが処理するファイル内では、 %thは、対話プロンプトでのそれと同じ意味になります。 loadが処理するファイル内では、 %thは、対話プロンプトやバッチファイルの中で、直前に計算された出力式にバインドされます; %thは、処理中のファイル内の出力式にはバインドされません。

%%%も参照してください。

例:

batchファイルの中でとか、出力式のグループを参照する時%thは役立ちます。 この例はsを最後の5つの出力式の和に設定します。

(%i1) 1;2;3;4;5;
(%o1)                           1
(%o2)                           2
(%o3)                           3
(%o4)                           4
(%o5)                           5
(%i6) block (s: 0, for i:1 thru 5 do s: s + %th(i), s);
(%o6)                          15
特殊シンボル: ?

関数名や変数名の前置としての?は、 名前が、Maximaの名前ではなくLispの名前であることを意味します。 例えば、?roundは、Lisp関数ROUNDを意味します。 この点に関して更に知るにはLisp and Maximaを参照してください。

表記? word (空白を空けて単語が続くクエスチョンマーク)は describe("word")と同値です。 クエスチョンマークは入力ラインの先頭になければいけません; そうでなければドキュメンテーションのリクエストとして認識されません。 describeも参照してください。

特殊シンボル: ??

表記?? word(空白を空けて単語が続く??)は describe("word", inexact)と同値です。 クエスチョンマークは入力行の先頭になければいけません; そうでなければドキュメンテーションのリクエストとして認識されません。 describeも参照してください。

オプション変数: inchar

デフォルト値: %i

incharはユーザーが入力した式のラベルの前置です。 Maximaは、 incharlinenumを連結することで、 入力式それぞれのラベルを自動的に構成します。

incharは単一文字である必要はなく、 任意の文字列もしくはシンボルを割り当てられます。 Maximaは内部的に前置の最初の文字だけを考慮するので、 前置inchar, outchar, linecharは異なる最初の文字を持たなければいけません。 そうでなければkill(inlables)のようないくつかのコマンドは期待通りに動きません。

labelsも参照してください。

例:

(%i1) inchar: "input";
(%o1)                         input
(input2) expand((a+b)^3);
                     3        2      2      3
(%o2)               b  + 3 a b  + 3 a  b + a
(input3)
システム変数: infolists

デフォルト値: []

infolistsはMaximaに関する情報リストすべての名前のリストです。 これらは以下の通りです:

labels

すべてのバインドされた%i, %o, %tラベル

values

:::や関数バインドが生成する、 ユーザー変数であって、Maximaオプションやスイッチでない、 すべてのバインドされたアトム

functions

:=defineが生成するすべてのユーザー定義関数

arrays

:, ::, または:=が生成するすべての宣言配列と未宣言配列

macros

::=が生成したすべてのユーザー定義マクロ関数

myoptions

(それらが後にデフォルト値に再設定されようがされまいが) ユーザーが再設定したすべてのオプション

rules

tellsimp, tellsimpafter, defmatch, またはdefruleが生成するすべてのユーザー定義パターンマッチングと整理規則

aliases

alias, ordergreat, orderless関数が生成するか、 declareを使ってアトムをnounとして宣言することで生成された、 ユーザー定義エーリアスを持つすべてのアトム

dependencies

dependsgradef関数が生成する関数依存性を持つすべてのアトム

gradefs

gradef関数が生成するユーザー定義の導関数を持つすべての関数

props

declare関数で確立されるプロパティはもちろん、 atvaluematchdeclareなどが確立するプロパティで、 上で述べたもの以外の任意のプロパティを持つすべてのアトム

let_rule_packages

特別パッケージdefault_let_rule_packageに加えて すべてのユーザー定義let規則パッケージ (default_let_rule_packageは、 ユーザーが陽に設定していない時使われる規則パッケージの名前です。)

関数: kill (a_1, …, a_n)
関数: kill (labels)
関数: kill (inlabels, outlabels, linelabels)
関数: kill (n)
関数: kill ([m, n])
関数: kill (values, functions, arrays, …)
関数: kill (all)
関数: kill (allbut (a_1, …, a_n))

引数a_1, …, a_nからすべてのバインド(値、関数、配列、ルール)を解除します。 引数a_kはシンボルか配列要素を取り得ます。 a_kが配列要素の時、killは配列の他の要素には影響することなくその要素をアンバインドします。

いくつかの特殊な引数が認識されます。 例えば、kill (inlabels, functions, allbut (foo, bar))のように、異なる引数の種類が組み合わされます。

kill (labels)はそれまでに作られた入力、出力、中間式のラベルすべてをアンバインドします。 kill (inlabels)incharの現在の値で始まる入力ラベルのみをアンバインドします。 同様に、 kill (outlabels)outcharの現在の値で始まる出力ラベルのみをアンバインドし、 kill (linelabels)linecharの現在の値で始まる中間式ラベルのみをアンバインドします。

kill (n)(nは整数)は入力、出力ラベルの最近のn個をアンバインドします。

kill ([m, n])は入力、出力ラベルmからnまでをアンバインドします。

kill (infolist)infolistの中のすべての項目をアンバインドします。 ここで、infolistは(values, functions, arraysのような) infolistsの中の任意の項目です。 infolistsも参照してください。

kill (all)はinfolistsのすべての項目をアンバインドします。 kill (all)はグローバル変数をデフォルト値にリセットしません; この点に関してはresetを参照してください。

kill (allbut (a_1, ..., a_n))は、 a_1, ..., a_nを除いて すべてのinfolistsの中のすべての項目をアンバインドします。 kill (allbut (infolist))infolistinfolistvalues, functions, arraysなど) 上の項目を除いてすべての項目をアンバインドします。

バインドされたプロパティによって使われたメモリは、すべてのシンボルがプロパティからアンバインドされるまで解放されません。 特に、シンボルの値によって使われているメモリを解放するには、 シンボルそのもののアンバインドだけでなく、バインドされた値を表示する出力ラベルをアンバインドします。

killは引数をクォートします。 引数を評価するにはクォートクォート演算子''を使います。

kill (symbol)はシンボルのすべてのプロパティをアンバインドします。 対照的に、関数remvalue, remfunction, remarray, remruleは特定のプロパティをアンバインドします。

kilは常に、たとえ引数がバインドされていなくても、doneを返します。

関数: labels (symbol)
システム変数: labels

symbolで始まる入力、出力、中間式ラベルのリストを返します。 symbolは、inchar, outchar, もしくはlinecharの値が典型的です。 ラベル文字はパーセント記号ありでもあしでもかまいませんので、 例えば、i%iは同じ結果になります。

もしsymbolで始まるラベルがなければ、labelsは空のリストを返します。

関数labelsは引数をクォートします。 引数を評価するにはクォートクォート演算子''を使います。 例えば, labels (''inchar)は、現在の入力ラベル文字で始まる入力ラベルを返します。

変数labelsは入力、出力、中間式ラベルのリストです。 inchar, outchar, もしくはlinecharが再定義されても、以前のラベルすべてを含みます。

デフォルトで、Maximaはそれぞれのユーザー入力式の結果を表示し、結果に出力ラベルが与えられます。 入力を;(セミコロン)の代わりに$(ドル記号)で終了することで、出力表示は抑制されます。 出力ラベルが構成され、結果にバインドされますが、表示されません。 ラベルは表示された出力ラベルと同じ方法で参照できます。 %%%, %thも参照してください。

いくつかの関数では中間式ラベルが生成されることがあります。 フラグprogrammodesolveや他の関数が式のリストを返す代わりに中間式ラベルを生成するかどうかを制御します。 ldisplayのようないくつかの他の関数は常に中間式ラベルを生成します。

incharoutchar, linechar, infolistsも参照してください。

オプション変数: linechar

デフォルト値: %t

linecharは Maximaが生成する中間式のラベルの前置です。 Maximaは(もし表示されるなら) linecharlinenumを連結することで 中間式それぞれのラベルを構成します。

linecharは単一文字である必要はなく、 任意の文字列もしくはシンボルを割り当てられます。 Maximaは内部的に 前置の最初の文字だけを考慮するので、 前置inchar, outchar, linecharは異なる最初の文字を持たなければいけません。 そうでなければ kill(inlables)のようないくつかのコマンドは期待通りに動きません。

中間式は表示されるかもしれませんし、表示されないかもしれません。 programmodelabelsも参照してください。

システム変数: linenum

入力出力式の現在のペアの行番号。

システム変数: myoptions

デフォルト値: []

myoptionsはユーザーが再設定したオプションすべてのリストです。 初期値に再設定されたか否かに関わらずです。

オプション変数: nolabels

デフォルト値: false

nolabelstrueであれば、 入力と出力結果のラベル(それぞれ%i%o)は表示されますが、 ラベルは結果にバインドされず、labelsリストにも追加されません。 ラベルは結果にバインドされないので、 ガーベッジコレクションは結果が使ったメモリを回復することができます。

そうでなければ、入力と出力の結果のラベルは結果にバインドされ、labelsリストに追加されます。

中間式ラベル(%t)はnolabelsに影響されません; nolabelstrueでもfalseでも、中間式ラベルはバインドされ、labelsリストに追加されます。

batchloadlabelsも参照してください。

オプション変数: optionset

デフォルト値: false

optionsettrueの時、Maximaは、Maximaオプションが再設定されるといつでも、メッセージを表示します。 もしユーザーがあるオプションの綴りが怪しく、割り当てた変数が本当にオプション変数か確認したいなら便利です。

例:

(%i1) optionset:true;
assignment: assigning to option optionset
(%o1)                         true
(%i2) gamma_expand:true;
assignment: assigning to option gamma_expand
(%o2)                         true
オプション変数: outchar

デフォルト値: %o

outcharはMaximaが計算した式のラベルの前置です。 outcharlinenumを連結することで、 Maximaは計算された式それぞれのラベルを自動的に構成します。 outcharは、単一文字である必要はなく、 任意の文字列もしくはシンボルを割り当てられます。 Maximaは内部的に前置の最初の文字だけを考慮するので、 前置inchar, outchar, linecharは異なる最初の文字を持たなければいけません。 そうでなければ、kill(inlables)のようないくつかのコマンドは期待通りに動きません。

labelsも参照してください。

例:

(%i1) outchar: "output";
(output1)                    output
(%i2) expand((a+b)^3);
                     3        2      2      3
(output2)           b  + 3 a b  + 3 a  b + a
(%i3)
関数: playback ()
関数: playback (n)
関数: playback ([m, n])
関数: playback ([m])
関数: playback (input)
関数: playback (slow)
関数: playback (time)
関数: playback (grind)

入力、出力、中間式を表示します。再計算はしません。 playbackはラベルにバインドされた式表示するだけです; (printdescribeで表示されたテキストやエラーメッセージなど)他の出力は表示されません。 labelsも参照してください。

playbackは引数をクォートします。 引数を評価するにはクォートクォート演算子''を使います。 playbackは常にdoneを返します。

playback ()(引数なし)は今までに生成された入力、出力、中間式すべてを表示します。 たとえ計算時に$終端子で出力が抑制されていても、 出力式は表示されます。

playback (n)は最近のn個の式を表示します。 入力、出力、中間式それぞれを1と数えます。

playback ([m, n])m番目からn番目までの入力、出力、中間式を表示します。

playback ([m])playback ([m, m])と同値です; これは普通、入力と出力の式のペアを1つ表示します。

playback (input)は今までに生成された入力式をすべて表示します。

playback (slow)は式の間でポーズし、ユーザーが enterを入力するのを待ちます。 これは demoと似たような振る舞いです。 playback (slow)は、savestringoutと関連して、 役立つ式を取り出すために2次記憶ファイルを生成するときに便利です。

playback (time)はそれぞれの式の計算時間を表示します。

playback (grind)は入力式を grind関数と同じ形式で表示します。 出力式は grindオプションで影響を受けません。 grindを参照してください。

例えば、playback ([5, 10], grind, time, slow)のように、 引数を組み合わせられます。

オプション変数: prompt

デフォルト値: _

promptは、demo関数やplayback (slow)モード、 (breakで呼び出された)Maximaブレイクループのプロンプトシンボルです。

関数: quit ()

Maximaセッションを終了します。 関数は、quitではなく、quit();もしくはquit()$として呼び出さなければいけないことに注意してください。

長い計算を中断するには control-Cをタイプしてください。 デフォルトの動作では Maximaプロンプトに戻ります。 もし*debugger-hook*nilなら、 control-CはLispデバッガを開きます。 debuggingも参照してください。

関数: read (expr_1, …, expr_n)

expr_1, …, expr_nを表示し、 コンソールから式1つを読み込み、評価された式を返します。 式はセミコロン;もしくはドル記号$で終了します。

readonlyも参照してください。

(%i1) foo: 42$ 
(%i2) foo: read ("foo is", foo, " -- enter new value.")$
foo is 42  -- enter new value. 
(a+b)^3;
(%i3) foo;
                                     3
(%o3)                         (b + a)
関数: readonly (expr_1, …, expr_n)

expr_1, …, expr_nを表示し、 コンソールから式を1つ読み込み、 式を(評価せずに)返します。 式はセミコロン;もしくはドル記号$で終了します。

readも参照してください。

例:

(%i1) aa: 7$
(%i2) foo: readonly ("Enter an expression:");
Enter an expression: 
2^aa;
                                  aa
(%o2)                            2
(%i3) foo: read ("Enter an expression:");
Enter an expression: 
2^aa;
(%o3)                            128
関数: reset ()

多くのグローバル変数やオプション、いくつかの他の変数をデフォルト値に再設定します。

resetは Lispリスト*variable-initial-values*上の変数を処理します。 Lispマクロdefmvarは(他の動作の間に)このリストに変数を置きます。 すべてではありませんが多くのグローバル変数やオプションがdefmvarによって定義されており、 また、defmvarで定義されたいくつかの変数はグローバル変数でもオプションでもありません。

オプション変数: showtime

デフォルト値: false

showtimetrueの時、出力式と一緒に計算時間と経過時間を表示します。

計算時間は常に記録されており、 showtimefalseの時でも、 timeplaybackで計算時間を表示することができます。

timerも参照してください。

関数: to_lisp ()

Maximaの下のLispシステムに入ります。(to-maxima)でMaximaに戻ります。

例:

関数を定義し、Maximaの下のLispシステムに入ります。 定義をプロパティリスト上で検査します。そして、関数定義を抽出し、因数分解し、 変数$resultに格納します。 変数はMaximaに戻った後、Maximaで使うことができます。

(%i1) f(x):=x^2+x;
                                  2
(%o1)                    f(x) := x  + x
(%i2) to_lisp();
Type (to-maxima) to restart, ($quit) to quit Maxima.

MAXIMA> (symbol-plist '$f)
(MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) $X) 
                             ((MPLUS) ((MEXPT) $X 2) $X))))
MAXIMA> (setq $result ($factor (caddr (mget '$f 'mexpr))))
((MTIMES SIMP FACTORED) $X ((MPLUS SIMP IRREDUCIBLE) 1 $X))
MAXIMA> (to-maxima)
Returning to Maxima
(%o2)                         true
(%i3) result;
(%o3)                       x (x + 1)
システム変数: values

初期値: []

valuesは(Maximaのオプションやスイッチではなく)バインドされたユーザー変数すべてのリストです。 リストは、:::でバインドされたシンボルを含みます。

もし変数の値がコマンドkillや, remove, remvalueで削除されたら、 変数はvaluesから削除されます。

ユーザー定義関数のリストに関しては functionsを参照してください。

例:

最初、valuesはシンボルa, b, cを示しますが、 dも―それは値にバインドされていません―ユーザー関数fも示しません。 値は変数から削除されます。valuesは空のリストです。

(%i1) [a:99, b::a-90, c:a-b, d, f(x):= x^2];
                                           2
(%o1)              [99, 9, 90, d, f(x) := x ]
(%i2) values;
(%o2)                       [a, b, c]
(%i3) [kill(a), remove(b,value), remvalue(c)];
(%o3)                   [done, done, [c]]
(%i4) values;
(%o4)                          []

4.3 Functions and Variables for Display

オプション変数: %edispflag

デフォルト値: false

%edispflagtrueの時、 Maximaは %eの負の指数乗を商として表示します。 例えば、%e^-x1/%e^xと表示されます。 exptdispflagも参照してください。

例:

(%i1) %e^-10;
                               - 10
(%o1)                        %e
(%i2) %edispflag:true$
(%i3) %e^-10;
                               1
(%o3)                         ----
                                10
                              %e
オプション変数: absboxchar

デフォルト値: !

absboxcharは1行より広い式の回りに絶対値記号を描くのに使われる文字です。

例:

(%i1) abs((x^3+1));
                            ! 3    !
(%o1)                       !x  + 1!
関数: disp (expr_1, expr_2, …)

displayのようですが、 等式ではなく引数の値だけが表示されます。 これは名前を持たない複雑な引数や引数の値だけに興味があって 名前には興味がない引数に役立ちます。

ldispprintも参照してください。

例:

(%i1) b[1,2]:x-x^2$
(%i2) x:123$
(%i3) disp(x, b[1,2], sin(1.0));
                               123

                                  2
                             x - x

                        .8414709848078965

(%o3)                         done
関数: display (expr_1, expr_2, …)

左辺が未評価のexpr_iで、右辺が式の値の等式を行の中央に表示します。 この関数は、中間結果を表示するのにブロックやfor文の中で役立ちます。 displayの引数は、通常アトムや、添字付き変数、関数コールです。 dispも参照してください。

ldisplay, disp, ldispも参照してください。

例:

(%i1) b[1,2]:x-x^2$
(%i2) x:123$
(%i3) display(x, b[1,2], sin(1.0));
                             x = 123

                                      2
                         b     = x - x
                          1, 2

                  sin(1.0) = .8414709848078965

(%o3)                         done
オプション変数: display2d

デフォルト値: true

display2dfalseの時、 コンソール表示は(2次元)形式ではなく文字列(1次元)形式です。

例:

(%i1) x/(x^2+1);
                               x
(%o1)                        ------
                              2
                             x  + 1
(%i2) display2d:false$
(%i3) x/(x^2+1);
(%o3) x/(x^2+1)
オプション変数: display_format_internal

デフォルト値: false

display_format_internaltrueの時、 式は数学的内部表現を隠すように変換されることなく表示されます。 表示はpartではなくinpartが返すものに対応します。

例:

User     part       inpart
a-b;      a - b     a + (- 1) b

           a            - 1
a/b;       -         a b
           b
                       1/2
sqrt(x);   sqrt(x)    x

          4 X        4
X*4/3;    ---        - X
           3         3
関数: dispterms (expr)

exprをパーツ毎に一行ずつ使って表示します。 すなわち、最初にexprの演算子が表示され、 それぞれの項が別々に表示されます。 もしexprが他の方法で表示するには大きすぎるなら、 これは役に立ちます。 例えば、もしP1, P2, ...が非常に大きな式なら、 P1 + P2 + ...を一度に表示しようとする場合、 表示プログラムは保存の空き領域を使い尽くすかもしれません。 しかしながら、 dispterms (P1 + P2 + ...)は、 P1を表示し、その下にP2を表示し、という具合です。 disptermsを使わない時、 もし指数式がA^Bのように表示するには広すぎるなら、 それはexpt (A, B) (もしくはA^^Bの場合、ncexpt (A, B))のように現れます。

関数: expt (a, b)
関数: ncexpt (a, b)

もし指数式がa^bのように表示するには広すぎるなら、 expt (a, b) (もしくは、a^^bの場合、ncexpt (a, b) のように現れます。

exptncexptは入力では認識されません。

オプション変数: exptdispflag

デフォルト値: true

exptdispflagtrueの時、 Maximaは式を商を使って負の指数の式を表示します。

例:

(%i1) exptdispflag:true;
(%o1)                         true
(%i2) 10^-x;
                                1
(%o2)                          ---
                                 x
                               10
(%i3) exptdispflag:false;
(%o3)                         false
(%i4) 10^-x;
                                - x
(%o4)                         10
関数: grind (expr)
オプション変数: grind

関数grindは コンソールにMaximaへの入力に適した形でexprを印刷します。 grindはいつもdoneを返します。

exprが関数名やマクロ名の時、 grindは、名前だけでなく関数やマクロ定義を出力します。

stringも参照してください。 それは出力を印刷する代わりに文字列を返します。 grindstringの出力より若干読みやすい方法で 式を印刷しようとします。

変数grindtrueの時、 stringstringoutの出力は grindのそれと同じフォーマットです; そうでなければ、それらの関数の出力を特別にフォーマットしようとはしません。 変数grindのデフォルト値はfalseです。

grindplaybackの引数としても指定できます。 grindが存在する時、 playbackgrind関数と同じフォーマットで入力式を印刷します。 そうでなければ、入力式を特にフォーマットしようとはしません。

grindは引数を評価します。

例:

(%i1) aa + 1729;
(%o1)                       aa + 1729
(%i2) grind (%);
aa+1729$
(%o2)                         done
(%i3) [aa, 1729, aa + 1729];
(%o3)                 [aa, 1729, aa + 1729]
(%i4) grind (%);
[aa,1729,aa+1729]$
(%o4)                         done
(%i5) matrix ([aa, 17], [29, bb]);
                           [ aa  17 ]
(%o5)                      [        ]
                           [ 29  bb ]
(%i6) grind (%);
matrix([aa,17],[29,bb])$
(%o6)                         done
(%i7) set (aa, 17, 29, bb);
(%o7)                   {17, 29, aa, bb}
(%i8) grind (%);
{17,29,aa,bb}$
(%o8)                         done
(%i9) exp (aa / (bb + 17)^29);
                                aa
                            -----------
                                     29
                            (bb + 17)
(%o9)                     %e
(%i10) grind (%);
%e^(aa/(bb+17)^29)$
(%o10)                        done
(%i11) expr: expand ((aa + bb)^10);
         10           9        2   8         3   7         4   6
(%o11) bb   + 10 aa bb  + 45 aa  bb  + 120 aa  bb  + 210 aa  bb
         5   5         6   4         7   3        8   2
 + 252 aa  bb  + 210 aa  bb  + 120 aa  bb  + 45 aa  bb
        9        10
 + 10 aa  bb + aa
(%i12) grind (expr);
bb^10+10*aa*bb^9+45*aa^2*bb^8+120*aa^3*bb^7+210*aa^4*bb^6
     +252*aa^5*bb^5+210*aa^6*bb^4+120*aa^7*bb^3+45*aa^8*bb^2
     +10*aa^9*bb+aa^10$
(%o12)                        done
(%i13) string (expr);
(%o13) bb^10+10*aa*bb^9+45*aa^2*bb^8+120*aa^3*bb^7+210*aa^4*bb^6\
+252*aa^5*bb^5+210*aa^6*bb^4+120*aa^7*bb^3+45*aa^8*bb^2+10*aa^9*\
bb+aa^10
(%i14) cholesky (A):= block ([n : length (A), L : copymatrix (A),
  p : makelist (0, i, 1, length (A))], for i thru n do
  for j : i thru n do
  (x : L[i, j], x : x - sum (L[j, k] * L[i, k], k, 1, i - 1),
  if i = j then p[i] : 1 / sqrt(x) else L[j, i] : x * p[i]),
  for i thru n do L[i, i] : 1 / p[i],
  for i thru n do for j : i + 1 thru n do L[i, j] : 0, L)$
(%i15) grind (cholesky);
cholesky(A):=block(
         [n:length(A),L:copymatrix(A),
          p:makelist(0,i,1,length(A))],
         for i thru n do
             (for j from i thru n do
                  (x:L[i,j],x:x-sum(L[j,k]*L[i,k],k,1,i-1),
                   if i = j then p[i]:1/sqrt(x)
                       else L[j,i]:x*p[i])),
         for i thru n do L[i,i]:1/p[i],
         for i thru n do (for j from i+1 thru n do L[i,j]:0),L)$
(%o15)                        done
(%i16) string (fundef (cholesky));
(%o16) cholesky(A):=block([n:length(A),L:copymatrix(A),p:makelis\
t(0,i,1,length(A))],for i thru n do (for j from i thru n do (x:L\
[i,j],x:x-sum(L[j,k]*L[i,k],k,1,i-1),if i = j then p[i]:1/sqrt(x\
) else L[j,i]:x*p[i])),for i thru n do L[i,i]:1/p[i],for i thru \
n do (for j from i+1 thru n do L[i,j]:0),L)
オプション変数: ibase

デフォルト値: 10

ibaseは Maximaが読む整数の基数です。

ibaseは2から(十進数で)36までの任意の整数を割り当てられます。 ibaseが10よりも大きい時、 数値は十進数字0から9に加えて、 ibaseディジットに必要なアルファベットA, B, C, …で構成されます。 最初のディジットが0から9の時だけ文字はディジットとして解釈されます。 大文字小文字は区別されません。 許容される最も大きな基数36の数値は0から9までとAからZまでから構成されます。

ibaseの値がいくつでも、 整数が小数点で終了する時は基数10として解釈されます。

obaseも参照してください。

例:

ibase less than 10.

(%i1) ibase : 2 $
(%i2) obase;
(%o2)                          10
(%i3) 1111111111111111;
(%o3)                         65535

10より大きなibase。 最初のディジットが0から9までの時だけ文字はディジットとして解釈されます。

(%i1) ibase : 16 $
(%i2) obase;
(%o2)                          10
(%i3) 1000;
(%o3)                         4096
(%i4) abcd;
(%o4)                         abcd
(%i5) symbolp (abcd);
(%o5)                         true
(%i6) 0abcd;
(%o6)                         43981
(%i7) symbolp (0abcd);
(%o7)                         false

整数が小数点で終了する時、基数10として解釈されます。

(%i1) ibase : 36 $
(%i2) obase;
(%o2)                          10
(%i3) 1234;
(%o3)                         49360
(%i4) 1234.;
(%o4)                         1234
関数: ldisp (expr_1, …, expr_n)

expr_1, ..., expr_nをコンソールに印刷出力として表示します。 ldispは 引数それぞれに中間式ラベルを割り当て、ラベルのリストを返します。

disp, display, ldisplayも参照してください。

例:

(%i1) e: (a+b)^3;
                                   3
(%o1)                       (b + a)
(%i2) f: expand (e);
                     3        2      2      3
(%o2)               b  + 3 a b  + 3 a  b + a
(%i3) ldisp (e, f);
                                   3
(%t3)                       (b + a)

                     3        2      2      3
(%t4)               b  + 3 a b  + 3 a  b + a

(%o4)                      [%t3, %t4]
(%i4) %t3;
                                   3
(%o4)                       (b + a)
(%i5) %t4;
                     3        2      2      3
(%o5)               b  + 3 a b  + 3 a  b + a
関数: ldisplay (expr_1, …, expr_n)

expr_1, ..., expr_nをコンソールに印刷出力として表示します。 式それぞれは、 lhsldisplayの引数の1つで、rhsがその値の、 形式lhs = rhsの等式として表示されます。 典型的には引数それぞれは変数です。 ldispは式それぞれに中間式ラベルを割り当て、ラベルのリストを返します。

display, dispも参照してください。

例:

(%i1) e: (a+b)^3;
                                   3
(%o1)                       (b + a)
(%i2) f: expand (e);
                     3        2      2      3
(%o2)               b  + 3 a b  + 3 a  b + a
(%i3) ldisplay (e, f);
                                     3
(%t3)                     e = (b + a)

                       3        2      2      3
(%t4)             f = b  + 3 a b  + 3 a  b + a

(%o4)                      [%t3, %t4]
(%i4) %t3;
                                     3
(%o4)                     e = (b + a)
(%i5) %t4;
                       3        2      2      3
(%o5)             f = b  + 3 a b  + 3 a  b + a
オプション変数: linel

デフォルト値: 79

linelはコンソールディスプレイの仮定された(文字単位の)幅です。 linelはユーザーによって任意の値に割り当てられます。 非常に小さい値や非常に大きな値は実用的ではありませんが。 エラーメッセージやdescribeの出力のように、 Maximaの組み込み関数が表示するテキストはlinelの影響を受けません。

オプション変数: lispdisp

デフォルト値: false

lispdisptrueの時、 Lispシンボルはクエスチョンマーク?を先頭文字として表示されます。 そうでなければ、Lispシンボルは先頭文字を持ちません。

例:

(%i1) lispdisp: false$
(%i2) ?foo + ?bar;
(%o2)                       foo + bar
(%i3) lispdisp: true$
(%i4) ?foo + ?bar;
(%o4)                      ?foo + ?bar
オプション変数: negsumdispflag

デフォルト値: true

negsumdispflagtrueの時、 x - y- y + xでなくx - yと表示されます。 falseに設定すると、 2つの式の違いに関する表示での特殊なチェックがされないようになります。 1つの応用は、例えば、a + %i*ba - %i*bを同じ表示にすることです。

オプション変数: obase

デフォルト値: 10

obaseはMaximaが表示する整数の基数です。

obaseは2から(十進数で)36までの任意の整数を割り当てられます。 obaseが10よりも大きい時、 数値は十進数字0から9に加えて、 必要な大文字アルファベットA, B, C, ...で構成されます。 もし先頭ディジットがそうでなければ文字なら、0ディジットが先頭に表示されます。 許容される最も大きな基数36の数値は0から9までとAからZまでから構成されます。

ibaseも参照してください。

例:

(%i1) obase : 2;
(%o1)                          10
(%i2) 2^8 - 1;
(%o10)                      11111111
(%i3) obase : 8;
(%o3)                          10
(%i4) 8^8 - 1;
(%o4)                       77777777
(%i5) obase : 16;
(%o5)                          10
(%i6) 16^8 - 1;
(%o6)                       0FFFFFFFF
(%i7) obase : 36;
(%o7)                          10
(%i8) 36^8 - 1;
(%o8)                       0ZZZZZZZZ
オプション変数: pfeformat

デフォルト値: false

pfeformattrueの時、 整数の比は斜線(スラッシュ)文字で表示され、 整数分母nは掛け算項1/nとして先に表示されます。

(%i1) pfeformat: false$
(%i2) 2^16/7^3;
                              65536
(%o2)                         -----
                               343
(%i3) (a+b)/8;
                              b + a
(%o3)                         -----
                                8
(%i4) pfeformat: true$ 
(%i5) 2^16/7^3;
(%o5)                       65536/343
(%i6) (a+b)/8;
(%o6)                      1/8 (b + a)
オプション変数: powerdisp

デフォルト値: false

powerdisptrueの時、 べきを増やす順に項を使って和が表示されます。 例えば、 多項式は切り詰められたべき級数として表示され、 最初に定数項最後に最高次項となります。

デフォルトでは和の項はべきを減らす順に表示されます。

関数: print (expr_1, …, expr_n)

expr_1, …, expr_nを1つ1つ、左から右へ評価し、 コンソールディスプレイの左端から表示します。

printが返す値は最後の引数の値です。 printは中間式ラベルを生成しません。

display, disp, ldisplay, ldispも参照してください。 これらの関数は一行ずつ1つの式を表示しますが、 printは一行に2つ以上の式を表示しようとします。

ファイルの中身を表示するには printfileを参照してください。

例:

(%i1) r: print ("(a+b)^3 is", expand ((a+b)^3), "log (a^10/b) is",
      radcan (log (a^10/b)))$
            3        2      2      3
(a+b)^3 is b  + 3 a b  + 3 a  b + a  log (a^10/b) is 

                                              10 log(a) - log(b) 
(%i2) r;
(%o2)                  10 log(a) - log(b)
(%i3) disp ("(a+b)^3 is", expand ((a+b)^3), "log (a^10/b) is",
      radcan (log (a^10/b)))$
                           (a+b)^3 is

                     3        2      2      3
                    b  + 3 a b  + 3 a  b + a

                         log (a^10/b) is

                       10 log(a) - log(b)
オプション変数: sqrtdispflag

デフォルト値: true

sqrtdispflagfalseの時、 sqrtを指数1/2で表示するようにします。

オプション変数: stardisp

デフォルト値: false

stardisptrueの時 掛け算はオペランドの間のアスタリスク*で表示されます。

オプション変数: ttyoff

デフォルト値: false

ttyofftrueの時、 出力式は表示されません。 出力式は計算され、ラベルに割り当てられます。 labelsを参照してください。

エラーメッセージやdescribeの出力のように、組み込みMaxima関数によって出力されたテキストは ttyoffの影響を受けません。


Next: , Previous:   [Contents][Index]