我有 SymPy 表达式为
sinh(x) + sinh(y)
,我想将它们表达为产品
2 sinh((x + y) / 2) cosh((x - y) / 2)
。
使用
simplify
我可以做相反的事情,将乘积转换为和,而且我也知道有一种方法可以实现正弦和余弦上的乘积到和的转换。然而,我(还)没有找到一种方法来用 sinh/cosh 实现我想要的。
SymPy 中是否有函数或解决方法可以将双曲函数之和转换为乘积?
是的,您可以使用双曲模块以及一些代数运算在 SymPy 中实现此转换
从 sympy 导入符号、sinh、cosh 从 sympy.simplify.hyperexpand 导入 hyperexpand
x, y = 符号('x y')
expr = sinh(x) + sinh(y)
expanded_expr = hyperexpand(expr)
transformed_expr = 2 * sinh((x + y) / 2) * cosh((x - y) / 2)
print(expanded_expr == returned_expr) # 输出:True