Re: Selecting Element from List via Pattern Matching
- To: mathgroup at smc.vnet.net
- Subject: [mg89435] Re: Selecting Element from List via Pattern Matching
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Mon, 9 Jun 2008 02:30:47 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <g2fugh$2kq$1@smc.vnet.net>
immanuel.bloch at googlemail.com wrote:
> I am trying to extract from a Power Series all elements with a
> certain exponent, e.g.
> let us say I have generated a list via
>
> t = Apply[List, Expand[(Sum[Subscript[a, i], {i, 1, 5}])^3]]
>
> How can I then extract all terms with e.g. a_2^2 in it or any other
> exponent?
>
> I have tried something like
>
> Cases[t, Times[_, Power[Subscript[a,2],2]]]
>
> but this somehow only works with the exponent n=1 and no others...
<snip>
Could you provide an example of what you mean by that? (That is an
actual example of what is returned by Mathematica versus what you have
expected to get.) For what I have understood of your query, there are no
problems with the following:
In[1]:= t = Apply[List, Expand[(Sum[Subscript[a, i], {i, 1, 5}])^3]]
Out[1]=
3 2 2 3 2
{a , 3 a a , 3 a a , a , 3 a a ,
1 1 2 1 2 2 1 3
2 2 2
6 a a a , 3 a a , 3 a a , 3 a a ,
1 2 3 2 3 1 3 2 3
3 2 2
a , 3 a a , 6 a a a , 3 a a ,
3 1 4 1 2 4 2 4
2
6 a a a , 6 a a a , 3 a a ,
1 3 4 2 3 4 3 4
2 2 2 3
3 a a , 3 a a , 3 a a , a ,
1 4 2 4 3 4 4
2 2
3 a a , 6 a a a , 3 a a ,
1 5 1 2 5 2 5
2
6 a a a , 6 a a a , 3 a a ,
1 3 5 2 3 5 3 5
6 a a a , 6 a a a , 6 a a a ,
1 4 5 2 4 5 3 4 5
2 2 2 2
3 a a , 3 a a , 3 a a , 3 a a ,
4 5 1 5 2 5 3 5
2 3
3 a a , a }
4 5 5
In[2]:= Cases[t, Times[_, Power[Subscript[a, 2], 2]]]
Out[2]=
2 2 2 2
{3 a a , 3 a a , 3 a a , 3 a a }
1 2 2 3 2 4 2 5
In[3]:= Cases[t, x_ /; ! FreeQ[x, Power[Subscript[a, 2], 2]]]
Out[3]=
2 2 2 2
{3 a a , 3 a a , 3 a a , 3 a a }
1 2 2 3 2 4 2 5
In[4]:= Cases[t, x_ /; ! FreeQ[x, Power[Subscript[a, 2], _]]]
Out[4]=
2 3 2 2
{3 a a , a , 3 a a , 3 a a ,
1 2 2 2 3 2 4
2
3 a a }
2 5
In[5]:= Cases[t, x_ /; ! FreeQ[x, Subscript[a, 2]]]
Out[5]=
2 2 3
{3 a a , 3 a a , a , 6 a a a ,
1 2 1 2 2 1 2 3
2 2 2
3 a a , 3 a a , 6 a a a , 3 a a ,
2 3 2 3 1 2 4 2 4
2
6 a a a , 3 a a , 6 a a a ,
2 3 4 2 4 1 2 5
2
3 a a , 6 a a a , 6 a a a ,
2 5 2 3 5 2 4 5
2
3 a a }
2 5
Regards,
-- Jean-Marc