最小化 n 个函数
Minimize n functions
我有两个函数,我需要最小化它们的距离 (y_1-y_2
) 以获得两者之间的最佳因子 (dfactor
),因此我可以将它们绘制在一起并将它们拟合为尽可能最好。与文档示例的不同之处在于,在这种情况下,我有 n
个点可以计算差异,因此我有 n
个函数可以最小化。对于 scipy.optimize.minimize_scalar
我使用以下语法:
def chi(dfactor):
for i in range(0, n):
return abs(dfactor*y_1[i] - y_2[i])
res = minimize_scalar(chi)
print res.x
现在 res.x
不是最适合这两个图的因素。我希望得到一个 n 元素的数组,它们之间非常相似,在那里我可以获得我需要的单个 dfactor
。但我不确定 minimize_scalar
是这样工作的。
检查 desired result,我在其中计算红点与蓝色图中对应点(此处表示为线,因为它是光谱)之间的差异,以尽可能好地绘制它们。
一个函数中不能有多个 return 语句,只有第一个会被调用。相反,您需要 return 一些错误的集合,例如根均值平方错误:
# Convert to numpy arrays
y_1 = np.asarray(y_1)
y_2 = np.asarray(y_2)
def chi(dfactor):
residual = dfactor * y_1 - y_2
return np.mean(residual ** 2)
res = minimize_scalar(chi)
print res.x
我有两个函数,我需要最小化它们的距离 (y_1-y_2
) 以获得两者之间的最佳因子 (dfactor
),因此我可以将它们绘制在一起并将它们拟合为尽可能最好。与文档示例的不同之处在于,在这种情况下,我有 n
个点可以计算差异,因此我有 n
个函数可以最小化。对于 scipy.optimize.minimize_scalar
我使用以下语法:
def chi(dfactor):
for i in range(0, n):
return abs(dfactor*y_1[i] - y_2[i])
res = minimize_scalar(chi)
print res.x
现在 res.x
不是最适合这两个图的因素。我希望得到一个 n 元素的数组,它们之间非常相似,在那里我可以获得我需要的单个 dfactor
。但我不确定 minimize_scalar
是这样工作的。
检查 desired result,我在其中计算红点与蓝色图中对应点(此处表示为线,因为它是光谱)之间的差异,以尽可能好地绘制它们。
一个函数中不能有多个 return 语句,只有第一个会被调用。相反,您需要 return 一些错误的集合,例如根均值平方错误:
# Convert to numpy arrays
y_1 = np.asarray(y_1)
y_2 = np.asarray(y_2)
def chi(dfactor):
residual = dfactor * y_1 - y_2
return np.mean(residual ** 2)
res = minimize_scalar(chi)
print res.x