SciPy curve_fit 运行时错误,停止迭代

16 投票
1 回答
18779 浏览
提问于 2025-04-17 12:29

我正在使用 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出现错误时,捕捉到这个错误并处理它,而不会让你的程序直接崩溃。

撰写回答