Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.


Sune
Posts:
11
Registered:
8/9/12


Re: Exploiting relationships in manipulations: example with conjugate relationship
Posted:
Jun 29, 2013 4:52 AM


Not quite. This is what I wanted
ComplexExpand[ FullSimplify[ tel /. (Cases[tel, ff[l_][m_?Negative] :> (ff[l][m] > Conjugate[ff[l][m]] (1)^m), Infinity] // Union)], ff[_][m_ /; UnsameQ[m, 0]]]
{2/3 Sqrt[=CF=80] ff[0][0] + 4/3 Sqrt[=CF=80/5] ff[2][0], 2 Sqrt[(2 =CF=80)/15] Im[ff[2][1]], 2 Sqrt[(2 =CF=80)/15] Re[ff[2][2]] + 2/3 Sqrt[=CF=80] ff[0][0]  2/3 Sqrt[=CF=80/5] ff[2][0], 2 Sqrt[(2 =CF=80)/15] Re[ff[2][1]], 2 Sqrt[(2 =CF=80)/15] Im[ff[2][2]], 2 Sqrt[(2 =CF=80)/15] Re[ff[2][2]] + 2/3 Sqrt[=CF=80] ff[0][0]  2/3 Sqrt[=CF=80/5] ff[2][0]}
Thanks for pointing me in the right direction. Isn't there a more general way of getting Mathematica to take advantage of relations as these? Sune
On 28 Jun, 2013, at 21:21 , Bob Hanlon <hanlonr357@gmail.com> wrote:
> tel = {2/15 Sqrt[=CF=80] (5 ff[0][0] + 2 Sqrt[5] ff[2][0]), > I Sqrt[(2 =CF=80)/15] (ff[2][1] + ff[2][1]), > 1/15 Sqrt[=CF=80] (10 ff[0][0]  Sqrt[5]* > (Sqrt[6] ff[2][2] + 2 ff[2][0] + Sqrt[6] ff[2][2])), > Sqrt[(2 =CF=80)/15] (ff[2][1]  ff[2][1]), > I Sqrt[(2 =CF=80)/15] (ff[2][2]  ff[2][2]), > 1/15 Sqrt[=CF=80] (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@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 =CF=80)/15] (ff[2][1] + ff[2][1]) > to become > 2 Sqrt[(2 =CF=80)/15] Im(ff[2][1]). > > Sune > > On 28 Jun, 2013, at 17:42 , Bob Hanlon <hanlonr357@gmail.com> wrote: > >> tel = {2/15 Sqrt[ >> =CF=80] (5 ff[0][0] + 2 Sqrt[5] ff[2][0]), I Sqrt[(2 =CF=80)/15] (ff[2][1] + >> ff[2][1]), >> 1/15 Sqrt[ >> =CF=80] (10 ff[0][0]  >> Sqrt[5] (Sqrt[6] ff[2][2] + 2 ff[2][0] + Sqrt[6] ff[2][2])), >> Sqrt[(2 =CF=80)/15] (ff[2][1]  ff[2][1]), I Sqrt[(2 =CF=80)/15] (ff[2][2]  >> ff[2][2]), >> 1/15 Sqrt[ >> =CF=80] (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@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 >> >> > >



