2017-07-11 14 views
0

たとえば、このページ(http://docs.scipy.org/doc/scipy/reference/optimize.minimize-lbfgsb.html)では、scipyの最適化パッケージのL-BFGS-B 'メソッドに渡すことができるソルバオプションが記述されています。いくつかのメソッド(L-BFGS-B、Nelder-Mead、TNC)のソルバ出口許容値を設定しようとしています。終了の許容値

私は'tol':0.001を入れましたが、なぜソルバーがerror = 0.49でこの収束を止めるのか分かりません。

許容値は、私の関数の戻り値と許容値の差であると仮定します。だから私の場合、誤差が0.001よりも劣っていても、error = 0.49ではないならば、ソルバは収束しなければならない!

コンバージェンス許容値を設定するにはどうすればよいですか? gtolftolのような具体的なオプションはありますか?

ありがとうございました!

+0

あなたのコードはどこですか? – klutt

+0

また、正確なエラーメッセージが役立つでしょう。 – obachtos

答えて

0

これは私のコードです:

Run_job_miniError = 0が対象となるように設定されたのAbaqusを実行し、 Errorを返す関数である
P = minimize(Run_job_mini, [float(0.7),float(0.25), float(0.4)], args=('KM3.inp'), method="L-BFGS-B", tol = 0.001, bounds = bnds, options={'disp': True, 'ftol': 1e-7, 'gtol': 1e-3,'eps': 0.1}) 

エラーメッセージなしで正常に動作します。しかし、なぜスクリプトがError = 0.49で終わるのかわかりません。 tolとはどういう意味ですか?私はスクリプトが停止する必要があると思ったError < tol

関連する問題