Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
Groebner[Basis] - Groebner 基底の計算
使い方
Basis(J, tord, opts)
パラメータ
J
-
多項式のリストか集合、あるいは PolynomialIdeal
tord
単項式順序の一般的な記述か短い記述あるいは名前
opts
オプション keyword=value
説明
Groebner[Basis] コマンドは可換・非可換多項式環上のイデアル・加群の Groebner 基底を計算します。このヘルプページでは最も一般的な場合、つまり可換多項式環上のイデアルを定義する多項式のリスト、または集合を入力とする場合について解説しています。加群や非可換の Groebner 基底計算については Basis_details で解説しています。
Groebner 基底は、イデアルに入っている任意の多項式の頭単項式を、Groebner 基底のいくつかの多項式の頭単項式で割り切るという性質を持っています。Groebner 基底による割り算は、唯一に定まる剰余、あるいは正規形 (NormalForm) を与えます。
J は多項式のリスト、集合か、 PolynomialIdeal のデータ構造である必要があります。PolynomialIdeals による入力は、計算効率の面で、大規模な問題に有用です。Groebner 基底は多くの最適化を利用でき、型のチェックも省略できます。
tord は単項式順序を表します。例えば、plex(x,y,z) は変数順序を x > y > z. と置いた辞書式順序を定義します。利用可能な単項式順序の一覧は MonomialOrders をご参照ください。このパラメータには、名前を入力することもできます。このとき Groebner[Basis] は単項式順序を一つ選び、その単項式順序を tord に割り当てます。また、この場合変数はオプションのパラメータ variables={...} を用いて指定し、単項式順序の型は order=... を用いて指定する事ができます。詳しくは例をご参照ください。
注意: このヘルプページの単項式順序は全て 短い記述 (ShortMonomialOrder) を用いています。MonomialOrder コマンドを用いて構成された単項式順序 (ユーザ定義の順序を含めて) については Basis_details のヘルプページをご参照ください。
オプションとして characteristic=p を指定すると、標数を定めることができ、有理数体上の計算の代わりに p を法とした係数での計算をおこなえます。このオプションは入力が PolynomialIdeal であった場合は無視されますが、一つ目のパラメータを J mod p とすることで同様の計算をおこなえます。Maple では整数係数の Groebner 基底の計算を行う算法がありませんので、係数は体でなくてはなりません。代数拡大には RootOfs か根号を用います。
オプションとして output=extended を指定すると、Groebner 基底の元が、生成元 J を用いてどのように表されているかを得られる変換行列 C を計算します。出力は (G, C) の形であり、G は Groebner 基底、C はリストのリストとなります。各 G[i] は、C[i] と J との内積と一致します。この行列は保持されませんので、もしもう一度必要になったとしても、Groebner 基底の計算をやり直さなくてはなりません。
オプションとして method=... を指定すると Groebner 基底計算に使う算法や戦略を指定することができます。このことに関する情報や計算効率に関連した話題は Basis_algorithms をご参照ください。
gbasis コマンドは同じ働きをしますが、今後リリースされる Maple ではサポートされない可能性がありますのでご注意ください。
例
with(Groebner):
F := [x^3 - 3*x*y, x^2*y - 2*y^2 + x];
Basis(F, plex(x,y)); # lexicographic order with x > y
Basis(F, tdeg(x,y)); # graded reverse lexicographic order
Basis(F, 'tord'); # choose a term order and assign it to tord
tord;
Basis(F, 'tord', order='grlex'); # choose a graded lex order
Basis(F, plex(x,y), characteristic=3); # computation over Z[3]
G, C := Basis(F, plex(x,y), output=extended); # compute a transformation matrix
[seq(expand(add(C[i][j]*F[j], j=1...nops(F))), i=1..nops(C))];
いま計算された Groebner 基底の情報を保持したまま、PolynomialIdeal のデータ構造を作ります。
with(PolynomialIdeals):
J := <F>;
IdealInfo[KnownGroebnerBases](J);
以下のコマンドによる計算では、既にわかっている Groebner 基底が計算に利用できないか調べるため、Groebner 基底の計算を一切行っていません。
HilbertDimension(J);
UnivariatePolynomial(y, J);
Homogenize(J, h);
PolynomialIdeals は NormalForm コマンドの入力とすることもでき、対応した Groebner 基底を用いた計算を自動的に行います。
f := x^3*y^2 - x*y - 1;
NormalForm(f, J, tdeg(x,y));
NormalForm(f, J, plex(x,y));
参照
Basis_algorithms, Basis_details, MonomialOrders, NormalForm, PolynomialIdeal
Download Help Document