[Date Index]
[Thread Index]
[Author Index]
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**
| |