如何垂直移动曲线以使总面积差异最小化

问题描述 投票:0回答:1

我有两条曲线,实际Ya,它是绿色,预测Yp,它是浅红色,我可以知道如何将Yp垂直移动到Yp',以使面积差异最小(这是红色区域)?以及如何证明它?

有人可以帮忙吗?

enter image description here

curve-fitting curve
1个回答
0
投票
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt

比方说,您的数据是关于:

x = np.array([1000, 2000, 4000, 6000])
y1 = np.array([500, 800, 1500, 2000])
y2 = np.array([500, 600, 1800, 2000])

您无需诉诸验配程序。我们可以简单地计算两条曲线的面积:

I1 = integrate.trapezoid(y1, x=x)  # 6450000.0
I2 = integrate.trapezoid(y2, x=x)  # 6750000.0

然后计算所需的高度差如下:

dy = (I1 - I2) / (x.max() - x.min())  # -60.0
y3 = y2 + dy

我们可以确认新曲线与第一条曲线的面积相同:

I3 = integrate.trapezoid(y3, x=x)  # 6450000.0

fig, axe = plt.subplots()
axe.plot(x, y1, "-o")
axe.plot(x, y2, "-o")
axe.plot(x, y3, "-o")
axe.grid()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.