I can't reproduce this simple example from Habrat, 2010 ("Mathematica : a Problem-Centered Approach"). It is supposed to demonstrate the functionality of FullSimplify, however I can't make it work in Mathematica 9. When I try this:
FullSimplify[ Cot[ (5 Pi)/22 ] + 4 Sin[ (2 Pi)/11 ]]
Mathematica 9 returns the input unchanged:
Cot[ (5 Pi)/22 ] + 4 Sin[ (2 Pi)/11 ]
As shown in the book however, I would rather have expected Sqrt[11]. On the other trying
FullSimplify[ Cot[ (5 Pi)/22 ] + 4 Sin[ (2 Pi)/11 ] == Sqrt[11] ]
Mathematica 9 returns
True
so why not return Sqrt[11] in the first place?
Answer
Before Mathematica 9 FullSimplify[ Cot[ (5 Pi)/22 ] + 4 Sin[ (2 Pi)/11 ]] yielded simply Sqrt[11] while in the newest version we should play a bit with ComplexityFunction. For some reason the ComplexityFunction behavior in FullSimplify has been changed. One can guess that it is just a different gauge of this option. To shed light on this issue let's define the following function :
cfs[n_][e_] := n Count[e, _Sin, {0, Infinity}] + LeafCount[e]
After playing a bit we can figure out the threshold values :
FullSimplify[ Cot[(5 Pi)/22] + 4 Sin[(2 Pi)/11], ComplexityFunction -> #] & /@ {
cfs[5], cfs[6], cfs[37], cfs[38] } // Column

In Mathematica 8 and earlier all these complexity functions yield Sqrt[11]. We could find this threshold therein :
FullSimplify[Cot[(5 Pi)/22] + 4 Sin[(2 Pi)/11], ComplexityFunction -> #] & /@ {
cfs[-10], cfs[-9]} // Column

I.e. we have a direct jump between the final results in earlier versions while in ver.9 there are intermediate values where cfs provided an intermediate result. So in the newer version ComplexityFunction is more customizable and therfore it is advantageous.
Another possibility in ver. 9 to get Sqrt[11] might be e.g. :
FullSimplify[ Cot[(5 Pi)/22] + 4 Sin[(2 Pi)/11], TransformationFunctions -> RootReduce]
Comments
Post a Comment