[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
62.1 Introduction to grobner | ||
62.2 Functions and Variables for grobner |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
grobner
は Maximaで Groebner基底を使うためのパッケージです。
以下の関数を使うには `grobner.lisp'パッケージをロードしなければいけません。
load(grobner); |
demo("grobner.demo"); |
もしくは
batch("grobner.demo") |
でデモを開始することができます。
デモの中の計算のいくつかは長い時間かかります。 だから、デモの出力 `grobner-demo.output'を デモファイルと同じディレクトリに用意しています。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
パッケージは
Marek Rychlik
http://alamos.math.arizona.edu
によって書かれ、 General Public License(GPL)の条件の下、 2002-05-24にリリースされました。 (ファイル `grobner.lisp'を参照してください。) このドキュメントはファイル
`README', `grobner.lisp', `grobner.demo', `grobner-demo.output'
から
Günter Nowakによって抽出されました。
ドキュメントの改善に関する提案は maximaメーリングリスト maxima@math.utexas.eduで議論することができます。 現在、コードは若干古くなっています。 モダンな実装は以下に記載されている高速の F4アルゴリズムを使います。
A new efficient algorithm for computing Gröbner bases (F4) Jean-Charles Faugère LIP6/CNRS Université Paris VI January 20, 1999 |
Categories: Groebner bases · Share packages · Package grobner
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
lex
純粋に辞書式の、単項式比較のデフォルト順序。
grlex
全次数順序。同点は辞書式で決めます。
grevlex
全次数。同点は逆辞書式で決めます。
invlex
逆時書式順序。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
デフォルト値: lex
このグローバルスイッチはどの単項式順序を多項式と Groebner基底計算で使うか制御します。
もし設定しないなら lex
を使います。
Categories: Package grobner
デフォルト値: expression_ring
このスイッチは grober計算で使う多項式の係数環を示します。
もし設定しないなら maximaの 一般式環を使います。
もし望むならこの変数を ring_of_integers
に設定できます。
Categories: Package grobner
デフォルト値: false
消去ベース関数で消去される変数のデフォルト順序名。
設定しないなら lex
を使います。
Categories: Package grobner
デフォルト値: false
消去ベース関数で保持される変数のデフォルト順序名。
設定しないなら lex
を使います。
Categories: Package grobner
デフォルト値: false
消去計算で使われるデフォルト消去順序名。
設定したなら、
変数 poly_primary_elimination_order
と
poly_secondary_elimination_order
の設定を上書きします。
ユーザーはこれが消去変数の数に有効な真の消去順序であることを保証しなければいけません。
Categories: Package grobner
デフォルト値: false
もし true
に設定したなら、
このパッケージの関数すべては
maxima一般式ではなく、
それぞれの多項式を現在の単項式順序で並べた項のリストとして返します。
Categories: Package grobner
デフォルト値: false
もし true
に設定したなら、
デバッグ用、トレース用出力を生成します。
Categories: Package grobner
デフォルト値: buchberger
可能な値:
buchberger
parallel_buchberger
gebauer_moeller
Groebner基底を見つけるのに使うアルゴリズム名。
Categories: Package grobner
デフォルト値: false
もし false
でないなら、
可能な時はいつでも、頭項簡約を使います。
頭項簡約は割り算アルゴリズムが最初の簡約後に停止することを意味します。
Categories: Package grobner
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
poly_add
, poly_subtract
, poly_multiply
, poly_expt
は
多項式の算出演算子です。
これらは内部表現を使って実行されますが、
結果は maxima一般形式に変換されます。
2つの多項式 poly1と poly2を足します。
(%i1) poly_add(z+x^2*y,x-z,[x,y,z]); 2 (%o1) x y + x |
Categories: Package grobner
多項式 poly1から poly2を引きます。
(%i1) poly_subtract(z+x^2*y,x-z,[x,y,z]); 2 (%o1) 2 z + x y - x |
Categories: Package grobner
多項式 poly1と poly2の積を返します。
(%i2) poly_multiply(z+x^2*y,x-z,[x,y,z])-(z+x^2*y)*(x-z),expand; (%o1) 0 |
Categories: Package grobner
2つの多項式 poly1と poly2の シジジー (syzygy)多項式 (S多項式)を返します。
Categories: Package grobner
多項式 poly1を係数の GCDで割ったものを返します。
(%i1) poly_primitive_part(35*y+21*x,[x,y]); (%o1) 5 y + 3 x |
Categories: Package grobner
多項式 poly1を主係数で割ったものを返します。 割り算が可能であることを仮定しています。 これは体の場合には大丈夫ですが、環の場合にはいつも可能なわけではありません。
Categories: Package grobner
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この関数は多項式を内部形式にパースします。
もし polyが多項式を正確にパースしたら、それは
expand(poly)
と同値です。
もし表現が変数
varlistの多項式と互換性がないなら、結果はエラーです。
式が正確に内部表現にパースするかテストするのに使うことができます。
以下の例は添字付き変数と超越関数変数が許されることを例示します。
(%i1) poly_expand((x-y)*(y+x),[x,y]); 2 2 (%o1) x - y (%i2) poly_expand((y+x)^2,[x,y]); 2 2 (%o2) y + 2 x y + x (%i3) poly_expand((y+x)^5,[x,y]); 5 4 2 3 3 2 4 5 (%o3) y + 5 x y + 10 x y + 10 x y + 5 x y + x (%i4) poly_expand(-1-x*exp(y)+x^2/sqrt(y),[x]); 2 y x (%o4) - x %e + ------- - 1 sqrt(y) (%i5) poly_expand(-1-sin(x)^2+sin(x),[sin(x)]); 2 (%o5) - sin (x) + sin(x) - 1 |
Categories: Package grobner
polyの正の整数 numberのべき乗を返します。 もし numberが正の整数でないならエラーが生じます。
(%i1) poly_expt(x-y,3,[x,y])-(x-y)^3,expand; (%o1) 0 |
Categories: Package grobner
poly_content
は係数の GCDを抽出します。
(%i1) poly_content(35*y+21*x,[x,y]); (%o1) 7 |
Categories: Package grobner
多項式 polyを n個の多項式のリスト polylistで擬似的に割ります。 複数の値を返します。 一番目の値は商のリスト aです。 二番目の値は余り rです。 三番目の値は、係数環(体である必要はありません)内で polylistが c*polyを割れるようなスカラ係数 cです。 最後に四番目の値は実行された簡約の回数です。 結果のオブジェクトは以下の等式を満たします:
c*poly=sum(a[i]*polylist[i],i=1...n)+r.
Categories: Package grobner
多項式 poly1を多項式 poly2で割ります。 余りのない厳密な割り算が可能と仮定します。 商を返します。
Categories: Package grobner
poly_normal_form
は多項式の集合 polylistに関して多項式
polyの正規形を見つけます。
Categories: Package grobner
Buchberger判定 (criterion)を使ってもし polylistが現在の項順序に関して
Groebner基底なら true
を返します:
Buchberger判定(criterion)は、
polylistの2つの多項式 h1と h2すべてに関して、
S多項式 S(h1,h2)が polylistを法として0に簡約されるというものです。
Categories: Package grobner
poly_buchberger
は多項式のリスト上で Buchbergerアルゴリズムを実行し、結果の
Groebner基底を返します。
Categories: Package grobner
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
K[ x[1],...,x[n] ]上のイデアル Iの
k番目の消去イデアル I_kは
イデアル intersect(I, K[ x[k+1],...,x[n] ])です。
コロンイデアル I:Jは
イデアル {h|for all w in J: w*h in I}です。.
イデアル I:p^infはイデアル {h| there is a n in N: p^n*h in I}です。
イデアル I:J^infはイデアル {h| there is a n in N and a p in J: p^n*h in I}です。
The 根基イデアル sqrt(I)はイデアル
{h| there is a n in N : h^n in I }です。
poly_reduction
は多項式のリスト polylistを簡約します。
それぞれの多項式は他の多項式で完全に簡約されます。
Categories: Package grobner
polylistと同じ単項式イデアルの最小全域である、 多項式リスト polylistの部分リストを返します。 すなわち、部分リストの中の多項式の主単項式はすべて、他の多項式の主単項式を割りません。
Categories: Package grobner
poly_normalize_list
は
poly_normalize
をリストの中の多項式それぞれに適用します。
これはリスト polylistの中のすべての多項式を主係数で割ることを意味します。
Categories: Package grobner
多項式リスト polylistで張られたイデアルの Groebner基底を返します。 グローバルフラグで影響を受けます。
Categories: Package grobner
多項式リスト polylistで張られたイデアルの簡約 Groebner基底を返します。
Categories: Package grobner
poly_depends
は多項式が変数 varに依存するかテストします。
Categories: Package grobner · Predicate functions
poly_elimination_ideal
は、
(必ずしも Groebner基底である必要はない)生成多項式のリストとして指定されたイデアルの
number番目の消去イデアルの Groebner基底を返します。
Categories: Package grobner
コロンイデアル
I(polylist1):I(polylist2)
の簡約 Groebner基底を返します。
ここで polylist1と polylist2は 2つの多項式リストです。
Categories: Package grobner
poly_ideal_intersection
は 2つのイデアルの交わりです。
Categories: Package grobner
poly1と poly2の最小公倍数(式)を返します。
Categories: Package grobner
poly1と poly2の最大公約数(式)を返します。
ezgcd
, gcd
, gcdex
,
gcdivide
も参照してください。
例:
(%i1) p1:6*x^3+19*x^2+19*x+6; 3 2 (%o1) 6 x + 19 x + 19 x + 6 (%i2) p2:6*x^5+13*x^4+12*x^3+13*x^2+6*x; 5 4 3 2 (%o2) 6 x + 13 x + 12 x + 13 x + 6 x (%i3) poly_gcd(p1, p2, [x]); 2 (%o3) 6 x + 13 x + 6 |
Categories: Package grobner
poly_grobner_equal
は 2つの
Groebner基底が同じイデアルを生成するかテストします。
もし Groebner基底と仮定された2つの多項式リスト polylist1と
polylist2が同じイデアルを生成するなら、 true
を返します。
そうでないなら false
を返します。
これは、一番目の基底のすべての多項式が二番目の基底を法として
0に簡約されるかとその逆をチェックすることと同値です。
以下の例では、一番目のリストが Groebner基底でないので結果が
false
であることに注意してください。
(%i1) poly_grobner_equal([y+x,x-y],[x,y],[x,y]); (%o1) false |
Categories: Package grobner
poly_grobner_subsetp
は
polylist1が生成するイデアルが
polylist2が生成するイデアルに含まれるかテストします。
このテストが常に成功するには polylist2が Groebner基底でなければいけません。
Categories: Package grobner · Predicate functions
もし多項式 polyが Groebner基底であると仮定された多項式リスト
polylistが生成するイデアルに属するなら、 true
を返します。
そうでないなら false
を返します。
poly_grobner_member
は多項式が
Groebner基底であると仮定された多項式のリストが生成するイデアルに属するかテストします。
normal_form
が 0と同値です。
Categories: Package grobner
イデアル
I(polylist):poly^inf の saturationの簡約 Groebner基底を返します。
幾何学的に、代数的閉体上で、これは polyの多様体上で恒等的に 0とならない polylistが生成するイデアルの中の多項式の集合です。
Categories: Package grobner
イデアル
I(polylist1):I(polylist2)^inf の saturationの簡約 Groebner基底を返します。
幾何学的に、代数的閉体上で、これは polylist2の多様体上で恒等的に 0とならない polylist1が生成するイデアルの中の多項式の集合です。
Categories: Package grobner
polylist2は 2個の多項式のリスト [poly1,...,polyn]
です。
多項式リスト polylist1が生成するイデアルの多項式リスト
polylist2の多項式に関する連続 saturationの列によって得られるイデアル
I(polylist):poly1^inf:...:polyn^inf
の簡約 Groebner基底を返します。
Categories: Package grobner
polylistlistは多項式リスト n個のリスト [polylist1,...,polylistn]
です。
イデアル
I(polylist):I(polylist_1)^inf:...:I(polylist_n)^inf の saturationの簡約 Groebner基底を返します。
Categories: Package grobner
poly_saturation_extension
は有名な Rabinowitzのトリックを実装します。
Categories: Package grobner
Categories: Package grobner
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.