SciPy curve_fit ошибка времени выполнения, остановка итерации - PullRequest
12 голосов
/ 07 февраля 2012

Я использую scipy.optimize.curve_fit() итеративным способом.

Моя проблема в том, что, когда она не в состоянии соответствовать параметрам, вся программа (и, следовательно, итерация) останавливается, это ошибка, которую она выдает:

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

Я понимаю, почему он не смог уместиться. Моя проблема в том, что я могу написать программу на Python 3.2.2, которая будет игнорировать такие случаи и просто продолжать?

1 Ответ

14 голосов
/ 07 февраля 2012

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

...