SciPy curve_fit 运行时错误,停止迭代
我正在使用 scipy.optimize.curve_fit()
这个函数来进行迭代处理。
我遇到的问题是,每当它无法找到合适的参数时,整个程序(包括迭代)就会停止,这时它会给我这个错误信息:
RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
我明白为什么它无法找到合适的参数。我的问题是,有没有办法让我在 Python 3.2.2 中编写程序,让它忽略这些情况,继续运行下去呢?
1 个回答
20
你可以用标准的Python错误处理方式来捕捉curve_fit
在优化找不到解决方案时出现的错误。也就是说,你可以这样做:
try:
popt,pcov = scipy.optimize.curve_fit(f, xdata, ydata, p0=None, sigma=None)
except RuntimeError:
print("Error - curve_fit failed")
这样做可以让你在curve_fit
出现错误时,捕捉到这个错误并处理它,而不会让你的程序直接崩溃。