Re: Exploiting relationships in manipulations: example
- To: undisclosed-recipients:;
- Subject: [mg131342] Re: Exploiting relationships in manipulations: example
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Sat, 29 Jun 2013 04:58:31 -0400 (EDT)
- Approved: Steven M. Christensen <steve@smc.vnet.net>, Moderator
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- Newsgroups: comp.soft-sys.math.mathematica
- References: <20130628081233.8C1D769C6@smc.vnet.net>
tel = {2/15 Sqrt[=F0] (5 ff[0][0] + 2 Sqrt[5] ff[2][0]), -I Sqrt[(2 =F0)/15] (ff[2][-1] + ff[2][1]), 1/15 Sqrt[=F0] (10 ff[0][0] - Sqrt[5]* (Sqrt[6] ff[2][-2] + 2 ff[2][0] + Sqrt[6] ff[2][2])), Sqrt[(2 =F0)/15] (ff[2][-1] - ff[2][1]), -I Sqrt[(2 =F0)/15] (ff[2][-2] - ff[2][2]), 1/15 Sqrt[=F0] (10 ff[0][0] + Sqrt[5]* (Sqrt[6] ff[2][-2] - 2 ff[2][0] + Sqrt[6] ff[2][2]))}; FullSimplify[tel /. Cases[tel, ff[l_][m_?Negative] :> (ff[l][m] :> Conjugate[ff[l][-m]]*(-1)^m), Infinity] // Union] /. (Re[x_] - x_) :> -Im[x] {(2/15)*Sqrt[Pi]*(5*ff[0][0] + 2*Sqrt[5]*ff[2][0]), -2*Sqrt[(2*Pi)/15]*Re[ff[2][1]], -2*I*Sqrt[(2*Pi)/15]*Im[ff[2][1]], 2*I*Sqrt[(2*Pi)/15]*Im[ff[2][2]], (2/15)*Sqrt[Pi]* (Sqrt[30]*Re[ff[2][2]] + 5*ff[0][0] - Sqrt[5]*ff[2][0]), (-(2/15))*Sqrt[Pi]* (Sqrt[30]*Re[ff[2][2]] - 5*ff[0][0] + Sqrt[5]*ff[2][0])} Bob Hanlon On Fri, Jun 28, 2013 at 1:30 PM, Sune Jespersen <sunenj at gmail.com> wrote: > Thanks. I meant ff[l][m] == Conjugate[ff[l][-m]]*(-1)^m). It seems your > solution in this case produces an output fully identical (unchanged) to tel. > For example, I wanted the 2nd element of tel > I Sqrt[(2 =F0)/15] (ff[2][-1] + ff[2][1]) > to become > -2 Sqrt[(2 =F0)/15] Im(ff[2][1]). > > Sune > > On 28 Jun, 2013, at 17:42 , Bob Hanlon <hanlonr357 at gmail.com> wrote: > > tel = {2/15 Sqrt[ > =F0] (5 ff[0][0] + 2 Sqrt[5] ff[2][0]), -I Sqrt[(2 =F0)/15] (ff[2][-1] + > ff[2][1]), > 1/15 Sqrt[ > =F0] (10 ff[0][0] - > Sqrt[5] (Sqrt[6] ff[2][-2] + 2 ff[2][0] + Sqrt[6] ff[2][2])), > Sqrt[(2 =F0)/15] (ff[2][-1] - ff[2][1]), -I Sqrt[(2 =F0)/15] (ff[2][-2] - > ff[2][2]), > 1/15 Sqrt[ > =F0] (10 ff[0][0] + > Sqrt[5] (Sqrt[6] ff[2][-2] - 2 ff[2][0] + Sqrt[6] ff[2][2]))}; > > In your text you state ff[l][m] == ff[l][-m] (-1)^m > > Simplify[tel, > Union[Cases[tel, ff[_][_], Infinity]] /. > ff[l_][m_] -> (ff[l][m] == ff[l][-m] (-1)^m)] > > {(2/15)*Sqrt[Pi]*(5*ff[0][0] + > 2*Sqrt[5]*ff[2][0]), 0, (2/15)*Sqrt[Pi]* > (5*ff[0][0] - Sqrt[5]*(ff[2][0] + > Sqrt[6]*ff[2][2])), -2*Sqrt[(2*Pi)/15]* > ff[2][1], 0, (2/15)*Sqrt[Pi]* > (5*ff[0][0] - Sqrt[5]*ff[2][0] + > Sqrt[30]*ff[2][2])} > > However, in your code you use ff[l][m] == Conjugate[ff[l][-m]]*(-1)^m) > > Simplify[tel, > Union[Cases[tel, ff[_][_], Infinity]] /. > ff[l_][m_] -> (ff[l][m] == Conjugate[ff[l][-m]]*(-1)^m)] > > {(2/15)*Sqrt[Pi]*(5*ff[0][0] + > 2*Sqrt[5]*ff[2][0]), (-I)*Sqrt[(2*Pi)/15]* > (ff[2][-1] + ff[2][1]), (1/15)*Sqrt[Pi]* > (10*ff[0][0] - Sqrt[5]*(Sqrt[6]*ff[2][-2] + > 2*ff[2][0] + Sqrt[6]*ff[2][2])), > Sqrt[(2*Pi)/15]*(ff[2][-1] - ff[2][1]), > (-I)*Sqrt[(2*Pi)/15]*(ff[2][-2] - ff[2][2]), > (1/15)*Sqrt[Pi]*(10*ff[0][0] + > Sqrt[5]*(Sqrt[6]*ff[2][-2] - 2*ff[2][0] + > Sqrt[6]*ff[2][2]))} > > % === tel > > True > > > Bob Hanlon > > > > On Fri, Jun 28, 2013 at 4:12 AM, Sune <sunenj at gmail.com> wrote: > >> Hey all. >> >> I'm trying to get Mathematica to simplify a list of expressions involving >> complex symbolic variables with certain relations among them, and to take >> advantage of these relations while simplifying. >> >> To be more concrete, I could have a list such as >> >> tel={2/15 Sqrt[\[Pi]] (5 ff[0][0]+2 Sqrt[5] ff[2][0]),-I Sqrt[(2 >> \[Pi])/15] (ff[2][-1]+ff[2][1]),1/15 Sqrt[\[Pi]] (10 ff[0][0]-Sqrt[5] >> (Sqrt[6] ff[2][-2]+2 ff[2][0]+Sqrt[6] ff[2][2])),Sqrt[(2 \[Pi])/15] >> (ff[2][-1]-ff[2][1]),-I Sqrt[(2 \[Pi])/15] (ff[2][-2]-ff[2][2]),1/15 >> Sqrt[\[Pi]] (10 ff[0][0]+Sqrt[5] (Sqrt[6] ff[2][-2]-2 ff[2][0]+Sqrt[6] >> ff[2][2]))} >> >> However, there's a conjugate symmetry among the variables ff[l][m] that >> would enable a simpler looking expression. Specifically, ff[l][m]=ff[l][-m] >> (-1)^m, and I would like to have Mathematica take advantage of that and >> reduce expressions such as >> >> I Sqrt[(2 \[Pi])/15] (ff[2][-1]+ff[2][1]) >> >> to >> >> -Sqrt[(2 \[Pi])/15] 2*Im(ff[2][1]) >> >> >> I've tried various combinations of ComplexExpand and FullSimplify; >> >> ComplexExpand[ >> FullSimplify[tel, >> And @@ Flatten[ >> Table[ff[l][m] == Conjugate[ff[l][-m]]*(-1)^m, {l, 0, 4, 2}, {m, >> 0, l}]]], Flatten[Table[ff[l][m] , {l, 2, 4, 2}, {m, -l, l}]]] >> >> (And also version with the two outermost commands interchanged) >> but it doesn't do what I want. Of course, it may be that the rules for >> simplify are such that my sought expression is not considered a simpler >> version of the same expression. Could that be the case? Otherwise, I'd >> appreciate any suggestions on how to implement relations such as these in >> manipulation of expressions. >> >> Thanks, >> Sune >> >> > >
- References:
- Exploiting relationships in manipulations: example with conjugate relationship
- From: Sune <sunenj@gmail.com>
- Exploiting relationships in manipulations: example with conjugate relationship