sympy:如何评估绝对值的积分

sympy: how to evaluate integral of absolute value

当我尝试简化 sympy 中的以下积分时,它不会计算,即输出为 $\int_{-1}^1 |z| dz$ 而我期望的输出是 1.

z = symbols('z', real=True)
a = integrate(abs(z), (z, -1, 1))
simplify(a)

z上没有绝对值的类似积分将计算。

如何sympy计算这个积分?

我相信你应该使用 Sympy 的内置 Abs() 功能。

尽情享受吧!

integrate 已经尽其所能计算积分。如果你得到一个 Integral 对象,这意味着它无法评估它。唯一可能有帮助的是以 SymPy 可以识别的方式重写被积函数。

查看 this issue,解决方法似乎是将其重写为 Heaviside:

In [201]: z = symbols('z', real=True)

In [202]: a = integrate(abs(z).rewrite(Heaviside), (z, -1, 1))

In [203]: a
Out[203]: 1