2017-05-02 115 views
3

我有一個三角式sympy:如何簡化三角函數表達

(-14*sin(x)**3 + 35*sin(x) + 6*sqrt(3)*cos(x)**3 + 9*sqrt(3)*cos(x))/((cos(2*x) + 4)) 

我知道簡化爲

sqrt(3)*3*cos(x) + 7*sin(x) 

,但我似乎無法找到一種方法使用sympy做到這一點。有沒有一個聰明的做法呢?

In [1]: from sympy import * 
In [2]: from sympy.abc import x 
In [3]: a = (-14*sin(x)**3 + 35*sin(x) + 6*sqrt(3)*cos(x)**3 + 9*sqrt(3)*cos(x))/((cos(2*x) + 4)) 
In [4]: b = sqrt(3)*3*cos(x) + 7*sin(x) 
In [5]: trigsimp(a-b) 
Out[5]: 0 
In [6]: trigsimp(a) 
Out[6]: (-14*sin(x)**3 + 35*sin(x) + 6*sqrt(3)*cos(x)**3 + 9*sqrt(3)*cos(x))/(cos(2*x) + 4) 
In [7]: a.simplify() 
Out[7]: (-14*sin(x)**3 + 35*sin(x) + 6*sqrt(3)*cos(x)**3 + 9*sqrt(3)*cos(x))/(cos(2*x) + 4) 
In [8]: trigsimp(expand_trig(a)) 
Out[8]: (-14*sin(x)**3 + 35*sin(x) + 6*sqrt(3)*cos(x)**3 + 9*sqrt(3)*cos(x))/(cos(2*x) + 4) 
In [9]: expand_trig(trigsimp(a)) 
Out[9]: (-14*sin(x)**3 + 35*sin(x) + 6*sqrt(3)*cos(x)**3 + 9*sqrt(3)*cos(x))/(2*cos(x)**2 + 3) 
In [10]: fu(a) 
Out[10]: (-14*sin(x)**3 + 35*sin(x) + 6*sqrt(3)*cos(x)**3 + 9*sqrt(3)*cos(x))/(cos(2*x) + 4) 

回答

2

以下是可能不是一個可行的方法,但是,它表明,有時也可能是值得在他們的復指數版本操縱正弦/餘弦表達實驗。

a.rewrite(sp.exp).simplify().expand().rewrite(sp.cos).simplify() 

7*sin(x) + 3*sqrt(3)*cos(x)

+1

即不工作,但是,對於(7 * SIN(Q) - 9 * SQRT(3)* COS(Q) - 2 * COS(3 * Q +π/ 6))/(4 *(2 * sin(q)** 2-5))= cos(q + pi/6)。我相信這需要一些藝術。 – pheon