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

时间:2016-09-19 07:57:57

标签: python sympy integral 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评估此积分?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:-3)

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

享受!