gpt4 book ai didi

Python:在x中以不均匀的步长积分曲线下面积

转载 作者:行者123 更新时间:2023-12-03 21:40:04 25 4
gpt4 key购买 nike

我有一个 y 值列表和一个 x 值列表。我想找到由这些点定义的曲线下的面积。对于具有均匀间距的 x 值,我找到了几个解决此问题的方法:

1) Calculating the area under a curve given a set of coordinates, without knowing the function

2) Using scipy to perform discrete integration of the sample

但是当 x 值不均匀分布时,这两种方法都不起作用。

例如:

>>> from scipy.integrate import simps
>>> y = np.array([1,1,1,1])
>>> x = np.array([0,5,20,30])
>>> simps(y,x)
-inf

当然,在上面的代码中使用 x = np.array([0,10,20,30]) 返回 30.0,正如预期的那样。

任何人都可以建议一种方法来找到具有不均匀 x 间距的曲线下的面积吗?

最佳答案

我只是去寻找一个简单的梯形规则:

import numpy as np

x = np.array([0,5,20,30])
y = np.array([1,1,1,1])

s = np.sum((x[1:] - x[:-1]) * (y[1:] + y[:-1]) / 2)
# same as
# s = 0.0
# for k in range(len(x) - 1):
# s += (x[k+1] - x[k]) * (y[k+1] + y[k]) / 2

print(s)
30.0

关于Python:在x中以不均匀的步长积分曲线下面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22238489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com