You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SymPy中将双曲正弦和转化为乘积形式?

SymPy实现双曲函数和化积的方法

要把sinh(x) + sinh(y)转化为乘积形式2 sinh((x + y)/2) cosh((x - y)/2),可以用以下两种方法:

方法一:使用trigsimp指定fu化简规则

SymPy的trigsimp函数配合method='fu'参数,会基于傅里叶恒等式规则处理三角/双曲函数的恒等变换,直接支持和化积:

from sympy import symbols, sinh, trigsimp

x, y = symbols('x y')
expr = sinh(x) + sinh(y)
# 转换为乘积形式
result = trigsimp(expr, method='fu')
print(result)  # 输出:2*sinh((x + y)/2)*cosh((x - y)/2)

方法二:手动通过指数函数转换

如果想理解底层逻辑,可以先把双曲函数重写为指数形式,化简后再转回去:

from sympy import exp, rewrite

# 转成指数形式
expr_exp = expr.rewrite(exp)
# 化简指数表达式
simplified_exp = expr_exp.simplify()
# 转回双曲函数形式
result_manual = simplified_exp.rewrite(sinh)
print(result_manual)  # 同样得到目标乘积式

补充说明

  • 默认的simplify()函数会优先将乘积展开为和式,和你的需求反向,所以需要用trigsimp(..., method='fu')来触发和化积的逻辑。
  • 这个方法也适用于其他双曲函数的和化积,比如cosh(x) + cosh(y)可以转成2*cosh((x+y)/2)*cosh((x-y)/2)。

内容的提问来源于stack exchange,提问作者terben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:07:04