Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
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