Подтвердить что ты не робот

Ошибка выполнения 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, которая будет игнорировать такие вхождения и просто продолжить?

4b9b3361

Ответ 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 без прерывания вашей программы.