【发布时间】:2011-07-20 05:41:14
【问题描述】:
我正在使用scipy.optimize.curve_fit,但我怀疑它正在收敛到局部最小值而不是全局最小值。
我尝试通过以下方式使用模拟退火:
def fit(params):
return np.sum((ydata - specf(xdata,*params))**2)
p = scipy.optimize.anneal(fit,[1000,1E-10])
specf 是我想要拟合的曲线。尽管返回值表明已达到全局最小值 (see anneal),但 p 中的结果明显低于 curve_fit 返回的最小值。
如何改进结果? SciPy 中有全局曲线拟合器吗?
【问题讨论】:
标签: python scipy scientific-computing curve-fitting simulated-annealing