从x,y坐标计算曲线下的面积

时间:2019-09-20 11:14:34

标签: python integral

说我有两个名为xy的列表,它们都包含数字(坐标),说:

x = [0, 1, 2, 3, 4, 4, 5]
y = [0, 1, 3, 3, 5, 6, 7]

我需要计算将这两个列表组合为(x,y)坐标时所形成的曲线下的面积。我不太了解如何创建一个可以根据这些信息计算面积的函数。

def integrate(x, y):
""" x & y = lists, area_under_curve = float value of the area """
    area_under_curve = 0
    last_x = x[0]
    last_y = y[0] 

    for cur_x, cur_y in list(zip(x, y))[1:]:
       ## some code here

    return area_under_curve

2 个答案:

答案 0 :(得分:1)

如前所述,使用梯形法则功能非常简单

def integrate(x, y):
   sm = 0
   for i in range(1, len(x)):
       h = x[i] - x[i-1]
       sm += h * (y[i-1] + y[i]) / 2

   return sm

背后的理论是通过使用插值法来计算梯形面积。

答案 1 :(得分:1)

{{1}}

尝试一下