Main Content

gbasis

簡約されたグレブナー基底

説明

gbasis(poly) は、多項式 poly のベクトルのグレブナー基底を返します。既定では、gbasis は、symvar を使用して poly 内の独立変数を求め、単項式順序 degreeInverseLexicographic を使用します。

gbasis(poly,vars) も独立変数 vars を使用します。

gbasis(___,'MonomialOrder',MonomialOrder) は、前述の構文の入力引数に加えて指定された単項式順序も使用します。オプションは、'degreeInverseLexicographic''degreeLexicographic'、または 'lexicographic' です。既定では、gbasis'degreeInverseLexicographic' を使用します。

すべて折りたたむ

多項式 x^2-y^2 および x^2+y のグレブナー基底を計算します。既定では、gbasissymvar を使用して独立変数を求めます。

syms x y
p = [x^2-y^2, x^2+y];
gbasis(p)
ans =
[ x^2 + y, y^2 + y]

独立変数は、gbasis の 2 番目の引数として指定します。

独立変数 [x y] を使用して多項式 a*y+x^2*y+a および a*x^2+y のグレブナー基底を計算します。

syms x y a
p = [a*y + x^2*y + a, a*x^2 + y];
vars = [x y];
grobnerBasis = gbasis(p,vars)
grobnerBasis =
[ a*x^2 + y, - y^2/a + a*y + a]

既定では、gbasis は単項式順序 degreeInverseLexicographic を使用します。名前と値のペアの引数 'MonomialOrder' を使用して単項式順序を変更します。

単項式順序 lexicographic で多項式 y*z^2+1 および y^2*x^2-y-z^3 のグレブナー基底を求めます。

syms x y z
p = [y*z^2 + 1, y^2*x^2 - y - z^3];
grobnerBasis = gbasis(p,'MonomialOrder','lexicographic')
grobnerBasis =
[ x^2 - z^7 + z^2, y*z^2 + 1]

単項式順序 degreeLexicographic と共に変数 [z y] を使用します。

grobnerBasis = gbasis(p,[z y],'MonomialOrder','degreeLexicographic')
grobnerBasis =
[ x^2*y^2 - y - z^3, y*z^2 + 1, x^2*y^3 - y^2 + z]

入力引数

すべて折りたたむ

多項式。シンボリック式のベクトルとして指定します。

独立変数。シンボリック変数のベクトルとして指定します。

単項式順序。値 'MonomialOrder' および 'degreeInverseLexicographic''degreeLexicographic''lexicographic' のいずれかで構成されるコンマ区切りのペアとして指定します。vars が指定されている場合、単項式は vars 内の変数の順序に対して並べ替えられます。

  • lexicographic は、辞書式順序を使用して多項式の項を並べ替えます。

  • degreeLexicographic は、各項の全次数に応じて多項式の項を並べ替えます。項の全次数が等しい場合、polynomialReduce はそれらを辞書式順序で並べ替えます。

  • degreeInverseLexicographic は、各項の全次数に応じて多項式の項を並べ替えます。項の全次数が等しい場合、polynomialReduce はそれらを逆辞書式順序で並べ替えます。

バージョン履歴

R2018a で導入