Well, having better names for the Fu functions would go a long way towards this.

It would be cool to have a "simp lookup" routine, that works like
simp_lookup(expr1, expr2) -> list of functions that take expr1 to
expr2.

Aaron Meurer

On Tue, Feb 18, 2014 at 9:22 AM, Matthew Rocklin <[email protected]> wrote:
> It would be nice if users didn't have to know about all of the little
> functions in sympy but could instead just state an objective function.
>
> We often get the questions "I want my result in this form..."
> We often give the answers  "try this function, then this one, then one of
> these two, whichever works best"
>
> This works but it requires human/listhost intervention.  It would be nice if
> sympy could do this itself.  In Fu simplification and in a few other
> functions it sort of can.  Note that this would make a great GSoC project if
> anyone is interested.
>
>
> On Tue, Feb 18, 2014 at 3:56 AM, mario <[email protected]> wrote:
>>
>> In fu.py there are several functions to manipulate trigonometric
>> expressions; in your example you
>> can use TR8  to expand products of sin-cos to sums;
>>
>> ```
>> from sympy.simplify.fu import TR8
>> from sympy.simplify.simplify import _mexpand
>> P = (D + F*sin(x) + G*cos(x) + H*sin(2*x) + J*cos(2*x))**2
>> r = _mexpand(TR8(_mexpand(P)))
>> ```
>> what is missing is the collection of the coefficients; it is easy to write
>> a function collecting terms,
>> but I suspect that there is already a simple way in SymPy to do this.
>>
>>
>>
>>
>> On Friday, February 7, 2014 8:28:20 AM UTC+1, Alex Clifton 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].
>> 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.
>
>
> --
> 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.

-- 
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