MathGroup Archive 2005

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

Search the Archive

Re: poly question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg58410] Re: [mg58393] poly question
  • From: János <janos.lobb at yale.edu>
  • Date: Fri, 1 Jul 2005 02:02:02 -0400 (EDT)
  • References: <200506300837.EAA15879@smc.vnet.net> <4622BC92-5FEB-4EAA-A5EE-8BE8307B8B6A@gmail.com>
  • Sender: owner-wri-mathgroup at wolfram.com

On Jun 30, 2005, at 7:08 AM, Andrzej Kozlowski wrote:

>
>
> On 30 Jun 2005, at 17:37, János wrote:
>
>
>> I have a polynom  called ftlmat
>>
>> (Dialog) In[187]:=
>> ftlmat
>> (Dialog) Out[187]=
>> 2*a^2*b^2*c + 2*a*b^2*c*d -
>>    2*b^2*c^2*d + b^2*c^2*d^2 +
>>    4*a^2*b*c*e - 2*a^2*c^2*e +
>>    2*a*b*c^2*e + 4*a*b*c*d*e -
>>    4*a*c^2*d*e - 2*b*c^2*d*e -
>>    2*c^2*d^2*e + 2*b*c^2*d^2*
>>     e + 2*a^2*c*e^2 +
>>    2*a*c^2*e^2 + 2*a*c*d*e^2 +
>>    c^2*d^2*e^2 + 2*a^2*b*c*f -
>>    2*a*b^2*d*f + 4*a*b*c*d*f -
>>    4*b^2*c*d*f - 2*b^2*d^2*f +
>>    2*b*c*d^2*f + 2*b^2*c*d^2*
>>     f - 2*a^2*c*e*f +
>>    4*a*b*c*e*f - 4*a*b*d*e*f -
>>    4*a*c*d*e*f - 4*b*c*d*e*f -
>>    4*b*d^2*e*f - 2*c*d^2*e*f +
>>    4*b*c*d^2*e*f + 4*a*c*e^2*
>>     f - 2*a*d*e^2*f -
>>    2*d^2*e^2*f + 2*c*d^2*e^2*
>>     f + 2*a^2*b*f^2 +
>>    4*a*b*d*f^2 - 2*b^2*d*f^2 +
>>    2*b*d^2*f^2 + b^2*d^2*f^2 +
>>    2*a*b*e*f^2 - 2*b*d*e*f^2 +
>>    2*b*d^2*e*f^2 +
>>    2*a*e^2*f^2 + d^2*e^2*f^2
>>
>> If I do a PolynomialReduce of it the following way, I get:
>>
>> In[170]:=
>> PolynomialReduce[ftlmat,
>>    {a*b*c, a*b*f, a*c*e,
>>     a*e*f, b*c*d, b*d*f,
>>     c*d*e, d*e*f}, {a, b, c,
>>     d, e, f}]
>> Out[170]=
>> {{2*a*b + 2*b*d + 4*a*e +
>>      2*c*e + 4*d*e + 2*a*f +
>>      4*d*f + 4*e*f,
>>     -2*b*d - 4*d*e + 2*a*f +
>>      4*d*f + 2*e*f,
>>     -2*a*c - 4*c*d + 2*a*e +
>>      2*c*e + 2*d*e - 2*a*f -
>>      4*d*f + 4*e*f,
>>     -2*d*e + 2*e*f,
>>     -2*b*c + b*c*d - 2*c*e +
>>      2*c*d*e - 4*b*f + 2*d*f +
>>      2*b*d*f - 4*e*f +
>>      4*d*e*f, -2*b*d - 4*d*e -
>>      2*b*f + 2*d*f + b*d*f -
>>      2*e*f + 2*d*e*f,
>>     -2*c*d + c*d*e - 2*d*f +
>>      2*d*e*f, -2*d*e + d*e*f},
>>    0}
>>
>> The result show that the first poly I got - related to a*b*c - has
>> all 6 variables, the next has 5 and the rest goes like 5,3,5,4,4,3.
>> If I total them it is 35.  My question is what series of polynomials
>> should I use in PolymonialReduce to get results which contain the
>> least amount of variables each - that is the total of the number of
>> variables in each resulting polynom should be minimal, and on the
>> same time the number of selected polynoms should be also minimal and
>> their construction is "simple" - not necessary the same length as in
>> my case - and I should not get any reminder in the result of
>> PolynominalReduce.
>>
>> If I look PolynomialReduce as giving a "vectorization" of the polynom
>> regarding to the selected {poly1,poly2,...} base, then the components
>> of the result are the "polynomial projections" to the individual base
>> polynoms.  I would like to select a base where the resulting
>> components have the minimum number of variables per component and I
>> want this base to be as simple as possible, that is they also should
>> have minimum number of variables in them.  I am sure algebra has some
>> theory for it, but my brain is just not recalling it right now.
>>
>>
>> Any good tip,
>>
>> János
>>
>>
>>
>
> I am not sure I really understand your question. You seem to want  
> to reduce your polynomial with respect to a family of polynomials  
> with reminder 0. That means you are reducing the polynomial with  
> respect to an ideal that contains the polynomial. Obviously you  
> will get "the simplest" representation in your sense (or at least  
> in the sense in which I understand what you are saying) if you  
> simply take the ideal generated by the polynomial, and as its basis  
> the polynomial itself.
>
>
> PolynomialReduce[ftlmat,ftlmat]
>
> {{1},0}
>
> Nothing could be simpler than this but somehow I don't think that  
> is quite what you wanted?
>
> Perhaps you may be better satisifed by reducing with respect to a  
> GroebnerBasis of the ideal generated by the monomials of your  
> polynomial ftlmat? That will certainly contain your polynomial so  
> you will get remainder 0. The number of polynomials in the  
> GroebnerBasis will not be normally be small but the "coefficients"  
> can be made "simple" according to various criteria. For example  
> here are a couple of examples:
>
>
> First[PolynomialReduce[ftlmat,GroebnerBasis[List@@ftlmat,Variables 
> [ftlmat]]]]
>
>
> {2 c+f-2,4 b-2,2 b+e-2,2 d-2,b+2,-4,-4,2 b 
> +2,-2,-2,-2,-4,d-2,2,-2,4,-4,2,2,-4,
>   2,4,-4,4,4,4,2,-2,2,-2,2,-2,2,2,4,2}
>
>
>
> v = First[PolynomialReduce[ftlmat, gr = GroebnerBasis[List @@  
> ftlmat, Reverse[Variables[ftlmat]],
>       MonomialOrder -> EliminationOrder]]]
>
>
> {2, 4, 2, 2, -2, 2, -2, 2, -2, 2, 4, 4, 4, -4, 4, 2, -4, 2, 2, -4,  
> 4, -2, 2, d - 2, 2*d - 4, f - 2, -2,
>   2*d - 2, 4*e + 2, -4, 2*f - 4, 2, -2, e - 2, 2*e - 2, f - 2}
>
> You could try different orderings of the variables and different  
> monomial orders to see what gives you the "simplest" representation.
>
> Andrzej Kozlowski
>
> Chiba, Japan

  I am looking for an Aristotelian golden middle between your first  
