Just thought I'd mention that I'm also looking to do the same thing.

One reason this particular form of an equation is important is that it 
represents the equation in terms of its frequency content. It is very easy 
to identify the Fourier components this way, which is important for things 
like communication, acoustics, information processing and optics. Cross 
terms like sin(x)cos(2x) and nonlinear terms like sin(x)^2 hide information 
about the actual spectral content of the equation. I can imagine it would 
be highly desirable to be able to conveniently manipulate trig equations 
into the form described by the original poster.

Jacob

On Saturday, February 8, 2014 1:11:22 AM UTC+9, Matthew wrote:
>
> A few parts of sympy allow you to specify objective functions for 
> simplification.  Pure trig simplification with the fu algorithm is one.
>
> In [6]: fu?
> Objective function example
> >>> fu(sin(x)/cos(x))  # default objective function
> tan(x)
> >>> fu(sin(x)/cos(x), measure=lambda x: -x.count_ops()) # maximize op count
> sin(x)/cos(x)
>
> But getting rid of powers and such will also rely on other parts of sympy 
> which may not support this kind of guided search.
>
> The search process is powered by sympy.strategies.tree.greedy
>
> By the way, for others listening in, this is the sort of thing that the 
> step-by-step expression manipulation GSoC project would be able to support 
> as a side effect.
>
>
> On Thu, Feb 6, 2014 at 11:28 PM, Alex Clifton <[email protected]<javascript:>
> > wrote:
>
>> I was wondering if there was a way to “guide” sympy in performing trig 
>> identities to get the output into a specific form? Below, I go into detail 
>> and have attached a working version of the file for reference.
>>
>> In the expression of P, the coefficients D, F, G, H, and J are assumed to 
>> be real valued. I have left some commented print statements to show the 
>> different simplify options I have tried. I have performed this calculation 
>> by hand and I know there are several trig substitutions that need to be 
>> made in order to get the final expression in the form that I would like. 
>> That form is to get rid of all powers of trig functions greater than 1 by 
>> appropriate substitutions. Of course, I cannot expect sympy to know that I 
>> want things in this form so I am not surprised when the different simplify 
>>  statements do not give me that form. I was wondering what would be the 
>> best way to guide sympy in order to get the final output of P to be in the 
>> following form:
>>
>> K + Lsin(x) + Mcos(x) +  Nsin(2x) + Qcos(2x) + Rsin(3x) + Scos(3x) + 
>> Tsin(4x) + Vcos(4x)
>>
>> Where K, L, M, N, Q, R, S, T, and V are now combinations of the original 
>> D, F, G, H, and J.
>>
>> By the way, I am not as concerned now about the coefficients as I am 
>> getting rid of the higher powers of the trig functions. Although if people 
>> would like to weigh in on that, that would be great. If more detail is 
>> needed, please let me know and I’d be happy to provide it.
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] <javascript:>
>> .
>> Visit this group at http://groups.google.com/group/sympy.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to