MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

GroebnerBasis (was Re: Documentation)

  • To: mathgroup at
  • Subject: [mg58577] GroebnerBasis (was Re: Documentation)
  • From: Stefan Karlsson <steka68 at>
  • Date: Fri, 8 Jul 2005 00:46:08 -0400 (EDT)
  • References: <> <d9islb$co6$>
  • Sender: owner-wri-mathgroup at

Daniel Lichtblau wrote:
> Andrzej Kozlowski wrote:
>>I guess I have been rather slow but I am gradually coming round to  
>>the view that Mathematica's documentation leaves something to be  
>>desired. For example:
>>CoefficientDomain is an option for GroebnerBasis and  
>>PolynomialReduce. Valid
>>choices are Integers, Rationals, RationalFunctions, or Polynomials[var].
>>InexactNumbers is a setting for the CoefficientDomain option of  
>>and PolynomialReduce.
>>InexactNumbers are mentioned in the main documentation:
>>  Possible settings for CoefficientDomain are InexactNumbers,  
>>Rationals, RationalFunctions and Polynomials[x].
>>but this is still quite hopeless as documentation as there is nothing  
>>to tell the user that the proper usage is:
>>GroebnerBasis[polys, vars, CoefficientDomain -> InexactNumbers[n]]
>>where n is precision.
> Actually CoefficientDomain->InexactNumbers should work, using a default 
> of 100 digits (I think). The fact that InexactNumbers[n] is undocumented 
> is an artifact of development history. GroebnerBasis with inexact 
> numbers was developed for version 3, and the use of specified precision 
> came in version 4 as part of NSolve overhaul.
> I'll forward this to the documentation folks to see if it can be updated.
>>No wonder that I am yet to meet a person that has heard of numerical  
>>Groebner basis in Mathematica never mind anyone actually using it.
> Presumably you mean "non-WRI employees". It gets used here a bit.

I have notized that in Mathematica 3.0 and Mathematica 5.0, 
GroebnerBasis sometimes gives different results. Where 3.0, when 
eliminating, gives a polynomial with very large coefficients, 5.0
gives the empty set, although that's incorrect, probably due to
numerical cancellation, quite unexpectedly.
As an example, in Mathematica 5.0
GroebnerBasis[{x - y, x - 1.01 y}, {y},{x}]
gives {1. y} while
GroebnerBasis[{x - y, x - 1.001 y}, {y},{x}]
gives {}.
The correct Groebner Basis, after elimination of x is of course {y}.
GroebnerBasis[{x - y, x - 1.01 y}, {x, y}]
gives the correct {1. y, x} while
GroebnerBasis[{x - y, x - 1.01 y}, {x, y}]
gives the incorrect {x - 1.001 y}

Though, if you add CoefficientDomain->Rationals, things works out quite
a bit better. (Default seems to be CoefficientDomain->InexactNumbers).
Thanks to this thread for that!

Should really cancellation errors occur at this level of accurancy?
I agree with Andrzej that the different CoefficientDomains should be
more documented, and so the risk of inaccuracy in the default setting.

Stefan Karlsson
Skövde University, Sweden

  • Prev by Date: Re: Set of strings reducing problem
  • Next by Date: Re: combinations problem
  • Previous by thread: Re: Problem with multiple function calling from a novice...
  • Next by thread: Re: GroebnerBasis (was Re: Documentation)