15

我正在scipy.optimize.curve_fit()以迭代的方式使用。

我的问题是,当它无法适应整个程序(以及迭代)停止的参数时,这就是它给出的错误:

RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 800.

我明白为什么它一直无法适应。我的问题是有什么方法可以在 Python 3.2.2 中编写程序来忽略此类事件并继续?

4

1 回答 1

17

curve_fit在优化无法找到解决方案的情况下,您可以使用标准 Python 异常处理来捕获引发的错误。所以像:

try:
    popt,pcov = scipy.optimize.curve_fit(f, xdata, ydata, p0=None, sigma=None)

except RuntimeError:
    print("Error - curve_fit failed")

curve_fit该构造将让您在不中止程序的情况下捕获并处理引发的错误情况。

于 2012-02-07T10:22:03.447 回答