MathGroup Archive 2010

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

Search the Archive

Re: Question about subscripts and polynomial

  • To: mathgroup at smc.vnet.net
  • Subject: [mg107447] Re: [mg107355] Question about subscripts and polynomial
  • From: Luca Zanotti Fragonara <Luca.Zanottifragonara at polito.it>
  • Date: Fri, 12 Feb 2010 05:35:55 -0500 (EST)
  • References: <201002100836.DAA21317@smc.vnet.net> <op.u7xj9seetgfoz2@bobbys-imac.local>

Forget the previous message. I get what is going wrong in my ordering. 
My polynomial is of this form:

d[1]^2 v[1] + d[1]^2 v[3] + 2 d[1] d[3] v[1] + d[3]^2 v[1] +
 d[1]^2 v[5] + 2 d[1] d[5] v[1] + 2 d[1] d[3] v[3] + d[3]^2 v[3] +
 d[1]^2 v[7] + 2 d[3] d[5] v[1]+... and so on

The problem with the command:
order[term_] :=
 term /. Times -> Plus /. Power -> Times /. Subscript[_, k_] :> k
listSum = SortBy[basicSum /. Plus -> List, order]

Is that I get a right order when I don't have a coefficient in front of 
the term, but when there is a coefficient it takes part in the 
calculation of the order of the term I guess.
Do you have an idea of how to avoid this problem?

Thank you in advance,

Luca

DrMajorBob ha scritto:
> I'm not entirely sure what ordering you want, but here's something to 
> get you on the way.
>
> You can tweak the "order" function if needed.
>
> First, your original expansion:
>
> poly = d^2*v;
> Subscript[q, 1] =
>   poly /. {d -> Sum[Subscript[d, i], {i, 1, 3}]} /. {v ->
>      Sum[Subscript[v, i], {i, 1, 3}]};
> basicSum = Expand[Subscript[q, 1]]
>
> (ugly output omitted; it looks fine in Mathematica)
>
> Here's the same thing transformed to a List and sorted by the total 
> order of each product:
>
> order[term_] :=
>  term /. Times -> Plus /. Power -> Times /. Subscript[_, k_] :> k
> listSum = SortBy[basicSum /. Plus -> List, order]
>
> (ugly output omitted; it looks fine in Mathematica)
>
> That's a List, not a sum; the following is also NOT a sum, but it 
> looks like one, sorted the same as listSum:
>
> displaySum = Infix[listSum, "+"]
>
> (ugly output omitted; it looks fine in Mathematica)
>
> To get back the original:
>
> backToBasics = Plus @@ displaySum[[1]];
> basicSum === backToBasics
>
> True
>
> Bobby
>
> On Wed, 10 Feb 2010 02:36:40 -0600, Luca Zanotti Fragonara 
> <Luca.Zanottifragonara at polito.it> wrote:
>
>> Hello everybody,
>>
>> I would like to write a Polynomial, in this way:
>>
>> Poly = d^2*v
>> Subscript[q, 1] =
>>  Poly /. {d -> Sum[Subscript[d, i], {i, 1, 3}]} /. {v ->Sum[Subscript[v,
>> i], {i, 1, 3}]}
>> Expand[Subscript[q, 1]]
>>
>> In this way I will obtain a polynomial in this form:
>>
>> d_1^2 v_1+2 d_1 d_2 v_1+d_2^2 v_1+2 d_1 d_3 v_1+2 d_2 d_3 v_1+d_3^2
>> v_1+d_1^2 v_2+2 d_1 d_2 v_2+d_2^2 v_2+2 d_1 d_3 v_2+2 d_2 d_3 v_2+d_3^2
>> v_2+d_1^2 v_3+2 d_1 d_2 v_3+d_2^2 v_3+2 d_1 d_3 v_3+2 d_2 d_3 
>> v_3+d_3^2 v_3
>>
>> I would like to reorder the expanded polynomial in a way such that the
>> terms with lower subcripts indexes will be at the beginning of the
>> polynomial, and the terms with higher order of subscripts will be at the
>> end (a sort of order due to the subscript instead of the power terms).
>> So the order should be something:
>>
>> Order 3: d_1^2 v_1
>> Order 4: 2 d_1 d_2 v_1+d_1^2 v_2+...
>> Order 5: d_2^2 v_1+2 d_1 d_3 v_1+...
>> Order 6: 2 d_2 d_3 v_1+...
>>
>> I've tried to figure it out but I don't know which way to turn!!!
>>
>> Thank you in advance.
>>
>> Luca
>>
>>
>>
>
>


  • Prev by Date: Re: Question about subscripts and polynomial
  • Next by Date: Re: Define an antisymmetric function
  • Previous by thread: Re: Question about subscripts and polynomial
  • Next by thread: Re: Question about subscripts and polynomial