Re: Question about subscripts and polynomial
- To: mathgroup at smc.vnet.net
- Subject: [mg107446] Re: [mg107355] Question about subscripts and polynomial
- From: Luca Zanotti Fragonara <Luca.Zanottifragonara at polito.it>
- Date: Fri, 12 Feb 2010 05:28:38 -0500 (EST)
- References: <201002100836.DAA21317@smc.vnet.net> <op.u7xj9seetgfoz2@bobbys-imac.local>
Thank you drmajorbob, you are getting me on my way. I have one question, the order[term_] script, I don't understand very well what did you do in it. Because I want to understand very well what you have done so that I'd be independent the next time. If I've understood correctely you have written a sort of rules, that after you can use to sort the List of the terms. But how did you build this rule? With the command Subscript[_, k_] :> k you define k as the subscript of each term, right? but what is term? If you can suggest me some section of the help to read I'd be very thankful, but I don't get it the way that you have chosen to solve the problem. And, the problem, as the moment, is that sometimes, the terms of the polynomial are not in the order that I want, so that's why I want to understand what you've done so that I could fix it! 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 >> >> >> > >
- References:
- Question about subscripts and polynomial
- From: Luca Zanotti Fragonara <Luca.Zanottifragonara@polito.it>
- Question about subscripts and polynomial