MathGroup Archive 2007

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

Search the Archive

Re: Re: Removing constant multiples from polynomials

If I understood the question correctly than the answers given by most  
posters (which only removed the rational numeric factor from the  
polynomial) all missed the point of the question, which was, I  
believe,  how to obtain a monic polynomial in the given variables,  
given an arbitrary polynomial. This is exactly what GroebnerBasis  
does, e.g.


y x-2 x-y+2


y x-2 x-y+2

If you want GroebnerBasis to work also with symbolic coefficients we  
need to use the option CefficientDomain->RationalFunctions


y x-2 x-y+2

The only other solutions that I have seen,  which work in all these  
cases, rather than just for the specific example given by Chris, are  
Adrianno Pescoletti's:

(#1/Coefficient[#1, x*y, 1] & )[a*(x-1)(y-2)]

(x-1) (y-2)

and mine:

Times @@ (Power @@@ DeleteCases[
        FactorList[a*(x - 1)(y - 2)], _?(FreeQ[#, x | y] &)])

(x-1) (y-2)

Andrzej Kozlowski

On 16 Feb 2007, at 06:53, Andrzej Kozlowski wrote:

> On 15 Feb 2007, at 10:55, Azumanga wrote:
>> I am working on an algorithm which manipulates sets of polynomials.
>> Often it produces (after an application of FullSimplify) polynomials
>> like:
>> 1276(x-1)(y-2)/397
>> I'm only interested in the solutions to the polynomial, so to me this
>> is "equivalent" to:
>> (x-1)(y-2)
>> As a short-term solution I call "GroebnerBasis" on the single
>> polynomial, which seems to perform this simplification. However is
>> there a simpler method?
>> Thank you,
>> Chris
> GroebnerBasis does it because it outputs a reduced Groebner basis of
> the polynomial ideal containing your polynomial(s). I can't imagine
> what you can possibly mean by a "simpler method" in this case? Both
> in terms of the length of the code you need to write and of the
> actual algorithm that is used I don't think there is any genuinely
> "simpler way". Of course there is a practically countless number of
> programs you could write that yourself that will do it; for example:
> Times @@ (Power @@@ DeleteCases[
>        FactorList[1276(x - 1)(y - 2)/3], _?(FreeQ[#, x | y] &)])
> but you can hardly call this "simpler".
> Andrzej Kozlowski

  • Prev by Date: Re: unistallation problem
  • Next by Date: Re: Re: record intermediate steps
  • Previous by thread: Re: Removing constant multiples from polynomials
  • Next by thread: Re: Removing constant multiples from polynomials