Next: Data Types and Structures, Previous: Help [Contents][Index]
Next: Functions and Variables for Command Line, Previous: Command Line, Up: Command Line [Contents][Index]
Next: Functions and Variables for Display, Previous: Introduction to Command Line, Up: Command Line [Contents][Index]
__
は、現在評価中の入力式です。
すなわち、入力式 exprが評価されている間、 __
は exprです。
__
は、入力が整理されたり評価されたりする前に入力式に割り当てられます。
しかし表示される時、__
の値は(評価はされませんが)整理されます。
batch
と load
は __
を認識します。
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
, …)
_
は、入力が整理されたり評価されたりする前に、入力式に割り当てられます。
しかし、
_
の値は、表示される時(評価はされませんが)整理されます。
batch
と load
は _
を認識します。
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
, …)
出力の表示には無関係です。
batch
と load
は%
を認識します。
batch
が処理するファイル内では、
%
は対話プロンプトでのそれと同じ意味になります。
load
が処理するファイル内では、
%
は、対話プロンプトやバッチファイルの中で、直前に計算された出力式にバインドされます;
%
は、処理中のファイル内の出力式にはバインドされません。
合成文、すなわちblock
, lambda
,
もしくは(s_1, ..., s_n)
の中で、 %%
は前の文の値です。
合成文の最初の文もしくは合成文の外側では%%
は未定義です。
%%
は、batch
や load
で認識され、
対話プロンプトでのそれと同じ意味になります。
%
も参照してください。
例:
以下の二つの例は同じ結果になります。
(%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 _
i番前の出力式の値。
すなわち、計算される次の式をn番目の出力とすると
%th (m)
は、(n - m)番目の出力です。
batch
とload
は%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
も参照してください。
デフォルト値: %i
inchar
はユーザーが入力した式のラベルの前置です。
Maximaは、
inchar
とlinenum
を連結することで、
入力式それぞれのラベルを自動的に構成します。
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
はMaximaに関する情報リストすべての名前のリストです。
これらは以下の通りです:
labels
すべてのバインドされた%i
, %o
, %t
ラベル
values
:
や::
や関数バインドが生成する、
ユーザー変数であって、Maximaオプションやスイッチでない、
すべてのバインドされたアトム
functions
arrays
:
, ::
, または:=
が生成するすべての宣言配列と未宣言配列
macros
::=
が生成したすべてのユーザー定義マクロ関数
myoptions
(それらが後にデフォルト値に再設定されようがされまいが) ユーザーが再設定したすべてのオプション
rules
tellsimp
, tellsimpafter
, defmatch
,
またはdefrule
が生成するすべてのユーザー定義パターンマッチングと整理規則
aliases
alias
, ordergreat
, orderless
関数が生成するか、
declare
を使ってアトムをnoun
として宣言することで生成された、
ユーザー定義エーリアスを持つすべてのアトム
dependencies
gradefs
gradef
関数が生成するユーザー定義の導関数を持つすべての関数
props
declare
関数で確立されるプロパティはもちろん、
atvalue
やmatchdeclare
などが確立するプロパティで、
上で述べたもの以外の任意のプロパティを持つすべてのアトム
let_rule_packages
特別パッケージdefault_let_rule_package
に加えて
すべてのユーザー定義let
規則パッケージ
(default_let_rule_package
は、
ユーザーが陽に設定していない時使われる規則パッケージの名前です。)
引数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))
は
infolist(infolistはvalues
, functions
, arrays
など)
上の項目を除いてすべての項目をアンバインドします。
バインドされたプロパティによって使われたメモリは、すべてのシンボルがプロパティからアンバインドされるまで解放されません。 特に、シンボルの値によって使われているメモリを解放するには、 シンボルそのもののアンバインドだけでなく、バインドされた値を表示する出力ラベルをアンバインドします。
kill
は引数をクォートします。
引数を評価するにはクォートクォート演算子''
を使います。
kill (symbol)
はシンボルのすべてのプロパティをアンバインドします。
対照的に、関数remvalue
, remfunction
, remarray
,
remrule
は特定のプロパティをアンバインドします。
kil
は常に、たとえ引数がバインドされていなくても、done
を返します。
symbolで始まる入力、出力、中間式ラベルのリストを返します。
symbolは、inchar
, outchar
, もしくはlinechar
の値が典型的です。
ラベル文字はパーセント記号ありでもあしでもかまいませんので、
例えば、i
と%i
は同じ結果になります。
もしsymbolで始まるラベルがなければ、labels
は空のリストを返します。
関数labels
は引数をクォートします。
引数を評価するにはクォートクォート演算子''
を使います。
例えば,
labels (''inchar)
は、現在の入力ラベル文字で始まる入力ラベルを返します。
変数labels
は入力、出力、中間式ラベルのリストです。
inchar
, outchar
, もしくはlinechar
が再定義されても、以前のラベルすべてを含みます。
デフォルトで、Maximaはそれぞれのユーザー入力式の結果を表示し、結果に出力ラベルが与えられます。
入力を;
(セミコロン)の代わりに$
(ドル記号)で終了することで、出力表示は抑制されます。
出力ラベルが構成され、結果にバインドされますが、表示されません。
ラベルは表示された出力ラベルと同じ方法で参照できます。
%
や%%
, %th
も参照してください。
いくつかの関数では中間式ラベルが生成されることがあります。
フラグprogrammode
は
solve
や他の関数が式のリストを返す代わりに中間式ラベルを生成するかどうかを制御します。
ldisplay
のようないくつかの他の関数は常に中間式ラベルを生成します。
デフォルト値: %t
linechar
は
Maximaが生成する中間式のラベルの前置です。
Maximaは(もし表示されるなら)
linechar
とlinenum
を連結することで
中間式それぞれのラベルを構成します。
linechar
は単一文字である必要はなく、
任意の文字列もしくはシンボルを割り当てられます。
Maximaは内部的に
前置の最初の文字だけを考慮するので、
前置inchar
, outchar
, linechar
は異なる最初の文字を持たなければいけません。
そうでなければ kill(inlables)
のようないくつかのコマンドは期待通りに動きません。
中間式は表示されるかもしれませんし、表示されないかもしれません。
programmode
とlabels
も参照してください。
入力出力式の現在のペアの行番号。
デフォルト値: []
myoptions
はユーザーが再設定したオプションすべてのリストです。
初期値に再設定されたか否かに関わらずです。
デフォルト値: false
nolabels
はtrue
であれば、
入力と出力結果のラベル(それぞれ%i
と%o
)は表示されますが、
ラベルは結果にバインドされず、labels
リストにも追加されません。
ラベルは結果にバインドされないので、
ガーベッジコレクションは結果が使ったメモリを回復することができます。
そうでなければ、入力と出力の結果のラベルは結果にバインドされ、labels
リストに追加されます。
中間式ラベル(%t
)はnolabels
に影響されません;
nolabels
がtrue
でもfalse
でも、中間式ラベルはバインドされ、labels
リストに追加されます。
デフォルト値: false
optionset
がtrue
の時、Maximaは、Maximaオプションが再設定されるといつでも、メッセージを表示します。
もしユーザーがあるオプションの綴りが怪しく、割り当てた変数が本当にオプション変数か確認したいなら便利です。
例:
(%i1) optionset:true; assignment: assigning to option optionset (%o1) true (%i2) gamma_expand:true; assignment: assigning to option gamma_expand (%o2) true
デフォルト値: %o
outchar
はMaximaが計算した式のラベルの前置です。
outchar
とlinenum
を連結することで、
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
はラベルにバインドされた式表示するだけです;
(print
やdescribe
で表示されたテキストやエラーメッセージなど)他の出力は表示されません。
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)
は、save
やstringout
と関連して、
役立つ式を取り出すために2次記憶ファイルを生成するときに便利です。
playback (time)
はそれぞれの式の計算時間を表示します。
playback (grind)
は入力式を grind
関数と同じ形式で表示します。
出力式は grind
オプションで影響を受けません。
grind
を参照してください。
例えば、playback ([5, 10], grind, time, slow)
のように、
引数を組み合わせられます。
デフォルト値: _
prompt
は、demo
関数やplayback (slow)
モード、
(break
で呼び出された)Maximaブレイクループのプロンプトシンボルです。
Maximaセッションを終了します。
関数は、quit
ではなく、quit();
もしくはquit()$
として呼び出さなければいけないことに注意してください。
長い計算を中断するには control-C
をタイプしてください。
デフォルトの動作では Maximaプロンプトに戻ります。
もし*debugger-hook*
がnil
なら、
control-C
はLispデバッガを開きます。
debugging
も参照してください。
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)
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
は Lispリスト*variable-initial-values*
上の変数を処理します。
Lispマクロdefmvar
は(他の動作の間に)このリストに変数を置きます。
すべてではありませんが多くのグローバル変数やオプションがdefmvarによって定義されており、
また、defmvar
で定義されたいくつかの変数はグローバル変数でもオプションでもありません。
デフォルト値: false
showtime
がtrue
の時、出力式と一緒に計算時間と経過時間を表示します。
計算時間は常に記録されており、
showtime
がfalse
の時でも、
time
やplayback
で計算時間を表示することができます。
timer
も参照してください。
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
は(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) []
Previous: Functions and Variables for Command Line, Up: Command Line [Contents][Index]
デフォルト値: false
%edispflag
がtrue
の時、
Maximaは %e
の負の指数乗を商として表示します。
例えば、%e^-x
は 1/%e^x
と表示されます。
exptdispflag
も参照してください。
例:
(%i1) %e^-10; - 10 (%o1) %e (%i2) %edispflag:true$ (%i3) %e^-10; 1 (%o3) ---- 10 %e
デフォルト値: !
absboxchar
は1行より広い式の回りに絶対値記号を描くのに使われる文字です。
例:
(%i1) abs((x^3+1)); ! 3 ! (%o1) !x + 1!
display
のようですが、
等式ではなく引数の値だけが表示されます。
これは名前を持たない複雑な引数や引数の値だけに興味があって
名前には興味がない引数に役立ちます。
例:
(%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
左辺が未評価の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
デフォルト値: true
display2d
がfalse
の時、
コンソール表示は(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)
デフォルト値: false
display_format_internal
がtrue
の時、
式は数学的内部表現を隠すように変換されることなく表示されます。
表示は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
exprをパーツ毎に一行ずつ使って表示します。
すなわち、最初にexprの演算子が表示され、
それぞれの項が別々に表示されます。
もしexprが他の方法で表示するには大きすぎるなら、
これは役に立ちます。
例えば、もしP1
, P2
, ...が非常に大きな式なら、
P1 + P2 + ...
を一度に表示しようとする場合、
表示プログラムは保存の空き領域を使い尽くすかもしれません。
しかしながら、
dispterms (P1 + P2 + ...)
は、
P1
を表示し、その下にP2
を表示し、という具合です。
dispterms
を使わない時、
もし指数式がA^B
のように表示するには広すぎるなら、
それはexpt (A, B)
(もしくはA^^B
の場合、ncexpt (A, B)
)のように現れます。
もし指数式がa^b
のように表示するには広すぎるなら、
expt (a, b)
(もしくは、a^^b
の場合、ncexpt (a, b)
のように現れます。
expt
やncexpt
は入力では認識されません。
デフォルト値: true
exptdispflag
がtrue
の時、
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
は
コンソールにMaximaへの入力に適した形でexprを印刷します。
grind
はいつもdone
を返します。
exprが関数名やマクロ名の時、
grind
は、名前だけでなく関数やマクロ定義を出力します。
string
も参照してください。
それは出力を印刷する代わりに文字列を返します。
grind
は
string
の出力より若干読みやすい方法で
式を印刷しようとします。
変数grind
がtrue
の時、
string
やstringout
の出力は
grind
のそれと同じフォーマットです;
そうでなければ、それらの関数の出力を特別にフォーマットしようとはしません。
変数grind
のデフォルト値はfalse
です。
grind
は playback
の引数としても指定できます。
grind
が存在する時、
playback
は grind
関数と同じフォーマットで入力式を印刷します。
そうでなければ、入力式を特にフォーマットしようとはしません。
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)
デフォルト値: 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
式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
式expr_1, ..., expr_nをコンソールに印刷出力として表示します。
式それぞれは、
lhs
がldisplay
の引数の1つで、rhs
がその値の、
形式lhs = rhs
の等式として表示されます。
典型的には引数それぞれは変数です。
ldisp
は式それぞれに中間式ラベルを割り当て、ラベルのリストを返します。
例:
(%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
デフォルト値: 79
linel
はコンソールディスプレイの仮定された(文字単位の)幅です。
linel
はユーザーによって任意の値に割り当てられます。
非常に小さい値や非常に大きな値は実用的ではありませんが。
エラーメッセージやdescribe
の出力のように、
Maximaの組み込み関数が表示するテキストはlinel
の影響を受けません。
デフォルト値: false
lispdisp
がtrue
の時、
Lispシンボルはクエスチョンマーク?
を先頭文字として表示されます。
そうでなければ、Lispシンボルは先頭文字を持ちません。
例:
(%i1) lispdisp: false$ (%i2) ?foo + ?bar; (%o2) foo + bar (%i3) lispdisp: true$ (%i4) ?foo + ?bar; (%o4) ?foo + ?bar
デフォルト値: true
negsumdispflag
がtrue
の時、
x - y
は - y + x
でなくx - y
と表示されます。
false
に設定すると、
2つの式の違いに関する表示での特殊なチェックがされないようになります。
1つの応用は、例えば、a + %i*b
とa - %i*b
を同じ表示にすることです。
デフォルト値: 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
デフォルト値: false
pfeformat
がtrue
の時、
整数の比は斜線(スラッシュ)文字で表示され、
整数分母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)
デフォルト値: false
powerdisp
がtrue
の時、
べきを増やす順に項を使って和が表示されます。
例えば、
多項式は切り詰められたべき級数として表示され、
最初に定数項最後に最高次項となります。
デフォルトでは和の項はべきを減らす順に表示されます。
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)
デフォルト値: true
sqrtdispflag
がfalse
の時、
sqrt
を指数1/2で表示するようにします。
デフォルト値: false
stardisp
がtrue
の時
掛け算はオペランドの間のアスタリスク*
で表示されます。
デフォルト値: false
ttyoff
がtrue
の時、
出力式は表示されません。
出力式は計算され、ラベルに割り当てられます。
labels
を参照してください。
エラーメッセージやdescribe
の出力のように、組み込みMaxima関数によって出力されたテキストは ttyoff
の影響を受けません。
Next: Data Types and Structures, Previous: Help [Contents][Index]