要执行合身,我目前正在使用scipy.optimize
中的curve_fit
。
我已经计算了与我的每个ydata
相关联的错误,并且我想将数据中存在的计算sigma = y_errors
添加到拟合中,
即。最小化sum( ((f(xdata, *popt) - ydata) / sigma)**2 )
而非sum( (f(xdata, *popt) - ydata))
。
我可以看到可以在文档中分配参数 sigma
。我不清楚的是 absolute_sigma
参数。文档中给出的解释对我来说很混乱。
我应该设置absolute_sigma= = True
吗?或者,如果我需要考虑与False
相关的y_errors
,那么它应该设置为ydata
答案 0 :(得分:4)
如果您的数据存在绝对不确定因素,即y_errors
的单位与ydata
的单位相同,则应设置{{1} }}。然而,通常情况是absolute_sigma= = True
的单位不准确,只知道相对大小。后一种情况的一个例子可能是某些y_errors
值来自相同y
值的重复测量值。那么将重复的x
值加权到非重复y
值的两倍是有意义的,但是这个权重(y
)的单位与任何值不同单位2
是。
以下是一些代码来说明差异:
y