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

SymPy符号积分返回异常结果 为何与Mathematica等工具结果不一致

结果差异原因

SymPy与其他积分计算工具的结果差异,核心来自符号参数的默认假设规则不同:

  • Mathematica、在线积分计算器这类工具计算实域反常积分时,默认会把积分中的未知参数z判定为正实数,直接返回该场景下的最简结果2/z²。
  • SymPy默认不对符号变量添加任何额外限制,会将z视为任意复数,返回覆盖所有定义域的通用积分结果,因此和你预期的实域正参数场景结果不符。

解决方法

在声明符号时显式添加z为正实数的假设,即可得到预期结果,修改后的代码如下:

from sympy import symbols, integrate, oo
# 显式指定z为正实数
x, z = symbols('x z', real=True, positive=True)
expr = 1/((x**2 + z**2)**(3/2))
print(integrate(expr, (x, -oo, oo)))

运行代码后输出为2/z**2,和预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:15:02