当我尝试简化以下积分时sympy
,它不会计算,即输出为 $\int_{-1}^1 |z| dz$ 而我期望的输出是 1。
z = symbols('z', real=True)
a = integrate(abs(z), (z, -1, 1))
simplify(a)
没有绝对值的类似积分z
将评估。
我怎样才能sympy
评估这个积分?
当我尝试简化以下积分时sympy
,它不会计算,即输出为 $\int_{-1}^1 |z| dz$ 而我期望的输出是 1。
z = symbols('z', real=True)
a = integrate(abs(z), (z, -1, 1))
simplify(a)
没有绝对值的类似积分z
将评估。
我怎样才能sympy
评估这个积分?
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
我相信你应该使用 Sympy 内置的Abs()函数。
享受!