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.


First[GroebnerBasis[2/3*(x-1)(y-2),{x,y}]]


y x-2 x-y+2

First[GroebnerBasis[Pi*(x-1)(y-2),{x,y}]]


y x-2 x-y+2

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



First[GroebnerBasis[a*(x-1)(y-2),{x,y},CoefficientDomain- 
 >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