我有两个函数,其距离(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,我计算红点与蓝色图中相应点之间的差异(此处表示为线条,因为它是一个光谱),以尽可能好地过度绘制它们。
答案 0 :(得分:0)
在单个函数中不能有多个return语句,只会调用第一个语句。相反,您需要返回一些错误的集合,例如root意味着quaring错误:
# 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