the temperamental loop or something wrong with my expression

• To: mathgroup at smc.vnet.net
• Subject: [mg80534] the temperamental loop or something wrong with my expression
• From: Jack Yu <Jack.Yu at astro.cf.ac.uk>
• Date: Fri, 24 Aug 2007 02:06:10 -0400 (EDT)

```Hi
I have defined a function whose value I want to know  for a range of two of its arguments.  So to save time, I use a Do loop.  However, after a few loops, it just doesn't produce any more result, even though at the top it still says: 'Running ...'. I know that when I do this by manually changing the arguments without using a Do loop, they all evaluate.  So I thought it's to do with Do, and after reading somewhere in this forum that For and While are faster, I tried them as well, but they still become stuck after a few loops.  The best I can do using a loop is to split the range of the variables into smaller ones; for some reason, this sometimes work, but sometimes it still doesn't work.  The quickest I can do is actually just do them individually without using a loop.  I find this a bit puzzling and would really appreciate if anyone can help me with this.

The Notebook is here:
***********************************************
In[1]:=
delconj[eq_] :=
Apply[Plus,(Conjugate[
Simplify[
Table[Expand[eq][[i]],{i,1,
Length[Expand[eq]]}]]]) /. {Conjugate[x_]\[Rule]x}];

In[2]:=
conjSphericalHarmonicY[l_,m_,\[Theta]_,\[Phi]_]:=
delconj[1+SphericalHarmonicY[l,m,\[Theta],\[Phi]]]-1;

In[3]:=
conjY[eq_]:= Conjugate[eq] /. Conjugate[x_]\[Rule]x;

In[4]:=
expandaa[eq_]:=(aaa=eq;bbb=CoefficientList[aaa,f];
Apply[Plus,Table[bbb[[i]]f^(i-1),{i,1,Length[bbb]}]]);

In[5]:=
\!\(\(approxF\[Alpha]\[Alpha][f_, \[Theta]_, \[Phi]_] :=
1\/12\ \((Cos[\[Theta]]\^2\ \((3 + Cos[4\ \[Phi]])\) +
4\ \((1 +
Cos[\[Theta]]\^4)\)\ Cos[\[Phi]]\^2\ Sin[\[Phi]]\^2)\)\ f\
\^2 + \(1\/147456\) \((\((\(-11278\) - 9307\ Cos[2\ \[Theta]] +
94\ Cos[4\ \[Theta]] + 11\ Cos[6\ \[Theta]] +
128\ \((\(-5\) + Cos[2\ \[Theta]])\)\ Cos[
2\ \[Phi]]\ Sin[\[Theta]]\^4 -
64\ \((\(-37\) + 5\ Cos[2\ \[Theta]])\)\ Cos[
4\ \[Phi]]\ Sin[\[Theta]]\^4 -
32\ Cos[6\ \[Phi]]\ Sin[\[Theta]]\^6)\)\ f\^4)\);\)\)

In[7]:=
\!\(\(approxF\[Alpha]\[Beta][f_, \[Theta]_, \[Phi]_] :=
1\/384\ \((\(-35\) - 28\ Cos[2\ \[Theta]] - Cos[4\ \[Theta]] +
8\ Sin[\[Theta]]\^4\ \((Cos[
4\ \[Phi]] + \@3\ Sin[
4\ \[Phi]])\))\)\ f\^2 + \(-\(\(1\/6144\) \((\
\[ImaginaryI]\ \((16\ \@3\ Cos[
5\ \[Phi]]\ Sin[\[Theta]]\^5 - \@3\ Cos[\[Phi]]\ \
\((42\ Sin[\[Theta]] + 27\ Sin[3\ \[Theta]] +
Sin[5\ \[Theta]])\) + \((42\ Sin[\[Theta]] +
27\ Sin[3\ \[Theta]] +
Sin[5\ \[Theta]])\)\ Sin[\[Phi]] +
32\ \((7 + Cos[2\ \[Theta]])\)\ Sin[\[Theta]]\^3\ Sin[
3\ \[Phi]] +
16\ Sin[\[Theta]]\^5\ Sin[
5\ \[Phi]])\)\ f\^3)\)\)\) + \(1\/147456\) \((\((5702 \
- 86\ Cos[4\ \[Theta]] - 7\ Cos[6\ \[Theta]] -
16\ Sin[\[Theta]]\^4\ \((\(-41\)\ Cos[2\ \[Phi]] +
95\ Cos[4\ \[Phi]] +
2\ Cos[
6\ \[Phi]]\ Sin[\[Theta]]\^2 + \@3\ \((41\ Sin[
2\ \[Phi]] + 95\ Sin[4\ \[Phi]])\))\) +
Cos[2\ \[Theta]]\ \((4631 +
16\ Sin[\[Theta]]\^4\ \((\(-Cos[2\ \[Phi]]\) +
7\ Cos[
4\ \[Phi]] + \@3\ \((Sin[2\ \[Phi]] +
7\ Sin[
4\ \[Phi]])\))\))\))\)\ f\^4)\);\)\)

In[8]:=
a\[Alpha]\[Alpha][f_,l_,m_]:=
Integrate[
Expand[Simplify[
Sin[\[Theta]]*
conjSphericalHarmonicY[l,
m,\[Theta],\[Phi]]approxF\[Alpha]\[Alpha][
f,\[Theta],\[Phi]]]],{\[Theta],0,Pi},{\[Phi],0,2Pi}];

In[10]:=
a\[Alpha]\[Beta][f_,l_,m_]:=
Integrate[
Expand[Simplify[
Sin[\[Theta]]*
conjSphericalHarmonicY[l,m,\[Theta],\[Phi]]approxF\[Alpha]\[Beta][
f,\[Theta],\[Phi]]]],{\[Theta],0,Pi},{\[Phi],0,2Pi}];

In[12]:=
\!\(\(a\[Beta]\[Beta][f_, l_, m_] :=
Exp[\(-I\)*m*\((\(2  Pi\)\/3)\)] a\[Alpha]\[Alpha][f, l, m];\)\)

In[13]:=
\!\(\(a\[Gamma]\[Gamma][f_, l_, m_] :=
Exp[\(-I\)*m*\((\(4  Pi\)\/3)\)] a\[Alpha]\[Alpha][f, l, m];\)\)

In[15]:=
\!\(\(a\[Beta]\[Gamma][f_, l_, m_] :=
Exp[\(-I\)*m*\((\(2  Pi\)\/3)\)] a\[Alpha]\[Beta][f, l, m];\)\)

In[17]:=
\!\(\(a\[Gamma]\[Alpha][f_, l_, m_] :=
Exp[\(-I\)*m*\((\(4  Pi\)\/3)\)] a\[Alpha]\[Beta][f, l, m];\)\)

In[19]:=
a\[Alpha]\[Gamma][f_,l_,m_]:= (-1)^m*conjY[a\[Alpha]\[Beta][f,l,m]];

In[21]:=
\!\(\(a\[Beta]\[Alpha][f_, l_, m_] := \((\(-1\))\)^m*
Exp[\(-I\)*m*\((\(2  Pi\)\/3)\)] conjY[a\[Alpha]\[Beta][f, l, m]];\)\)

In[23]:=
\!\(\(a\[Gamma]\[Beta][f_, l_, m_] := \((\(-1\))\)^m*
Exp[\(-I\)*m*\((\(4  Pi\)\/3)\)] conjY[a\[Alpha]\[Beta][f, l, m]];\)\)

In[24]:=
\!\(\(aET[f_, l_,
m_] := \ \(1\/\(3 \@ 2\)\) \((a\[Alpha]\[Alpha][f, l, m] -
2  a\[Beta]\[Beta][f, l, m] + a\[Gamma]\[Gamma][f, l, m] +
a\[Alpha]\[Beta][f, l, m] - 2  a\[Beta]\[Alpha][f, l, m] +
a\[Gamma]\[Beta][f, l, m] -
2  a\[Beta]\[Gamma][f, l, m] + \((a\[Alpha]\[Gamma][f, l, m] +
a\[Gamma]\[Alpha][f, l, m])\))\);\)\)

In[34]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,6,2]]]]]

Out[34]=
\!\({53.921514`8.183307071248283\ Second, \(\((3\ \[ImaginaryI] - \@3)\)\ \
f\^4\ \@\(\[Pi]\/910\)\)\/4752}\)

