Ошибка выполнения 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
Вы можете использовать стандартную обработку исключений 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
без прерывания вашей программы.