| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| 11.1 Introduction to Maximas Database | ||
| 11.2 Functions and Variables for Properties | ||
| 11.3 Functions and Variables for Facts | ||
| 11.4 Functions and Variables for Predicates |
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
alphabeticはdeclareが認識するプロパティタイプです。
式 declare(s, alphabetic)は
sの中の文字すべてをアルファベット文字として認識するように
Maximaに命じます。
sは文字列でなければいけません。
Identifiersも参照してください。
例:
(%i1) xx\~yy\`\@ : 1729;
(%o1) 1729
(%i2) declare ("~`@", alphabetic);
(%o2) done
(%i3) xx~yy`@ + @yy`xx + `xx@@yy~;
(%o3) `xx@@yy~ + @yy`xx + 1729
(%i4) listofvars (%);
(%o4) [@yy`xx, `xx@@yy~]
Categories: Declarations and inferences
コマンド declare(x, bindtest)は
xがバインドされずに評価された時、
Maximaにエラーを起こすように命じます。
(%i1) aa + bb; (%o1) bb + aa (%i2) declare (aa, bindtest); (%o2) done (%i3) aa + bb; aa unbound variable -- an error. Quitting. To debug this try debugmode(true); (%i4) aa : 1234; (%o4) 1234 (%i5) aa + bb; (%o5) bb + 1234
declare(a, constant)は
aが定数であるように宣言します。
シンボルが定数であるという宣言は定数でない値をシンボルに割り当てることを
妨げません。
例:
(%i1) declare(c, constant); (%o1) done (%i2) constantp(c); (%o2) true (%i3) c : x; (%o3) x (%i4) constantp(c); (%o4) false
Categories: Declarations and inferences · Constants
もし exprが定数式なら trueを返します。
そうでないなら falseを返します。
もし引数が、(/R/をつけて表示される有理数を含む)数や
%pi, %e, %iにようなシンボル定数、定数にバインドされた変数、
declareで宣言された定数、引数が定数の関数のいずれかなら、
式を定数式とみなします。
constantpは引数を評価します。
例:
(%i1) constantp (7 * sin(2)); (%o1) true (%i2) constantp (rat (17/29)); (%o2) true (%i3) constantp (%pi * sin(%e)); (%o3) true (%i4) constantp (exp (x)); (%o4) false (%i5) declare (x, constant); (%o5) done (%i6) constantp (exp (x)); (%o6) true (%i7) constantp (foo (x) + bar (%e) + baz (2)); (%o7) false (%i8)
Categories: Predicate functions · Constants
アトムやアトムのリスト a_iにプロパティやプロパティのリスト p_iを割り当てます。 a_iや p_iがリストの時、プロパティすべてをアトムのそれぞれが得ます。
declareは引数をクォートします。
declareはいつも doneを返します。
それぞれの宣言フラグに関する記述で注意しているように、
いくつかのフラグに関して、
もし objectが featureを持つよう宣言されているなら、
featurep(object, feature)は trueを返します。
フィーチャーシステムについてさらに知るには features.を参照してください。
アトムからプロパティを削除するには remove.を使ってください。
declareは以下のプロパティを認識します:
additive代入 a_i(x + y + z + ...) -->
a_i(x) + a_i(y) + a_i(z) + ...
によって、 a_i式を整理するように Maximaに命じます。
代入は1番目の引数のみで実行されます。
alphabetica_iの中の文字すべてをアルファベット文字として認識するように Maximaに命じます。(a_iは文字列でなければいけません。)
antisymmetric, commutative, symmetrica_iを対称もしくは反対称関数として認識するように Maximaに命じます。
commutativeは symmetricと同じです。
bindtesta_iがバインドされずに評価された時、 Maximaにエラーを起こすように命じます。
constanta_iをシンボル定数とみなすように Maximaに命じます。
even, odda_iを偶数か奇数の整数変数として認識するように Maximaに命じます。
oddfun, evenfuna_iを偶関数もしくは奇関数として認識するように Maximaに命じます。
evflagevのフラグ引数として a_iが現れた時、
evの実行中 a_iを trueにバインドするように
evに命じます。
evflagを参照してください。
evfunevのフラグ引数として a_iが現れた時、
a_iと名付けられた関数を適用するように
evに命じます。
evfunを参照してください。
featurea_iをフィーチャー名として認識するように Maximaに命じます。 すると他のアトムを a_iプロパティを持つように定義できるようになります。
increasing, decreasinga_iを単調増加関数か単調減少関数として認識するように Maximaに命じます。
integer, nonintegera_iを整数変数か非整数変数として認識するように Maximaに命じます。
integervalueda_iを整数値を返す関数として認識するように Maximaに命じます。
lassociative, rassociativea_iを右結合か左結合関数として認識するように Maximaに命じます。
lineara_iを outativeかつ additiveに宣言することと同値です。
mainvara_iを「主変数」とみなすように Maximaに命じます。
ordergreatpで決定されるように、
Maximaの式の標準順序では主変数は他のすべての定数や変数に続きます。
multiplicative代入 a_i(x * y * z * ...) -->
a_i(x) * a_i(y) * a_i(z) * ...
によって、 a_i式を整理するように Maximaに命じます。
代入は1番目の引数のみで実行されます。
narya_iを n項関数として認識するように Maximaに命じます。
nary宣言は nary関数をコールするのとは同じではありません。
declare(foo, nary)だけの効果は、
Maxima整理器をネストされた式を平坦にするように指示することです。
例えば foo(x, foo(y, z))を foo(x, y, z)に整理します。
nonarraya_iを配列でないものとみなすように Maximaに命じます。 この宣言は添字付き変数名の多重評価を抑制します。
nonscalara_iを非スカラー変数とみなすように Maximaに命じます。 普通の使い方は変数をシンボルベクトルや行列として宣言することです。
nouna_iを名詞としてパースするように Maximaに命じます。
この効果は a_iのインスタンスを 'a_iや
nounify(a_i)で置き換えることです。
どちらに置き換えるかは文脈に依存します。
outativea_i式を最初の引数から定数因子を引き出すことで整理するように Maximaに命じます。
a_iが1つ引数を持つ時、 もしリテラル定数や宣言定数なら因子は定数とみなされます。
a_iが2つ以上の引数を持つ時、 もし2番目の引数がシンボルで、因子が2番目の引数の制約を受けないなら、 因子は定数とみなされます。
posfuna_iを正関数として認識するように Maximaに命じます。
rational, irrationala_iを有理変数か非有理実変数として認識するように Maximaに命じます。
real, imaginary, complexa_iを実変数か純虚数変数、複素変数として認識するように Maximaに命じます。
scalara_iをスカラー変数とみなすように Maximaに命じます。
プロパティの使い方の例はドキュメントの中のプロパティの個別の記述それぞれで入手可能です。
Categories: Declarations and inferences
コマンド declare(f, decreasing)や
declare(f, increasing)は
fを減少関数や増加関数として認識するように
Maximaに命じます。
他のプロパティに関しては declareも参照してください。
例:
(%i1) assume(a > b); (%o1) [a > b] (%i2) is(f(a) > f(b)); (%o2) unknown (%i3) declare(f, increasing); (%o3) done (%i4) is(f(a) > f(b)); (%o4) true
Categories: Declarations and inferences
declare(a, even)や declare(a, odd)は
シンボル aを偶数や奇数の整数変数としてみなすように
Maximaに命じます。
関数 evenpや, oddp, integerpは
プロパティ evenと oddはを認識しません。
declareと askintegerも参照してください。
例:
(%i1) declare(n, even); (%o1) done (%i2) askinteger(n, even); (%o2) yes (%i3) askinteger(n); (%o3) yes (%i4) evenp(n); (%o4) false
Categories: Declarations and inferences
Maximaは、システムフィーチャと数学式に適用されるフィーチャの、
2つの異なるタイプのフィーチャを理解します。
システムフィーチャについての情報に関しては statusも参照してください。
数学的フィーチャについての情報に関しては
featuresと featurepも参照してください。
featureそれ自身は関数名でも変数名でもありません。
現在のデータベースの中の事実に基づいてオブジェクト aがフィーチャ
fを持つかどうかを決定しようとします。
もしそうなら trueを返し、そうでないなら falseを返します。
featurepは fも fの否定も確立できない時は、
falseを返すことに注意してください。
featurepは引数を評価します。
declareと featuresも参照してください。
(%i1) declare (j, even)$ (%i2) featurep (j, integer); (%o2) true
Categories: Predicate functions · Declarations and inferences
Maximaは関数や変数のある数学的プロパティを認識します。 それらは「フィーチャー」と呼ばれます。
declare (x, foo)は
プロパティ fooを関数もしくは変数 xに与えます。
declare (foo, feature)は
新しいフィーチャー fooを宣言します。
例えば、
declare ([red, green, blue], feature)は、
3つの新しいフィーチャー red, green, blueを宣言します。
もし xが fooプロパティを持つなら、
述語論理 featurep (x, foo)は trueを返し、
そうでなければ、falseを返します。
インフォリスト featuresは既知のフィーチャーのリストです。
それらは、
integer noninteger even odd rational irrational real imaginary complex analytic increasing decreasing oddfun evenfun posfun constant commutative lassociative rassociative symmetric antisymmetric integervalued
に任意のユーザー定義フィーチャーを加えたものです。
featuresは数学的フィーチャーのリストです。
非数学的でシステム依存のフィーチャーのリストもあります。
statusを参照してください。
例:
(%i1) declare (FOO, feature); (%o1) done (%i2) declare (x, FOO); (%o2) done (%i3) featurep (x, FOO); (%o3) true
Categories: Declarations and inferences
iが示すアトム aのユーザープロパティを検索し、
もし aがプロパティ iを持たないなら falseを返します。
getは引数を評価します。
(%i1) put (%e, 'transcendental, 'type);
(%o1) transcendental
(%i2) put (%pi, 'transcendental, 'type)$
(%i3) put (%i, 'algebraic, 'type)$
(%i4) typeof (expr) := block ([q],
if numberp (expr)
then return ('algebraic),
if not atom (expr)
then return (maplist ('typeof, expr)),
q: get (expr, 'type),
if q=false
then errcatch (error(expr,"is not numeric.")) else q)$
(%i5) typeof (2*%e + x*%pi);
x is not numeric.
(%o5) [[transcendental, []], [algebraic, transcendental]]
(%i6) typeof (2*%e + %pi);
(%o6) [transcendental, [algebraic, transcendental]]
Categories: Declarations and inferences
declare(a, integer)や declare(a, noninteger)は
aを整数変数か非整数変数として認識するように Maximaに命じます。
declareも参照してください。
例:
(%i1) declare(n, integer, x, noninteger); (%o1) done (%i2) askinteger(n); (%o2) yes (%i3) askinteger(x); (%o3) no
Categories: Declarations and inferences
declare(f, integervalued)は
fを整数値関数として認識するように Maximaに命じます。
declareも参照してください。
例:
(%i1) exp(%i)^f(x);
%i f(x)
(%o1) (%e )
(%i2) declare(f, integervalued);
(%o2) done
(%i3) exp(%i)^f(x);
%i f(x)
(%o3) %e
Categories: Declarations and inferences
コマンドdeclare(a, nonarray)はMaximaに
aが配列でないものと考えるように命じます。
もし aが添字付き変数ならこの宣言は多重評価を抑制します。
例:
(%i1) a:'b$ b:'c$ c:'d$
(%i4) a[x];
(%o4) d
x
(%i5) declare(a, nonarray);
(%o5) done
(%i6) a[x];
(%o6) a
x
Categories: Expressions
アトムをドット演算子に関してリストか行列のように振る舞うようにします。
declareも参照してください。
Categories: Declarations and inferences · Vectors · Matrices
もし exprが非スカラー、すなわち、
非スカラーとして宣言されたアトムかリスト、行列を含むなら、
trueを返します。
Categories: Predicate functions · Vectors · Matrices
declare (f, posfun)は
fを正の関数と宣言します。
is (f(x) > 0)は trueを出力します。
declareも参照してください。
Categories: Declarations and inferences · Operators
アトム aに関連付けられた指標 iの属性を表示します。
aはアトムのリストだったり、アトム allだったりします。
aの場合、与えられたプロパティを持つすべてのアトムに適用します。
例えば、 printprops ([f, g], atvalue)。
printpropsは表示できないプロパティ、
すなわち atvalue, atomgrad, gradef,
matchdeclareのためのものです。
Categories: Declarations and inferences · Display functions
アトム aに関連づけられたプロパティすべての名前のリストを返します。
Categories: Declarations and inferences
propsは、declare関数で指定されたプロパティはもちろん、
atvalue, matchdeclare, などが指定したような、
infolistsで明示的に言及されたもの以外の任意のプロパティを持つアトムです。
Categories: Declarations and inferences · Global variables
propsリスト上の propが示すプロパティを持つアトムのリストを返します。
従って、 propvars (atvalue)は
atvalueを持つアトムのリストを返します。
Categories: Declarations and inferences
valueを atomの (indicatorが指定する)プロパティに割り当てます。 indicatorは任意のプロパティの名前を取り得ますが、 システム定義のプロパティは取りません。
remは putの効果をひっくり返します。
putは引数を評価します。
putは valueを返します。
例:
(%i1) put (foo, (a+b)^5, expr);
5
(%o1) (b + a)
(%i2) put (foo, "Hello", str);
(%o2) Hello
(%i3) properties (foo);
(%o3) [[user properties, str, expr]]
(%i4) get (foo, expr);
5
(%o4) (b + a)
(%i5) get (foo, str);
(%o5) Hello
Categories: Declarations and inferences
valueを atomの (indicatorが指定する)プロパティに割り当てます。
引数がクォートされることを除いて、これは putと同じです。
例:
(%i1) foo: aa$
(%i2) bar: bb$
(%i3) baz: cc$
(%i4) put (foo, bar, baz);
(%o4) bb
(%i5) properties (aa);
(%o5) [[user properties, cc]]
(%i6) get (aa, cc);
(%o6) bb
(%i7) qput (foo, bar, baz);
(%o7) bar
(%i8) properties (foo);
(%o8) [value, [user properties, baz]]
(%i9) get ('foo, 'baz);
(%o9) bar
Categories: Declarations and inferences
declare(a, rational)や declare(a, irrational)は
aを有理実変数か非有理実変数として認識するように
Maximaに命じます。
declareも参照してください。
Categories: Declarations and inferences
declare(a, real)や, declare(a, imaginary),
declare(a, complex)は
aを実変数、純虚数変数、複素変数として認識するように
Maximaに命じます。
declareも参照してください。
Categories: Declarations and inferences
atomから indicatorが示すプロパティを取り除きます。
remは putの効果をひっくり返します。
remが呼び出された時、もし atomが
indicatorプロパティを持っていたなら、
remは doneを返します。
もしそんなプロパティを持っていなかったら falseを返します。
Categories: Declarations and inferences
アトムに関連づけられたプロパティを取り除きます。
remove (a_1, p_1, ..., a_n, p_n)はアトム
a_kからプロパティ p_kを取り除きます。
remove ([a_1, ..., a_m], [p_1, ..., p_n],
...)はアトム a_1, …, a_mからプロパティ
p_1, ..., p_nを取り除きます。
リストのペアは複数を取り得ます。
remove (all, p)はプロパティ
pを、それを持つアトムすべてから取り除きます。
取り除かれるプロパティは、 function, macro,
mode_declareのようなシステム定義のプロパティかもしれません。
removeは putで定義されたプロパティを取り除きません。
翻訳された Lispバージョンの関数を取り除くために
プロパティは transfunを取ることができます。
これを実行した後は、翻訳バージョンでなく Maximaバージョンの関数が実行されます。
remove ("a", operator)または、同値の
remove ("a", op)は、aから
prefix, infix, nary, postfix, matchfix,
nofixが宣言した演算子プロパティを取り除きます。
演算子名はクォートされた文字列として書かれなければいけないことに注意してください。
アトムが指定されたプロパティを持つ持たないに関わらず、
removeはいつも doneを返します。
この振る舞いは、もっと具体的な削除関数remvalue, remarray,
remfunction, remruleと違っています。
removeは引数をクォートします。
Categories: Declarations and inferences
declare(a, scalar)は
aをスカラ変数とみなすように
Maximaに命じます。
declareも参照してください。
Categories: Declarations and inferences
もし exprが数か、定数、 declareで scalarと宣言された変数、
または、数と定数とそんな変数から完全に構成され、行列やリストを含まない変数なら、
trueを返します。
Categories: Predicate functions · Vectors · Matrices
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
文脈 context_1, …, context_nをアクティベートします。
これらの文脈に関する事実は、演繹し情報を検索するために利用可能となります。
これらの文脈に関する事実は facts ()によってリストされません。
変数 activecontextsは、
activate関数を使ってアクティブになった文脈のリストです。
Categories: Declarations and inferences
デフォルト値: []
変数activecontextsは、
現在の文脈の部分文脈なのでアクティブである文脈と対照的に、
activate関数を使ってアクティブになった文脈のリストです。
Categories: Declarations and inferences
askinteger (expr, integer)は
assumeデータベースから exprが整数かどうかを決定しようとします。
もしそうでなく決定できなければ、 askintegerはユーザーに入力を促し、
可能ならばデータベースに情報をインストールしようとします。
askinteger (expr)は
askinteger (expr, integer)と同値です。
同様に、
askinteger (expr, even)や askinteger (expr, odd)は
それぞれ、exprが偶数か奇数か決定しようとします。
Categories: Declarations and inferences
最初に、指定された式が正か負かゼロか決定しようとします。
できなければ、演繹を完了するのに必要な質問をユーザーに尋ねます。
ユーザーの答えは、現在の計算の演繹のため、データベースに記録されます。
asksignの戻り値は
posか neg, zeroのいずれか1つです。
Categories: Declarations and inferences
述語論理 pred_1, …, pred_nを現在の文脈に追加します。
もし述語論理が現在の文脈と矛盾していたり冗長だったりしたなら、文脈に追加されません。
文脈は assumeがコールされる毎に述語論理を累積していきます。
assumeは、文脈に追加された述語論理か、
当該のアトム redundantもしくは inconsistentを
を要素に持つリストを返します。
述語論理 pred_1, …, pred_nは
関係演算子 < <= equal notequal >= >を持つ式のみ許されます。
述語論理はリテラル等号 =やリテラル不等号 #の式は使えません。
integerpのような述語関数も使えません。
形式 pred_1 and ...and pred_nの合成された述語論理は認識されます。
しかし pred_1 or ... or pred_nは認識されません。
もし pred_kが関係述語論理なら not pred_kは認識されます。
形式 not (pred_1 and pred_2)の式や
not (pred_1 or pred_2)は認識されません。
Maximaの推論メカニズムはそれほど強くありません;
isによって決定されない多くの明らかな結果があります。
これは既知の弱みです。
assumeは複素数を伴う述語論理を扱いません。
もし述語論理が複素数を含むなら
assumeは inconsistentか redundantを返します。
assumeは引数を評価します。
isや facts, forget, context,
declareも参照してください。
例:
(%i1) assume (xx > 0, yy < -1, zz >= 0); (%o1) [xx > 0, yy < - 1, zz >= 0] (%i2) assume (aa < bb and bb < cc); (%o2) [bb > aa, cc > bb] (%i3) facts (); (%o3) [xx > 0, - 1 > yy, zz >= 0, bb > aa, cc > bb] (%i4) is (xx > yy); (%o4) true (%i5) is (yy < -yy); (%o5) true (%i6) is (sinh (bb - aa) > 0); (%o6) true (%i7) forget (bb > aa); (%o7) [bb > aa] (%i8) prederror : false; (%o8) false (%i9) is (sinh (bb - aa) > 0); (%o9) unknown (%i10) is (bb^2 < cc^2); (%o10) unknown
Categories: Declarations and inferences
デフォルト値: true
assumescalarは、
nonscalarp (expr)が falseであるような式 exprが
ある変換に対してスカラーのように振る舞うと仮定されるかどうかを決めるのを助けます。
exprがリストや行列以外の任意の式を表してるとし
[1, 2, 3]が任意のリストや行列を表しているとすると、
もし assumescalarが trueか
scalarp (expr)が trueか
constantp (expr)が trueなら、
expr . [1, 2, 3]は [expr, 2 expr, 3 expr]をもたらします。
もし assumescalarが trueなら、
そんな式は可換演算子に対してだけスカラーのように振る舞いますが、
非可換乗算 .に対してはそうは振る舞いません。
assumescalarが falseの時
そんな式は非スカラーのように振る舞います。
assumescalarが allの時、
そんな式は上でリストされた演算子すべてに対してスカラーのように振る舞います。
Categories: Declarations and inferences
デフォルト値: false
assume_posが trueで
パラメータ xの符号が現在の文脈や他の考慮から決定できない時、
signや asksign (x)は trueを返します。
これによって、
integrateや他の計算から起こるような
自動生成される asksign問い合わせを事前に防ぐことができます。
デフォルトでは、パラメータは symbolp (x)か
subvarp (x)のような xです。
パラメータとして考えられる式のクラスは、
変数 assume_pos_predを介してある程度変えることができます。
signと asksignは、
式の中のオペランドの符号から式の符号を演繹しようとします。
例えば、もしaや bがともに正なら
a + bも正です。
しかしながら、asksign問い合わせすべてを迂回する方法はありません。
特に asksign引数が差 x - yか
対数 log(x)の時、
たとえ assume_posが trueで assume_pos_predが
引数すべてに trueを返す関数であっても、
asksignはいつもユーザーからの入力を要請します。
Categories: Declarations and inferences
デフォルト値: false
assume_pos_predが関数名や引数 xのラムダ式に割り当てられている時、
xが assume_posのためのパラメータと考えられるかどうかを決定するために
その関数がコールされます。
assume_posが falseの時、
assume_pos_predは無視されます。
signと asksignが、
アトムか添字付き変数、関数コール式のいずれかの引数 xで
assume_pos_pred関数をコールします。
もし assume_pos_pred関数が trueを返すなら、
xは assume_posのためのパラメータと考えられます。
デフォルトでは、パラメータは symbolp (x)か
subvarp (x)のような xです。
assumeと assume_posも参照してください。
例:
(%i1) assume_pos: true$
(%i2) assume_pos_pred: symbolp$
(%i3) sign (a);
(%o3) pos
(%i4) sign (a[1]);
(%o4) pnz
(%i5) assume_pos_pred: lambda ([x], display (x), true)$
(%i6) asksign (a);
x = a
(%o6) pos
(%i7) asksign (a[1]);
x = a
1
(%o7) pos
(%i8) asksign (foo (a));
x = foo(a)
(%o8) pos
(%i9) asksign (foo (a) + bar (b));
x = foo(a)
x = bar(b)
(%o9) pos
(%i10) asksign (log (a));
x = a
Is a - 1 positive, negative, or zero?
p;
(%o10) pos
(%i11) asksign (a - b);
x = a
x = b
x = a
x = b
Is b - a positive, negative, or zero?
p;
(%o11) neg
Categories: Declarations and inferences
デフォルト値: initial
contextは assumeと
forgetによって保守される事実の集まりの名前です。
assumeは contextと名付けられた集まりに事実を追加する一方、
forgetは事実を取り除きます。
contextを名前 fooにバインドすると
現在の文脈は fooに変わります。
もし指定された文脈 fooがまだ存在しないなら、
自動的に newcontextがコールされて生成されます。
指定された文脈は自動的にアクティベートされます。
文脈メカニズムの一般的な記述に関しては contextsを参照してください。
Categories: Declarations and inferences
デフォルト値: [initial, global]
contextsは現在存在する文脈のリストです。現在アクティブな文脈を含んでいます。
文脈メカニズムによって ユーザーが文脈と呼ばれる事実の集まりにバインドし、名付けることが可能になります。 一旦名付けると、 ユーザーは文脈を単にアクティベートしたりデアクティベートすることで たくさんの数の事実をMaximaに仮定させたり忘れさせたりできます。
任意のシンボルのアトムが文脈となることができ、
その文脈の中に含まれた事実は、
forgetをコールすることで1つ1つ破壊されるまで、
あるいは、それらが属する文脈を破壊するためにkillをコールすることで
全体として破壊されるまで、記憶装置に保持されます。
文脈は階層的に存在します。
その根はいつも文脈 globalであり、
文脈 globalはいくつかの関数が必要とするMaximaについての情報を含みます。
アクティブな文脈の部分文脈である任意の文脈の中の事実すべてそうであるように、
与えられた文脈の中では
その文脈の中の事実すべては「アクティブ」(それらが演繹や探索に使われるという意味)です。
Maximaが新たに起動された時、
ユーザーは initialと呼ばれる文脈の中にいます。
それは部分文脈として globalを持ちます。
facts, newcontext, supcontext, killcontext,
activate, deactivate, assume,
forgetも参照してください。
Categories: Declarations and inferences
特定の文脈 context_1, …, context_nをデアクティベートします。
Categories: Declarations and inferences
もし itemが文脈の名前なら
facts (item)は指定された文脈の factsのリストを返します。
もし itemが文脈の名前でないなら、
facts (item)は現在の文脈の中で
itemについて知っている factsのリストを返します。
異なる文脈中のアクティブな factsはリストされません。
facts ()(すなわち引数なし)は現在の文脈をリストします。
Categories: Declarations and inferences
assumeで規定された述語論理を取り除きます。
述語論理は以前に規定されたものと同値の(必ずしも同一である必要はない)式です。
forget (L)
(Lは述語論理のリスト)はリスト上のそれぞれの項目を忘れます。
Categories: Declarations and inferences
assumeデータベースの中の事実から述語論理
exprが確かか否かを決定しようとします。
もし述語論理が確かに trueか falseなら、
isはそれぞれ trueか falseを返します。
そうでないなら戻り値はグローバルフラグ prederrorに依存します。
prederrorが trueの時
isはエラーメッセージを出力します。
そうでないなら isは unknownを出力します。
ev(expr, pred)
(対話プロンプトでは expr, predと書けます)は
is(expr)と同値です。
assume, facts, maybeも参照してください。
例:
isは述語論理の評価を引き起こします。
(%i1) %pi > %e; (%o1) %pi > %e (%i2) is (%pi > %e); (%o2) true
isは assumeデータベースから述語論理を演繹しようとします。
(%i1) assume (a > b); (%o1) [a > b] (%i2) assume (b > c); (%o2) [b > c] (%i3) is (a < b); (%o3) false (%i4) is (a > c); (%o4) true (%i5) is (equal (a, c)); (%o5) false
もし isが assumeデータベースから述語論理を証明もしくは否定できなかったら
グローバルフラグ prederrorが isの振る舞いを決めます。
(%i1) assume (a > b); (%o1) [a > b] (%i2) prederror: true$ (%i3) is (a > 0); Maxima was unable to evaluate the predicate: a > 0 -- an error. Quitting. To debug this try debugmode(true); (%i4) prederror: false$ (%i5) is (a > 0); (%o5) unknown
Categories: Predicate functions · Declarations and inferences
文脈 context_1, …, context_nを消します。
もし文脈の1つが現在の文脈なら
新しい文脈は消されなかった現在の文脈の最初の利用可能な部分文脈になるでしょう。
もし最初の利用可能な消されなかった文脈が globalなら、
initialが代わりに使われます。
もし initial文脈が消されたら
新しい空のinitial文脈が生成されます。
現在の文脈の部分文脈であるためか
関数 activateの使用による理由で現在アクティブになっている文脈を消すことを
killcontextは拒否します。
killcontextは引数を評価します。
killcontextは doneを返します。
Categories: Declarations and inferences
述語論理exprが assumeデータベースの事実から正しいかどうかを
決定しようとします。
もし述語論理が確かに trueか falseなら、
maybeはそれぞれ trueか falseを返します。
そうでないなら maybeは unknownを返します。
maybeは prederror: falseでの isと関数的に同値です。
しかし prederrorに値を実際に割り当てることなく結果が計算されます。
例:
(%i1) maybe (x > 0); (%o1) unknown (%i2) assume (x > 1); (%o2) [x > 1] (%i3) maybe (x > 0); (%o3) true
Categories: Predicate functions · Declarations and inferences
nameと呼ばれる新しい空の文脈を生成します。
nameは唯一の部分文脈として globalを持ちます。
新しく生成された文脈は現在アクティブな文脈になります。
もし nameが指定されないなら、(gensymを使って)新しい名前を生成して返します。
newcontextは引数を評価します。
newcontextは (もし指定されたら) nameを、そうでなければ新しい文脈名を返します。
Categories: Declarations and inferences
現在のデータベースの事実に基づいて exprの符号を決定しようとします。
以下の答えの1つを返します;
pos (positive)か, neg (negative), zero, pz
(正もしくはゼロ), nz (負もしくはゼロ), pn (正もしくは負),
pnz (正、負もしくはゼロ、すなわちなにもわからない).
Categories: Declarations and inferences
nameと呼ばれる新しい文脈を生成します。 nameは部分文脈として contextを持ちます。 contextは存在しなければいけません。
もし contextが指定されないなら現在の文脈が仮定されます。
もし nameが指定されないなら、(gensymを使って)新しい名前を生成して返します。
supcontextは引数を評価します。
supcontextは (もし指定されたら) nameを、そうでなければ新しい文脈名を返します。
Categories: Declarations and inferences
| [ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
述語論理 pが falseに評価される時 0を返します;
述語論理 pが trueに評価される時 1を返します。
述語論理が trueも falseでもない何かに評価される時(unknown)
名詞形を返します。
例:
(%i1) charfun (x < 1);
(%o1) charfun(x < 1)
(%i2) subst (x = -1, %);
(%o2) 1
(%i3) e : charfun ('"and" (-1 < x, x < 1))$
(%i4) [subst (x = -1, e), subst (x = 0, e), subst (x = 1, e)];
(%o4) [0, 1, 0]
Categories: Mathematical functions
is (x op y)が
trueに評価されるような比較演算子 op
(<, <=, >, >=, =, #)を返します;
xか yが %iに依存し、かつ x # の時、
ynotcomparableを返します;
該当する演算子がなかったり Maximaが演算子を決定できなかった時には
unknownを返します。
例:
(%i1) compare (1, 2); (%o1) < (%i2) compare (1, x); (%o2) unknown (%i3) compare (%i, %i); (%o3) = (%i4) compare (%i, %i + 1); (%o4) notcomparable (%i5) compare (1/x, 0); (%o5) # (%i6) compare (x, abs(x)); (%o6) <=
関数 compareは引数の実領域が空でないか決定しようとはしません; 従って、
(%i1) compare (acos (x^2 + 1), acos (x^2 + 1) + 1); (%o1) <
acos (x^2 + 1)の実領域は空です。
Categories: Declarations and inferences
同値、すなわち同じ値であることを表します。
equalはそれ自身で評価も整理もされません。
関数 isは equalをブーリアン値に評価しようとします。
もし aと bが
ratisimp(a - b)を評価することで決定されるように変数の可能な値すべてで等しいときだけ
is(equal(a, b)は trueを返します;
もし ratsimpが0を返したら2つの式は同値と考えられます。
2つの式は構文法的に等しくなくても(すなわち同一でなくても)同値でありえます。
isが equalを trueか falseへの換算に失敗した時、
結果はグローバルフラグ prederrorに依存します。
prederrorが trueの時 isはエラーメッセージを出力します。
そうでないなら isは unknownを返します。
isに加えていくつかの他の演算子、すなわち if, and, or,
notは equalと notequalを
trueか falseに評価します。
equalの否定は notequalです。
例:
equalはそれ自身で評価も整理もされません。
(%i1) equal (x^2 - 1, (x + 1) * (x - 1));
2
(%o1) equal(x - 1, (x - 1) (x + 1))
(%i2) equal (x, x + 1);
(%o2) equal(x, x + 1)
(%i3) equal (x, y);
(%o3) equal(x, y)
関数isは equalをブーリアン値に評価しようとします。
is(equal(a, b)は
ratisimp(a - b)が0を返すとき
trueを返します。
2つの式は構文法的に等しくなくても(すなわち同一でなくても)同値でありえます。
(%i1) ratsimp (x^2 - 1 - (x + 1) * (x - 1)); (%o1) 0 (%i2) is (equal (x^2 - 1, (x + 1) * (x - 1))); (%o2) true (%i3) is (x^2 - 1 = (x + 1) * (x - 1)); (%o3) false (%i4) ratsimp (x - (x + 1)); (%o4) - 1 (%i5) is (equal (x, x + 1)); (%o5) false (%i6) is (x = x + 1); (%o6) false (%i7) ratsimp (x - y); (%o7) x - y (%i8) is (equal (x, y)); (%o8) unknown (%i9) is (x = y); (%o9) false
isが equalを trueか falseへの換算に失敗したとき、
結果はグローバルフラグ prederrorに依存します。
(%i1) [aa : x^2 + 2*x + 1, bb : x^2 - 2*x - 1];
2 2
(%o1) [x + 2 x + 1, x - 2 x - 1]
(%i2) ratsimp (aa - bb);
(%o2) 4 x + 2
(%i3) prederror : true;
(%o3) true
(%i4) is (equal (aa, bb));
Maxima was unable to evaluate the predicate:
2 2
equal(x + 2 x + 1, x - 2 x - 1)
-- an error. Quitting. To debug this try debugmode(true);
(%i5) prederror : false;
(%o5) false
(%i6) is (equal (aa, bb));
(%o6) unknown
いくつかの演算子が equalや notequalを
trueか falseに評価します。
(%i1) if equal (y, y - 1) then FOO else BAR;
(%o1) BAR
(%i2) eq_1 : equal (x, x + 1);
(%o2) equal(x, x + 1)
(%i3) eq_2 : equal (y^2 + 2*y + 1, (y + 1)^2);
2 2
(%o3) equal(y + 2 y + 1, (y + 1) )
(%i4) [eq_1 and eq_2, eq_1 or eq_2, not eq_1];
(%o4) [false, true, true]
not exprは exprの評価を伴うので、
not equal(a, b)は
is(notequal(a, b))と同値です。
(%i1) [notequal (2*z, 2*z - 1), not equal (2*z, 2*z - 1)]; (%o1) [notequal(2 z, 2 z - 1), true] (%i2) is (notequal (2*z, 2*z - 1)); (%o2) true
Categories: Operators
equal(a, b)の否定を表します。
例:
(%i1) equal (a, b); (%o1) equal(a, b) (%i2) maybe (equal (a, b)); (%o2) unknown (%i3) notequal (a, b); (%o3) notequal(a, b) (%i4) not equal (a, b); (%o4) notequal(a, b) (%i5) maybe (notequal (a, b)); (%o5) unknown (%i6) assume (a > b); (%o6) [a > b] (%i7) equal (a, b); (%o7) equal(a, b) (%i8) maybe (equal (a, b)); (%o8) false (%i9) notequal (a, b); (%o9) notequal(a, b) (%i10) maybe (notequal (a, b)); (%o10) true
Categories: Operators
exprがMaximaの整理器が認識しない演算子や関数を含む時だけ
trueを返します。
Categories: Predicate functions · Simplification functions
変数 vの式 exprがゼロと同値かどうかテストし、
trueか, false, dontknowを返します。
zeroequivは以下の制限を持ちます:
例えば、zeroequiv (sin(2 * x) - 2 * sin(x) * cos(x), x)は
trueを返し、
zeroequiv (%e^x + x, x)は falseを返します。
一方、
zeroequiv (log(a * b) - log(a) - log(b), a)は
余分なパラメータbがあるので dontknowを返します。
Categories: Predicate functions
| [ << ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
この文書は市川 雄二によって5月, 20 2015にtexi2html 1.76を用いて生成されました。