Python3 - Sympy: Extend Trigger Function Products

I cannot find a way for SymPy to expand products, such as cos(a)*cos(b) , into the sum of the trigger functions of the sum of the angles.

 from sympy import * init_printing() wrf,wlo,t = symbols('\omega_RF \omega_LO t') c = cos(wrf*t)*cos(wlo*t) expand_trig(c) 

Keeps product intact. simplify(c) or trigsimp(c) also do not give an alternative form.

I would like to have cos(a)*cos(b) to expand to 1/2*(cos(a+b) + cos(ab)) ... any hints?

+5
source share
1 answer

In the line docstring help(sympy.fu) ,

fu will try to minimize the objective function measure . By default, this first minimizes the number of trigger terms, and then minimizes the amount of operation.

However, if you pass

 measure=lambda x: -x.count_ops() 

then fu will try to maximize the number of options .


 import sympy as sy sy.init_printing() wrf, wlo, t = sy.symbols('\omega_RF \omega_LO t') c = sy.cos(wrf*t)*sy.cos(wlo*t) print(sy.fu(c, measure=lambda x: -x.count_ops())) 

gives

 cos(\omega_LO*t - \omega_RF*t)/2 + cos(\omega_LO*t + \omega_RF*t)/2 

Alternatively, you can directly invoke the Fu TR8 conversion :

 from sympy.simplify.fu import TR8 print(TR8(c)) 

gives the same result. Dokshrin, help(sys.modules['sympy.simplify.fu']) explains the available conversions. Here is a summary; check the documentation for more information:

 TR0 - simplify expression TR1 - sec-csc to cos-sin TR2 - tan-cot to sin-cos ratio TR2i - sin-cos ratio to tan TR3 - angle canonicalization TR4 - functions at special angles TR5 - powers of sin to powers of cos TR6 - powers of cos to powers of sin TR7 - reduce cos power (increase angle) TR8 - expand products of sin-cos to sums TR9 - contract sums of sin-cos to products TR10 - separate sin-cos arguments TR10i - collect sin-cos arguments TR11 - reduce double angles TR12 - separate tan arguments TR12i - collect tan arguments TR13 - expand product of tan-cot TRmorrie - prod(cos(x*2**i), (i, 0, k - 1)) -> sin(2**k*x)/(2**k*sin(x)) TR14 - factored powers of sin or cos to cos or sin power TR15 - negative powers of sin to cot power TR16 - negative powers of cos to tan power TR22 - tan-cot powers to negative powers of sec-csc functions TR111 - negative sin-cos-tan powers to csc-sec-cot 
+8
source

All Articles