从同样为负数的图形中计算绝对面积

calculate the absolute area from a graph that also gets negative

我想计算给定图形下的绝对面积。现在发生的是它只是整合了线 f。这条线也变成负数。我正在从 -5 积分到 5。

如何调整函数以给出绝对值?

编辑: 我还想知道的是如何仅计算 f(x) > 0 的面积?有没有一个选项可以轻松地进行二重积分?

from numpy import *
import matplotlib.pyplot as plt


x = arange(-5,5.001,0.00001)
f = cos(4*x+1)**2 *(6 - 0.5* x**2)





print(trapz(f,x))
plt.plot([-5,5],[0,0])
plt.plot(x,f)
plt.show()

您可以使用 numpy.abs(..) [numpy-doc] 计算值数组的元素绝对值。

所以我们可以计算 f 的值:

f_abs = <b>np.abs(</b>f<b>)</b>
print(trapz(f_abs,x))

这将计算面积的近似值,因此将 x 轴下的面积也视为正值。

如果要忽略负数部分,可以将负值设置为 0numpy.clip(..) [numpy-doc]:

print(trapz(f.<b>clip(min=0)</b>,x))