【发布时间】:2016-09-16 02:28:04
【问题描述】:
假设我已经定义了自变量x的两个实值函数和以下形式的一些参数:
f(x, parameters)g(x, parameters)
(或者:一个返回实数的 2 元组的函数,(f(x),g(x)))。
我现在想使用 scipy 的 curve_fit 将两条曲线 同时 拟合到两个数据数组 fdata 和 gdata,以及它们的相关错误:fdata-err、gdata-err (即找到适合数据的最佳参数)。这可能吗?
我知道我可以定义一个新函数,它是两个函数及其各自测量值之间差异的总和,但 python 的最小化函数似乎不会产生或解释错误,这对我的目的非常重要。
【问题讨论】:
-
您可以(或必须)自己处理待最小化函数中的错误。您可以查看实现以了解在
curve_fit中是如何完成的:github.com/scipy/scipy/blob/v0.15.1/scipy/optimize/… -
非常感谢。我认为这是一件相当常见的事情,所以我希望有一个内置选项。我会按照你的建议做(除非其他人知道替代解决方案!)
-
为什么不使用
scipy.optimize.leastsq和 f 和 g 的平方误差之和:sum((fdata - f(xdata))**2/fdata-err**2)+sum((gdata - g(xdata))**2/gdata-err**2)? -
是的,我将自己定义这个总和并将其最小化。我只是不想自己处理输出错误(不确定性)......我喜欢curve_fit为你做的事实。
标签: python scipy curve-fitting simultaneous