and second recommendation.  Let me reformulate my poly question in a  
general sense.  I refer to the Help on PolynomialReduce for the  
explanation of symbols.  Let say I have a polynomial  "poly" and  
applying PolynomialReduce with polynomials {poly1,poly2,...,polym}  
with variables {x1,x2,...,xn} I get a result in the form  
{{roly1,roly2,...rolym} ,0} without any remainder.  How should I  
select {poly1,poly2,...,polym} to get {roly1,roly2,...rolym} such as  
that Variables[roly1]+Variables[roly2]+....+Variables[rolyk] be  
minimal, but every one of these "rolyi"s still should have minimum  
one variable?  The individual rolys can be any length - obviously  
less than the length of poly.  In my example I selected a subset of  
the 3-variable permutations of the variables for  
{poly1,poly2,...,polym} , where the guidance for my selection was  
that they should have had minimum common elements pairwise - like bcd  
and acf have just one common element.  I do not want  
{poly1,poly2,...,polym}  to be too long and probably all of them  
should be terms.  Optimally  {roly1,roly2,...rolym} should have  
elements that Variables[rolyi]+Variables[polyi]<=n.

Thanks ahead,

János



  • Prev by Date: Re: poly question
  • Next by Date: Re: Sudoku puzzle
  • Previous by thread: Re: poly question
  • Next by thread: Re: Periodic function Roots: Thanks all