从同样为负数的图形中计算绝对面积
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 轴下的面积也视为正值。
如果要忽略负数部分,可以将负值设置为 0
和 numpy.clip(..)
[numpy-doc]:
print(trapz(f.<b>clip(min=0)</b>,x))
我想计算给定图形下的绝对面积。现在发生的是它只是整合了线 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 轴下的面积也视为正值。
如果要忽略负数部分,可以将负值设置为 0
和 numpy.clip(..)
[numpy-doc]:
print(trapz(f.<b>clip(min=0)</b>,x))