当我尝试简化sympy
中的以下积分时,它不会评估,即输出是$ \ int _ { - 1} ^ 1 | z | dz $,而我期望的输出是1。
z = symbols('z', real=True)
a = integrate(abs(z), (z, -1, 1))
simplify(a)
z
上没有绝对值的类似积分将进行评估。
如何让sympy
评估此积分?
答案 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()功能。
享受!