This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)
 Documentation / Mathematica / Built-in Functions / New in Version 3.0 / Algebraic Computation  /
GroebnerBasis

  • GroebnerBasis[ , , ... , , , ... ] gives a list of polynomials that form a Gröbner basis for the set of polynomials .
  • GroebnerBasis[ , , ... , , , ... , , , ... ] finds a Gröbner basis in which the have been eliminated.
  • The set of polynomials in a Gröbner basis have the same collection of roots as the original polynomials.
  • For polynomials in one variable, GroebnerBasis reduces to PolynomialGCD.
  • For linear functions in any number of variables, GroebnerBasis is equivalent to Gaussian elimination.
  • The Gröbner basis in general depends on the ordering assigned to monomials. This ordering is affected by the ordering of the .
  • The following options can be given:
  • Possible settings for MonomialOrder are Lexicographic, DegreeLexicographic, DegreeReverseLexicographic or an explicit weight matrix. Monomials are specified for the purpose of MonomialOrder by lists of the exponents with which the appear in them.
  • The ordering of the and the setting for MonomialOrder can substantially affect the efficiency of GroebnerBasis.
  • Possible settings for CoefficientDomain are InexactNumbers, Rationals, RationalFunctions and Polynomials[ x ].
  • MonomialList[ poly , , , ... ] gives a list of the monomials in poly in the order used by GroebnerBasis. MonomialList takes the same options as GroebnerBasis.
  • See the Mathematica book: Section 3.3.4.
  • See also Implementation NotesA.9.55.7MainBookLinkOldButtonDataA.9.55.7.
  • See also: PolynomialReduce, PolynomialGCD, Solve, RowReduce, Eliminate.

    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=