Sympy积分1/(1+cot(x))无法生成最简结果的解决方法咨询
Sympy积分1/(1+cot(x))无法生成最简结果的解决方法咨询
我正在尝试用Sympy对1/(1+cot(x))(或者等价形式sin(x)/(sin(x)+cos(x)))关于变量x积分。
我先试了这段代码:
from sympy import * x = symbols("x", real=True) integrate(sin(x) / (sin(x) + cos(x)), x)
得到的结果看起来很简洁:
结果为:$\frac{x}{2} - \frac{\ln|\sin(x) + \cos(x)|}{2} + C$
但当我尝试这段代码时:
from sympy import * x = symbols("x", real=True) integrate(1 / (1 + cot(x)), x)
生成的结果是一个包含$\ln|\cos(x) + \sin(x)|$和$\ln|\cos(x)|$的表达式,这个结果本身没错,我手动化简后能得到之前的简洁形式:
手动验证可知,该结果等价于$\frac{x}{2} - \frac{\ln|\sin(x) + \cos(x)|}{2} + C$
不过这个结果不够简洁,于是我调用了simplify()函数处理它,得到的结果依然是正确但不够精简的形式:
化简后的结果仍保留了多余的对数项,没有合并成最紧凑的形式
我的问题是:
- 这种情况下,如果我直接积分
1/(1+cot(x))(或者类似类型的函数),怎么才能得到完全化简的结果? - 如果第一种方法不可行,我该如何手动给Sympy提示,让它生成最简形式的积分结果?
备注:内容来源于stack exchange,提问作者Sam Y
相关产品推荐
相关产品推荐

