4

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

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

没有绝对值的类似积分z将评估。

我怎样才能sympy评估这个积分?

4

2 回答 2

4

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

这个问题,看起来一种解决方法是将其重写为 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
于 2016-09-21T16:44:17.670 回答
-3

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

享受!

于 2016-09-19T08:09:02.107 回答