此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

GroebnerBasis

Usage

GroebnerBasis[  ,  , ...  ,   ,  , ...  ] 给出一列多项式,这些多项式构成多项式 Groebner基.
GroebnerBasis[  ,  , ...  ,   ,  , ...  ,   ,  , ...  ] 找到一个Groebner基,且这个基中不包含  .


Notes

Groebner基中的这组多项式与原来的多项式具有相同的解集.
• 在一元多项式中,GroebnerBasis简化为PolynomialGCD.
• 对多元的线性函数,GroebnerBasis等价于Gaussian消元法.
• 一般说来,Groebner基依赖于分配给单项的顺序.这个顺序受到 的顺序的影响.
• 可以使用下列可选项:
"\!\(\*StyleBox[\"\\\"MonomialOrder\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"Lexicographic\\\"\", \"MR\"]\) "对单项排序所使用的准则
"\!\(\*StyleBox[\"\\\"CoefficientDomain\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"Rationals\\\"\", \"MR\"]\) "被假定为系数的对象的类型
"\!\(\*StyleBox[\"\\\"Modulus\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"0\\\"\", \"MR\"]\) "数值系数的模数
• 可能的MonomialOrder设置是Lexicographic, DegreeLexicographic, DegreeReverseLexicographic或一个显式的加权矩阵.MonomialOrder所使用的单项式通过 所在的指数构成的列表来指定.
 的顺序和MonomialOrder设置能对GroebnerBasis的效率产生实质性影响.
CoefficientDomain 的可能设置是InexactNumbers, Rationals, RationalFunctions 以及 Polynomials[x].
MonomialList[poly,   ,  , ...  ]GroebnerBasis所使用的顺序给出 poly 中的单项式列表. MonomialList 采用与 GroebnerBasis相同的可选项.
• 参见Mathematica全书: 3.3.4.
• 实现注释: 参见 A.9.5节.
Further Examples

The time and memory required to calculate a Groebner basis depend very much on the variable ordering, monomial ordering, and on which (if any) variables are regarded as constants. For example (see gb3 and gb4), it is typical for degree reverse lexicographic monomial ordering to be faster and to give simpler output than pure lexicographic ordering, other things being the same. We define a function to show the timing for five variations, as well as the number of polynomials, the number of terms in each polynomial, the total degree of each polynomial, and the largest coefficient in each polynomial.

In[1]:=  

Here is a set of polynomials from a recent textbook. We do five Groebner bases on this set.

In[2]:=  

In[3]:=  

Out[3]//TableForm=

In[4]:=  

Out[4]//TableForm=

In[5]:=  

Out[5]//TableForm=

In[6]:=  

Out[6]//TableForm=

In[7]:=  

Out[7]//TableForm=

In[8]:=  

Changing  in the second polynomial from the previous example makes this a much harder example for some variable orders.

In[9]:=  

Out[9]//TableForm=