我可以在scipy cumtrapz中使用积分限制吗?

2 投票
1 回答
1820 浏览
提问于 2025-04-17 20:22

当我使用cumtrapz这个函数时,计算出来的面积是以XX轴为界的。比如说,能不能把这个界限设定在x=10呢?

谢谢

雨果

1 个回答

3

使用 x 参数:

scipy.integrate.cumtrapz(y, x=range(low_lim, high_lim+1))

http://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.cumtrapz.html

如果你有一组确定的值(而不是一个函数),想要把积分限制在 y_min 和 y_max 之间,你需要做一些手动的调整。

目标是把你的 y 列表中的值改成你想要积分的样本。

所以,

y_min = 10
y_max = 50
y_list = [100*sin(x) for x in range (0,100)]

mod_y = [0 if y < y_min else y - y_min for y in y_list]
mod_y = [y_max - y_min if y > y_max else y - y_min for y in mod_y]

scipy.integrate.cumtrapz(mod_y)

在这个过程中减去的值是为了把你的最小值调整到零,因为 cumtrapz 本身就是这样计算的。

撰写回答