我有一个表达式:sin(x)+sin(y)
有一个众所周知的三角形身份来表达这是罪和cos的产物。
有没有办法让同情心申请这个身份?
simplify
和trigsimp
什么都不做。
答案 0 :(得分:9)
trigsimp
反之亦然,因为sin(x) + sin(y)
比2*sin((x + y)/2)*cos((x - y)/2)
更简单。
trigsimp
内部使用基于Fu, et. al.的论文的算法,该算法对各种三角函数进行模式匹配。如果你查看source code,所有的身份都写在各个函数中(函数以Fu的论文中的部分命名)。
查看文件顶部的简化列表,您想要的那个可能是
TR9 - contract sums of sin-cos to products
测试它,它看起来像是有效的
In [1]: from sympy.simplify.fu import TR9
In [2]: TR9(sin(x) + sin(y))
Out[2]:
⎛x y⎞ ⎛x y⎞
2⋅sin⎜─ + ─⎟⋅cos⎜─ - ─⎟
⎝2 2⎠ ⎝2 2⎠
我们最终希望将这些功能纳入更加用户友好的功能中,但就目前而言,即使所有功能名称都不是特别难忘,fu.py
文件也有很好的记录。
答案 1 :(得分:0)
似乎没有定义一个函数。您需要按照@asmeurer的说明使用各个Fu函数。我能提供的是指向官方文档的指针,它对此进行了解释:https://docs.sympy.org/dev/modules/simplify/fu.html