Do[Print["aET(f,",l,m,")=",
expandaa[FullSimplify[ComplexExpand[aET[f,l,m]]]]],{l,0,6},{m,0,l}]

aET(f,\[InvisibleSpace]0\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]1\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]1\[InvisibleSpace]1\
\[InvisibleSpace]")="\[InvisibleSpace]\(1\/168\ \((\(-\[ImaginaryI]\) + \
\@3)\)\ f\^3\ \@\[Pi]\)\),
SequenceForm[ "aET(f,", 1, 1, ")=",
Times[
Rational[ 1, 168],
Plus[
Complex[ 0, -1],
Power[ 3,
Rational[ 1, 2]]],
Power[ f, 3],
Power[ Pi,
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]2\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]2\[InvisibleSpace]1\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]2\[InvisibleSpace]2\
\[InvisibleSpace]")="\[InvisibleSpace]\(1\/864\ \((\(-3\)\ \[ImaginaryI] + \
\@3)\)\ f\^4\ \@\(\[Pi]\/5\)\)\),
SequenceForm[ "aET(f,", 2, 2, ")=",
Times[
Rational[ 1, 864],
Plus[
Complex[ 0, -3],
Power[ 3,
Rational[ 1, 2]]],
Power[ f, 4],
Power[
Times[
Rational[ 1, 5], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]3\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]3\[InvisibleSpace]1\
\[InvisibleSpace]")="\[InvisibleSpace]\(1\/72\ \((\(-\[ImaginaryI]\) + \@3)\)\
\ f\^3\ \@\(\[Pi]\/14\)\)\),
SequenceForm[ "aET(f,", 3, 1, ")=",
Times[
Rational[ 1, 72],
Plus[
Complex[ 0, -1],
Power[ 3,
Rational[ 1, 2]]],
Power[ f, 3],
Power[
Times[
Rational[ 1, 14], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]3\[InvisibleSpace]2\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]3\[InvisibleSpace]3\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]4\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]4\[InvisibleSpace]1\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]4\[InvisibleSpace]2\
\[InvisibleSpace]")="\[InvisibleSpace]\(\[ImaginaryI]\ \((\[ImaginaryI] + \
\@3)\)\ f\^4\ \@\(\[Pi]\/5\)\)\/3168\),
SequenceForm[ "aET(f,", 4, 2, ")=",
Times[
Complex[ 0,
Rational[ 1, 3168]],
Plus[
Complex[ 0, 1],
Power[ 3,
Rational[ 1, 2]]],
Power[ f, 4],
Power[
Times[
Rational[ 1, 5], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]4\[InvisibleSpace]3\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]4\[InvisibleSpace]4\
\[InvisibleSpace]")="\[InvisibleSpace]\(-\(\(17\ \[ImaginaryI]\ \((\(-\
\[ImaginaryI]\) + \@3)\)\ f\^4\ \@\(\[Pi]\/35\)\)\/3168\)\)\),
SequenceForm[ "aET(f,", 4, 4, ")=",
Times[
Complex[ 0,
Rational[ -17, 3168]],
Plus[
Complex[ 0, -1],
Power[ 3,
Rational[ 1, 2]]],
Power[ f, 4],
Power[
Times[
Rational[ 1, 35], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]5\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]5\[InvisibleSpace]1\
\[InvisibleSpace]")="\[InvisibleSpace]\(\((\(-\[ImaginaryI]\) + \@3)\)\ f\^3\ \
\@\(\[Pi]\/55\)\)\/1008\),
SequenceForm[ "aET(f,", 5, 1, ")=",
Times[
Rational[ 1, 1008],
Plus[
Complex[ 0, -1],
Power[ 3,
Rational[ 1, 2]]],
Power[ f, 3],
Power[
Times[
Rational[ 1, 55], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]5\[InvisibleSpace]2\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]5\[InvisibleSpace]3\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]5\[InvisibleSpace]4\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]5\[InvisibleSpace]5\
\[InvisibleSpace]")="\[InvisibleSpace]\(1\/72\ \((3 + \[ImaginaryI]\ \@3)\)\ \
f\^3\ \@\(\[Pi]\/154\)\)\),
SequenceForm[ "aET(f,", 5, 5, ")=",
Times[
Rational[ 1, 72],
Plus[ 3,
Times[
Complex[ 0, 1],
Power[ 3,
Rational[ 1, 2]]]],
Power[ f, 3],
Power[
Times[
Rational[ 1, 154], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]6\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

Do[Print["aET(f,",l,m,")=",
expandaa[FullSimplify[ComplexExpand[aET[f,l,m]]]]],{l,6,8},{m,0,l}]

aET(f,\[InvisibleSpace]6\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]6\[InvisibleSpace]1\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]6\[InvisibleSpace]2\
\[InvisibleSpace]")="\[InvisibleSpace]\(\((3\ \[ImaginaryI] - \@3)\)\ f\^4\ \
\@\(\[Pi]\/910\)\)\/4752\),
SequenceForm[ "aET(f,", 6, 2, ")=",
Times[
Rational[ 1, 4752],
Plus[
Complex[ 0, 3],
Times[ -1,
Power[ 3,
Rational[ 1, 2]]]],
Power[ f, 4],
Power[
Times[
Rational[ 1, 910], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]6\[InvisibleSpace]3\[InvisibleSpace])=\[InvisibleSpace]\
0

\!\(\*
InterpretationBox[\("aET(f,"\[InvisibleSpace]6\[InvisibleSpace]4\
\[InvisibleSpace]")="\[InvisibleSpace]\(-\(\(\[ImaginaryI]\ \((\(-\
\[ImaginaryI]\) + \@3)\)\ f\^4\ \@\(\[Pi]\/91\)\)\/3168\)\)\),
SequenceForm[ "aET(f,", 6, 4, ")=",
Times[
Complex[ 0,
Rational[ -1, 3168]],
Plus[
Complex[ 0, -1],
Power[ 3,
Rational[ 1, 2]]],
Power[ f, 4],
Power[
Times[
Rational[ 1, 91], Pi],
Rational[ 1, 2]]]],
Editable->False]\)

aET(f,\[InvisibleSpace]6\[InvisibleSpace]5\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]6\[InvisibleSpace]6\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]7\[InvisibleSpace]0\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]7\[InvisibleSpace]1\[InvisibleSpace])=\[InvisibleSpace]\
0

aET(f,\[InvisibleSpace]7\[InvisibleSpace]2\[InvisibleSpace])=\[InvisibleSpace]\
0

\$Aborted

In[38]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,7,3]]]]]

