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

为什么SymPy对幂分式做定积分时会返回错误或不一致的结果?

问题原因

你遇到的结果差异是旧版本SymPy处理带浮点系数的符号积分时存在计算bug导致的。
经手动展开积分式验证,∫₀⁴ (y-2.4)²√y *0.1875 dy的精确结果为384/350 ≈1.09714,和你在Wolfram得到的预期结果一致。


修复方案

  • 方案1:将浮点系数替换为有理数进行符号积分,避免浮点计算误差
import sympy as sp
y = sp.Symbol('y')
# 2.4转有理数为12/5,0.1875转有理数为3/16
fy = (y - sp.Rational(12,5)) ** 2 * sp.sqrt(y) * sp.Rational(3,16)
res = sp.integrate(fy, (y, 0, 4))
print(float(res))
# 输出:1.0971428571428572
  • 方案2:直接使用数值积分计算,绕过符号积分的适配问题
from scipy.integrate import quad
import numpy as np
fy = lambda y: (y - 2.4) ** 2 * np.sqrt(y) * 0.1875
res, err = quad(fy, 0, 4)
print(res)
# 输出:1.0971428571428572

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:24:05