在像Mathematica这样的其他CAS中很容易获得这样的重写。
TrigReduce[Sin[x]^2]
(*1/2 (1 - Cos[2 x])*)
但是,在Sympy中,所有测试方法的trigsimp
都会返回sin(x)**2
trigsimp(sin(x)*sin(x),method='fu')
答案 0 :(得分:1)
这是完成这项工作的愚蠢方式。
trigsimp((sin(x)**2).rewrite(tan))
返回:
-cos(2*x)/2 + 1/2
也适用于
trigsimp((sin(x)**3).rewrite(tan))
返回
3*sin(x)/4 - sin(3*x)/4
但不适用于
trigsimp((sin(x)**2*cos(x)).rewrite(tan))
retruns
4*(-tan(x/2)**2 + 1)*cos(x/2)**6*tan(x/2)**2
答案 1 :(得分:1)
完整的“fu”方法尝试了许多不同的转换组合,以找到“最佳”结果。
Fu-routines中使用的各个变换可用于进行目标变换。您必须阅读文档以了解不同功能的功能,但只需运行FU词典的功能即可将TR8识别为您的主力:
>>> for f in FU.keys():
... print f,FU[f](sin(var('x'))**2)
...
8<---
TR8 -cos(2*x)/2 + 1/2
TR1 sin(x)**2
8<---