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

標準の 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その構成により、プログラムを中止することなく、によって発生したエラー状態をキャッチして処理できます。

于 2012-02-07T10:22:03.447 に答える