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

Sympy无法计算0到π/2的log(sin(x))积分,如何获取正确结果?

Sympy求解∫₀^(π/2) log(sin(x))定积分的解决方案

Sympy默认积分逻辑不会自动匹配这类经典特殊积分的形式,你可以通过以下两种方式得到正确结果:

方案1:获取数值验证结果

直接对未求值的积分对象调用evalf()方法,即可得到数值结果,和预期解析解的数值一致:

import sympy as sym
sym.init_printing()
x = sym.symbols('x')
z = sym.log(sym.sin(x))
res = z.integrate((x, 0, sym.pi/2))
print(res.evalf())

输出结果为-1.08879304515181,和-π/2 * log(2)的计算值完全匹配。

方案2:直接获取符号解析解

调用integrate方法时添加meijerg=True参数,强制Sympy使用Meijer G函数框架求解积分,该框架对包含三角函数、对数的特殊定积分适配性更好:

import sympy as sym
sym.init_printing()
x = sym.symbols('x')
z = sym.log(sym.sin(x))
res = sym.integrate(z, (x, 0, sym.pi/2), meijerg=True)
print(sym.simplify(res))

输出结果为-pi*log(2)/2,即你预期的正确符号解。

注意:如果运行后仍无法得到符号解,可先执行pip install --upgrade sympy升级Sympy到最新版本,旧版本对这类积分的支持存在缺陷。

内容的提问来源于stack exchange,提问作者Aniket Kumar Roy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:57:01