MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: questions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77533] Re: [mg77513] questions
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Tue, 12 Jun 2007 01:22:15 -0400 (EDT)
  • References: <200706110824.EAA20819@smc.vnet.net>

First, note that in Mathematica 6.0 we have:

ff = Pi*Cos[(1/7)*Pi]*Cos[(2/7)*Pi]*
     (Cos[(3/7)*Pi]/Sin[Pi*Cos[(1/7)*Pi]*
        Cos[(2/7)*Pi]*Cos[(3/7)*Pi]]);

FullSimplify[ff]

(1/8)*Pi*Csc[Pi/8]

FunctionExpand[%]

Pi/(4*Sqrt[2 - Sqrt[2]])

Second, simply adding transformations to TransformationFunctions does  
not guarantee that the simplification you desire will be made because  
FullSimplify has to generate by means of the transformation functions  
a chain of expressions, beginning withe the input and ending with the  
desired one, and moreover, there is some limit on how much the  
complexity of generated expressions can increase before they are  
abandoned. (I think for Simplify it is not allowed to increase at  
all). I think that this also explains why in Mathematica 5.2 adding  
FullSimplify to TransformationFunctions works in thi case. What  
happens, I think, is this. Mathematica applies TrigReduce (which is  
one of the TransformationFunctions it uses Automatically)  to ff:

fff = TrigReduce[ff]

(1/4)*(Pi + Pi*Cos[(2*Pi)/7] + Pi*Cos[(4*Pi)/7] +
    Pi*Cos[(6*Pi)/7])*Csc[Pi/4 + (1/4)*Pi*Cos[(2*Pi)/7] +
     (1/4)*Pi*Cos[(4*Pi)/7] + (1/4)*Pi*Cos[(6*Pi)/7]]

Now, this has much higher ComplexityFunction than fff:

LeafCount/@{ff,fff}

{41,70}

and would normally be abandoned after applying to it some of the  
other transformation functions. However, one of the  
TransformationFunctions is FullSimplify and when it is applied this  
happens:

FullSimplify[fff]

(1/8)*Pi*Csc[Pi/8]

Now, of course this leaves open the question: why was FullSimplify  
able to simplify this? That I do not know, but I think that more than  
one transformation used by FullSimplify was needed to do this, which  
is why this would not have happened if FullSimplify was not one of  
the TransformationFunctions. In other words, this time it is not the  
question of the transformations that are being used, since  
FullSimplify knows enough transformation to simplify this expression,  
but of the "length of chain of transformed expressions"  used. With  
FullSimplify as a transformation function this chain is in effect  
longer.

So, (assuming that I am right) for me, the interesting question that  
arises from all this is: what has exactly changed in Mathematica 6  
that makes it possible to get the desired answer without adding  
FullSimplify to the TransformationFunctions? There seem to be just  
two possibilities. One is that a new function has been added to  
FullSimplify default transformation functions, or that a new  
"standard form" is being used for certain expressions. The other  
possibility is that the actual way in which FullSimplify works has  
been altered, e.g. perhaps longer "chains of transformations" are  
being allowed. Personally I would put my money on the former.

Andrzej Kozlowski








On 11 Jun 2007, at 17:24, dimitris wrote:

> Hello.
>
> This appeared recently, but sice there was
> no response, I make one more attempt.
>
> ff = Pi*Cos[1/7*Pi]*Cos[2/7*Pi]*
>   Cos[3/7*Pi]/Sin[Pi*Cos[1/7*Pi]*Cos[2/7*Pi]*Cos[3/7*Pi]];
>
> I try to simplify ff.
>
> In[194]:=
> o1=FullSimplify[Together[TrigToExp[ff]]]
> Out[194]=
> (1/4)*Sqrt[1 + 1/Sqrt[2]]*Pi
>
> or as an another way take
>
> In[199]:=
> o2=FullSimplify[TrigFactor //@ ff]
> Out[199]=
> (1/8)*Pi*Csc[Pi/8]
>
> o1 was obtained by FullSimplify[Together[TrigToExp[ff]]].
>
> Why doesn't
>
> In[206]:=
> FullSimplify[ff, TransformationFunctions -> {Automatic, TrigToExp,
> Together}]
>
> Out[206]=
> Pi*Cos[Pi/7]*Cos[(2*Pi)/7]*Cos[(3*Pi)/7]*Csc[Pi*Cos[Pi/7]*Cos[(2*Pi)/
> 7]*Cos[(3*Pi)/7]]
>
> do the same thing? What I miss here?
>
> Also, why the following does suceed?
>
> In[213]:=
> FullSimplify[ff, TransformationFunctions -> {Automatic,
> FullSimplify}]
> Out[213]=
> (1/8)*Pi*Csc[Pi/8]
>
> Thank you very much!
>
>



  • References:
    • questions
      • From: dimitris <dimmechan@yahoo.com>
  • Prev by Date: Difference between Needs and using the second argument of BeginPackage
  • Next by Date: Re: Re: Re-defining Log over it's branch cut
  • Previous by thread: questions
  • Next by thread: Re: questions