Re: Semi-symbolically Semi-numerically
- To: mathgroup at smc.vnet.net
- Subject: [mg113478] Re: Semi-symbolically Semi-numerically
- From: Leonid Shifrin <lshifr at gmail.com>
- Date: Sat, 30 Oct 2010 04:38:21 -0400 (EDT)
- References: <201010260935.FAA29594@smc.vnet.net>
Sam, here is one way: In[5]:= (1. Cos[theta]^8 - 28. Cos[theta]^6 Sin[theta]^2 - 28. Cos[theta]^2 Sin[theta]^6 + 1. Sin[theta]^8 + 4.375 Sin[2 theta]^4 /. x_Real :> With[{ratnl = Rationalize[x]}, ratnl /; ratnl == x]) // FullSimplify Out[5]= Cos[8 theta] That is, rationalize those real numbers for which the rational representation is exact, then simplify. Regards, Leonid On Tue, Oct 26, 2010 at 1:35 PM, Sam Takoy <sam.takoy at yahoo.com> wrote: > Hi, > > I'm working on a project where certain elements need to be computed > numerically. Not surprisingly, some simplifications that work > symbolically, don't work with floating numbers. But some still do, e.g. > 1.0 Sin[a]^2 + 1.0 Cos[a]^2 // Simplify is 1.0; > > Is there a way to make the example that follows, that starts with Cos[8 > theta] then goes to Cartesian coordinates and back to polar, to work as > well as the trivial trig example above? > > Many thanks in advance, > > Sam > > > toCart = theta -> ArcTan[x, y]; > toPolar = {x -> Cos[theta], y -> Sin[theta]}; > help = {Cos[ArcTan[x, y]] -> x/Sqrt[x^2 + y^2], > Sin[ArcTan[x, y]] -> y/Sqrt[x^2 + y^2]}; > > ((Cos[8 theta] /. toCart // TrigExpand) /. help // FullSimplify) /. > toPolar // Simplify > ((1.0 Cos[8 theta] /. toCart // TrigExpand) /. help // > FullSimplify) /. toPolar // Simplify > > Out[1357]= Cos[8 theta] > > Out[1358]= > 1. Cos[theta]^8 - 28. Cos[theta]^6 Sin[theta]^2 - > 28. Cos[theta]^2 Sin[theta]^6 + 1. Sin[theta]^8 + > 4.375 Sin[2 theta]^4 > >
- References:
- Semi-symbolically Semi-numerically
- From: Sam Takoy <sam.takoy@yahoo.com>
- Semi-symbolically Semi-numerically