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>
- Re: GroebnerBasis (was Re: Documentation)