我想计算给定图形下的绝对面积。现在发生的事情是它只是整合了 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 = np.abs(f)
print(trapz(f_abs,x))
然后,这将计算面积的近似值,因此也将 x 轴下方的面积视为正值。
如果你想忽略负数部分,可以使用
0
[numpy-doc]: 将负值设置为
numpy.clip(..)
print(trapz(f.clip(min=0),x))