计算也为负值的图表的绝对面积

问题描述 投票:0回答:1

我想计算给定图形下的绝对面积。现在发生的事情是它只是整合了 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()
python-3.x numpy numerical-integration
1个回答
1
投票

您可以使用

numpy.abs(..)
[numpy-doc] 计算值数组的按元素绝对值。

因此我们可以计算

f
的值:

f_abs = np.abs(f)
print(trapz(f_abs,x))

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

如果你想忽略负数部分,可以使用

0
 [numpy-doc]
:
将负值设置为
numpy.clip(..)

print(trapz(f.clip(min=0),x))
© www.soinside.com 2019 - 2024. All rights reserved.