Re: Expanding powers of cosine
- To: mathgroup at smc.vnet.net
- Subject: [mg84239] Re: Expanding powers of cosine
- From: David Bailey <dave at Remove_Thisdbailey.co.uk>
- Date: Fri, 14 Dec 2007 23:17:55 -0500 (EST)
- References: <fjq18t$nl2$1@smc.vnet.net>
michael.p.croucher at googlemail.com wrote: > Hi > > I would like to express even powers of Cos[x] in terms of powers of > Sin[x] using the identity Sin[x]^2+Cos[x]^2 = 1. For example > > Cos[x]^4 = 1 - 2 Sin[x]^2 + Sin[x]^4 > > I could not get any of Mathematica's built in functions to do this for > me so I created my own rule: > > expandCosn[z_] := Module[{s, res}, > s = Cos[x]^n_ :> (1 - Sin[x]^2) Cos[x]^(n - 2) ; > res = z //. s; > Expand[res] > ] > > which works fine: > > In[14]:= expandCosn[Cos[x]^4] > > Out[14]= 1 - 2 Sin[x]^2 + Sin[x]^4 > > My question is - have I missed something? Is there an easier way to > do this? > > Cheers, > Mike > I would add a condition /;(IntegerQ[n]&&n>1) to the delayed rule, just to make it a little more robust (you could get an infinite recursion with Cos[x]^(3/2), for example), but otherwise your code looks fine - simpler than some of the alternatives on offer! David Bailey http://www.dbaileyconsultancy.co.uk