簡體   English   中英

為什么我的scipy.optimize.minimize失敗?

[英]Why my scipy.optimize.minimize fails?

我嘗試使用fmin_bfgs來找到絕對函數abs(x)的局部最小值。 初始點設置為100.0。 預期的答案是0.0。 但是,我得到:

In [184]: op.fmin_bfgs(lambda x:np.abs(x),100.0)
Warning: Desired error not necessarily achieved due to precision loss.
         Current function value: 100.000000
         Iterations: 0
         Function evaluations: 64
         Gradient evaluations: 20
Out[184]: array([100.0])

為什么?

像fmin_bfgs和fmin_slsqp之類的方法需要平滑(連續導數)函數才能提供可靠的結果。 abs(x)的最小值為雙連續導數。 在這種情況下,不需要連續導數的Nelder-Mead單純形法之類的方法可能會提供更好的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM