MathGroup Archive 2006

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

Search the Archive

Re: Re: Trigonometric simplification

  • To: mathgroup at smc.vnet.net
  • Subject: [mg68906] Re: [mg68881] Re: Trigonometric simplification
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Wed, 23 Aug 2006 07:15:20 -0400 (EDT)
  • References: <ecbnnc$r29$1@smc.vnet.net><ecc2pn$ajl$1@smc.vnet.net> <200608220920.FAA26920@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On 22 Aug 2006, at 11:20, carlos at colorado.edu wrote:

>> Hi Carlos,
>>
>> Using TrigReduce before Simplify will do it:
>>
>> r = Tan[a]^2/(Sec[a]^2)^(3/2);
>> Simplify[TrigReduce[r], Assumptions -> {a > 0, Sec[a] > 0}]
>>
>> --> Cos[a]*Sin[a]^2
>>
>> Best regards,
>> Jean-Marc
>
> Thanks, that works perfectly.  Actually Sec[a]>0 as assumption
> is sufficient. This is correct from the problem source, since
> the angle is in the range (-Pi/2,Pi/2)
>
> Here is a related question.  How can I get Mathematica to pass from
>
>    d = 2 + 3*Cos[a] + Cos[3*a]     (* leaf count 10 *)
>
> to
>
>     1 + 2*Cos[a]^3                  (* leaf count 8 *)
>
> TrigExpand[d] gives
>
>    2 + 3*Cos[a] + Cos[a]^3 - 3*Cos[a]*Sin[a]^2
>
> Applying Simplify to that yields  2 + 3*Cos[a] + Cos[3*a]  so we are
> back to the beggining.
>

You seem to be very keen on getting Mathematica to perform some  
pretty unorthodox sort of mathematics. Please note:

d = 2 + 3*Cos[a] + Cos[3*a] ;


e=1+2*Cos[a]^3;


d/.a->Pi/2

2

e/.a->Pi/2

1

Actually, the answer you want is double the one you posted, that is  
4*Cos[a]^3 + 2. I think the only way to get it is to define a  
complexity function which will penalise (with sufficient severity)  
multiple angles in "simplified" answers, while also trying to  
minimise LeafCount.  Here is such one such function:

f[d_] := 10*Plus @@ Cases[{d}, Cos[n_ x_] | Sin[n_ x_] -> n, Infinity] 
+LeafCount[d]

For example:


f[d]

40

f[e]

8


With this ComplexityFunction we get:


FullSimplify[d, ComplexityFunction -> f]

4*Cos[a]^3 + 2


The reason why LeafCount alone is insufficient and why you need a  
factor such as 10, is that it is not enough that the final output has  
a lower value of ComplexityFunction but also all the intermediate  
expression that Mathematica tries before arriving at that output.  
This makes finding the right function often quite tricky.

Andrzej Kozlowski






  • Prev by Date: General--Difficulties in Understanding Mathematica Syntax
  • Next by Date: Re: Re: Trigonometric simplification
  • Previous by thread: Re: Re: Trigonometric simplification
  • Next by thread: Re: Trigonometric simplification