Re: Selecting subscripted variables from an expression
- To: mathgroup at smc.vnet.net
- Subject: [mg109150] Re: Selecting subscripted variables from an expression
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Mon, 19 Apr 2010 04:12:10 -0400 (EDT)
myNumerator =
Subscript[a, 1]*Subscript[b, 0]^5 -
Subscript[a, 2]*Subscript[b, 0]^4*Subscript[b, 1] +
Subscript[a, 3]*Subscript[b, 0]^3*Subscript[b, 1]^2 -
Subscript[a, 4]*Subscript[b, 0]^2*Subscript[b, 1]^3 +
Subscript[a, 5]*Subscript[b, 0]*Subscript[b, 1]^4 -
Subscript[a, 6]*Subscript[b, 1]^5 -
Subscript[a, 3]*Subscript[b, 0]^4*Subscript[b, 2] +
2*Subscript[a, 4]*Subscript[b, 0]^3*Subscript[b, 1]*Subscript[b, 2] -
3*Subscript[a, 5]*Subscript[b, 0]^2*Subscript[b, 1]^2*Subscript[b, 2] +
4*Subscript[a, 6]*Subscript[b, 0]*Subscript[b, 1]^3*Subscript[b, 2] +
Subscript[a, 5]*Subscript[b, 0]^3*Subscript[b, 2]^2 -
3*Subscript[a, 6]*Subscript[b, 0]^2*Subscript[b, 1]*Subscript[b, 2]^2 -
Subscript[a, 4]*Subscript[b, 0]^4*Subscript[b, 3] +
2*Subscript[a, 5]*Subscript[b, 0]^3*Subscript[b, 1]*Subscript[b, 3] -
3*Subscript[a, 6]*Subscript[b, 0]^2*Subscript[b, 1]^2*Subscript[b, 3] +
2*Subscript[a, 6]*Subscript[b, 0]^3*Subscript[b, 2]*Subscript[b, 3] -
Subscript[a, 5]*Subscript[b, 0]^4*Subscript[b, 4] +
2*Subscript[a, 6]*Subscript[b, 0]^3*Subscript[b, 1]*Subscript[b, 4] -
Subscript[a, 6]*Subscript[b, 0]^4*Subscript[b, 5];
Use Cases
Cases[myNumerator, Subscript[a, 1]*_.]
{Subscript[a, 1]*Subscript[b, 0]^5}
Note the use of the default ( _. ). Although not necessary for your specific example, the following two examples show why this is necessary in general.
Cases[Subscript[a, 1] + myNumerator, Subscript[a, 1]*_]
{Subscript[a, 1]*Subscript[b, 0]^5}
Cases[Subscript[a, 1] + myNumerator, Subscript[a, 1]*_.]
{Subscript[a, 1], Subscript[a, 1]*Subscript[b, 0]^5}
t = Table[{
Subscript[a, n],
Cases[myNumerator, Subscript[a, n]*_.]},
{n, 6}]
Length[t[[All, 2]] // Flatten] == Length[myNumerator]
True
Bob Hanlon
---- Dominic <miliotodc at rtconline.com> wrote:
=============
Hi guys. I have an expression containing terms with subscripted "a" and "b" variables. Can someone help me devise an algorithm to select from this sum, all the terms that have a particular subscripted variable as the first term, such as all the terms that begin with an a_1 in them. For example, if I have the expression:
myNumerator=2a_1a_2b_2 + a_2 + a_1b_2b_3 + a_3b_2_b_3
then the routine would pick out the 2a_1a_2b_2 term and the a_1b_2b_3 terms.
The expression below is a particular example. So I suppose the routine might look like some version of:
Select[myNumerator, (all terms that begin with a_1 for example)]
myNumerator = Subscript[a, 1]*Subscript[b, 0]^5 -
Subscript[a, 2]*Subscript[b, 0]^4*Subscript[b, 1] +
Subscript[a, 3]*Subscript[b, 0]^3*Subscript[b, 1]^2 -
Subscript[a, 4]*Subscript[b, 0]^2*Subscript[b, 1]^3 +
Subscript[a, 5]*Subscript[b, 0]*Subscript[b, 1]^4 -
Subscript[a, 6]*Subscript[b, 1]^5 - Subscript[a, 3]*Subscript[b, 0]^4*
Subscript[b, 2] + 2*Subscript[a, 4]*Subscript[b, 0]^3*Subscript[b, 1]*
Subscript[b, 2] - 3*Subscript[a, 5]*Subscript[b, 0]^2*Subscript[b, 1]^2*
Subscript[b, 2] + 4*Subscript[a, 6]*Subscript[b, 0]*Subscript[b, 1]^3*
Subscript[b, 2] + Subscript[a, 5]*Subscript[b, 0]^3*Subscript[b, 2]^2 -
3*Subscript[a, 6]*Subscript[b, 0]^2*Subscript[b, 1]*Subscript[b, 2]^2 -
Subscript[a, 4]*Subscript[b, 0]^4*Subscript[b, 3] +
2*Subscript[a, 5]*Subscript[b, 0]^3*Subscript[b, 1]*Subscript[b, 3] -
3*Subscript[a, 6]*Subscript[b, 0]^2*Subscript[b, 1]^2*Subscript[b, 3] +
2*Subscript[a, 6]*Subscript[b, 0]^3*Subscript[b, 2]*Subscript[b, 3] -
Subscript[a, 5]*Subscript[b, 0]^4*Subscript[b, 4] +
2*Subscript[a, 6]*Subscript[b, 0]^3*Subscript[b, 1]*Subscript[b, 4] -
Subscript[a, 6]*Subscript[b, 0]^4*Subscript[b, 5];
Thanks guys,
Dominic