你好,我如何计算绿区域的值(在python中),它位于蓝线的左边,而在蓝线的右边?
因此,只有在黑线位于黄线之上的地方(这些线是由数组而不是函数产生的)。

发布于 2022-05-18 15:48:11
如果在相同的点上定义了黑线f和黄线g的向量,则可以对h大于零的曲线h = f - g进行积分:
h = f - g
h_positive = h * (h>0)

如果您的x值存储在向量xx中,并且图的两个部分之间的边界是cutoff (蓝线),那么您可以用numpy.trapz数值计算h_positive的积分。
cutoff_idx = np.where(xx >= cutoff)[0][0]
left_area = np.trapz(h_positive[:cutoff_idx], xx[:cutoff_idx])
right_area = np.trapz(h_positive[cutoff_idx:], xx[cutoff_idx:])
print(f'Left area: {left_area}')
print(f'Right area: {right_area}')
print(f'Difference: {left_area - right_area}')示例输出(带有估计输入数据):
Left area: 0.0034731843629035204
Right area: 0.021175629261965995
Difference: -0.017702444899062475发布于 2022-05-18 13:35:55
设黑线为函数f(x),黄色为g(x)。你要做的是计算积分:

其中a和b是f(x)和g(x)在g(x) < f(x)的区间内的交点。在你的例子中,你必须计算3个这样的积分。
从算法上讲,你要做的是:
。
2.1。求f(x),g(x)的交点
2.2。找到g(x) < f(x)的区间
2.3。对于步骤2.2的每个间隔:
2.3.1计算上述积分以求绿色区域
我还没有使用Python进行数学计算,所以我不能真正地指导您完成Python步骤,但希望我的评论和您的googling技巧能够给您提供具体的信息。
https://stackoverflow.com/questions/72289751
复制相似问题