【问题标题】:Calculating area within a curve计算曲线内的面积
【发布时间】:2021-04-18 11:34:24
【问题描述】:

我正在测量通过样品的电流,以改变其上的电压。结果是这样的电流-电压图

https://content.sciendo.com/view/journals/joeb/9/1/graphic/j_joeb-2018-0023_fig_004.jpg

我想计算前半周期曲线内的面积(第一象限曲线的一部分)。不确定在 python 中执行此操作的最佳方法是什么。我试图编写一些代码来查找具有相同 x 坐标的对,并从顶部 y 值中减去底部 y 值,然后遍历第一象限中的所有点。

def LobeAreaByPeriod(all_periods_I):
    print('Starting Lobe area by period')
    LobeArea = []
    for period in all_periods_I:
        halfperiod = round(len(period)/2)
        duration = round(halfperiod/2)
        area = 0
        for i in range(duration):
            area += (period[i] - period[halfperiod - i])
        LobeArea.append(area)
    return LobeArea

我不确定这些对会以这种方式直接位于彼此上方,而且我发现很难检查答案是否正确。有关如何执行此操作的任何提示?

【问题讨论】:

    标签: python numerical-integration


    【解决方案1】:

    要计算曲线内的面积,您必须进行某种近似。根据您对精度的需要,您选择的方法会有所不同。我喜欢梯形规则。 Numpy 有一个非常好的实现。

    np.trapz

    【讨论】:

    • 好的,谢谢,所以我想他们这样做的方法是从总面积中减去底部面积。我试试看!
    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 2019-02-07
    • 2021-10-24
    • 2017-10-12
    相关资源
    最近更新 更多