GroebnerBasis (was Re: Documentation)

*To*: mathgroup at smc.vnet.net*Subject*: [mg58577] GroebnerBasis (was Re: Documentation)*From*: Stefan Karlsson <steka68 at telia.com>*Date*: Fri, 8 Jul 2005 00:46:08 -0400 (EDT)*References*: <200506240649.CAA29400@smc.vnet.net> <d9islb$co6$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

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 >> >>CoefficientDomain is an option for GroebnerBasis and >>PolynomialReduce. Valid >>choices are Integers, Rationals, RationalFunctions, or Polynomials[var]. >> >>However: >> >>?InexactNumbers >> >>InexactNumbers is a setting for the CoefficientDomain option of >>GroebnerBasis >>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}. Likewise 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

**Follow-Ups**:**Re: GroebnerBasis (was Re: Documentation)***From:*Daniel Lichtblau <danl@wolfram.com>