Out[38]=
{54.478757 Second,0}

In[39]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,7,4]]]]]

Out[39]=
{76.970704 Second,0}

In[40]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,7,5]]]]]

Out[40]=
{60.329395 Second,0}

In[42]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,7,6]]]]]

Out[42]=
{32.853831 Second,0}

In[43]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,7,7]]]]]

Out[43]=
{32.139781 Second,0}

In[44]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,0]]]]]

Out[44]=
{69.877317 Second,0}

In[45]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,1]]]]]

Out[45]=
{91.335676 Second,0}

In[46]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,2]]]]]

Out[46]=
{88.233249 Second,0}

In[47]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,3]]]]]

Out[47]=
{77.997297 Second,0}

In[48]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,4]]]]]

Out[48]=
{79.343742 Second,0}

In[49]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,5]]]]]

Out[49]=
{62.095294 Second,0}

In[50]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,6]]]]]

Out[50]=
{49.984301 Second,0}

In[51]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,7]]]]]

Out[51]=
{33.587836 Second,0}

In[52]:=
AbsoluteTiming[expandaa[FullSimplify[ComplexExpand[aET[f,8,8]]]]]

Out[52]=
{32.811034 Second,0}

********************************************

aET[f,l,m] is the function I want to evaluate for {l,0,8} and for each l, {m,-l,l}.  As can be seen in the first Do loop, it stopped at aET[f,6,0]; I deleted 'Aborted'. And as can be seen in the second Do loop, it stopped at aET[f,7,2].  I finished the rest just by using the expression expandaa[FullSimplify[ComplexExpand[aET[f,l,m]]]] again and again.  When I was doing this I noticed that the above expression sometimes gets stuck and I have to do it one step at a time. e.g aET[f,l,m], then ComplexExpand[aET[f,l,m]], then FullSimplify[ComplexExpand[aET[f,l,m]]] and so on, then the whole expression will work afterwards.  This is also very strange.

```

• Prev by Date: Re: Re: fit a BinomialDistribution to exptl data?
• Next by Date: Re: Specifying x-range for ListPlot
• Previous by thread: Re: Solving Nonlinear Equations
• Next by thread: Re: the temperamental loop or something wrong with my expression