本文簡要介紹 python 語言中 scipy.optimize.fmin
的用法。
用法:
scipy.optimize.fmin(func, x0, args=(), xtol=0.0001, ftol=0.0001, maxiter=None, maxfun=None, full_output=0, disp=1, retall=0, callback=None, initial_simplex=None)#
使用下坡單純形算法最小化函數。
該算法僅使用函數值,不使用導數或二階導數。
- func: 可調用函數(x,*args)
要最小化的目標函數。
- x0: ndarray
初步猜測。
- args: 元組,可選
傳遞給 func 的額外參數,即
f(x,*args)
。- xtol: 浮點數,可選
迭代之間 xopt 中的絕對誤差對於收斂是可以接受的。
- ftol: 編號,可選
迭代之間的 func(xopt) 中的絕對誤差對於收斂是可以接受的。
- maxiter: 整數,可選
要執行的最大迭代次數。
- maxfun: 編號,可選
要進行的函數評估的最大數量。
- full_output: 布爾型,可選
如果需要 fopt 和 warnflag 輸出,則設置為 True。
- disp: 布爾型,可選
設置為 True 以打印收斂消息。
- retall: 布爾型,可選
設置為 True 以在每次迭代時返回解決方案列表。
- callback: 可調用的,可選的
在每次迭代後調用,作為 callback(xk),其中 xk 是當前參數向量。
- initial_simplex: 數組 形狀 (N + 1, N),可選
初始單純形。如果給定,則覆蓋x0.
initial_simplex[j,:]
應包含第 j 個頂點的坐標N+1
單純形中的頂點,其中N
是維度。
- xopt: ndarray
最小化函數的參數。
- fopt: 浮點數
函數的最小值:
fopt = func(xopt)
。- iter: int
執行的迭代次數。
- funcalls: int
進行的函數調用次數。
- warnflag: int
1:進行函數評估的最大次數。 2:達到最大迭代次數。
- allvecs: 列表
每次迭代的解決方案。
參數 ::
返回 ::
注意:
使用Nelder-Mead 單純形算法找到一個或多個變量的函數最小值。
該算法在應用程序中的成功使用曆史悠久。但它通常比使用一階或二階導數信息的算法慢。在實踐中,它在高維問題上的表現可能很差,並且對於最小化複雜函數的魯棒性不強。此外,目前還沒有完整的理論來說明算法何時會成功收斂到最小值,或者如果收斂會多快。必須滿足 ftol 和 xtol 標準才能收斂。
參考:
[1]內爾德,J.A.和 Mead, R. (1965),“函數最小化的單純形法”,計算機雜誌,7,第 308-313 頁
[2]賴特,M.H. (1996),“直接搜索方法:曾經被蔑視,現在受人尊敬”,《數值分析 1995》,1995 年鄧迪數值分析雙年會論文集,D.F.格裏菲斯和 G.A. Watson(編輯),Addison Wesley Longman,哈洛,英國,第 191-208 頁。
例子:
>>> def f(x): ... return x**2
>>> from scipy import optimize
>>> minimum = optimize.fmin(f, 1) Optimization terminated successfully. Current function value: 0.000000 Iterations: 17 Function evaluations: 34 >>> minimum[0] -8.8817841970012523e-16
相關用法
- Python SciPy optimize.fmin_cobyla用法及代碼示例
- Python SciPy optimize.fmin_bfgs用法及代碼示例
- Python SciPy optimize.fmin_slsqp用法及代碼示例
- Python SciPy optimize.fmin_tnc用法及代碼示例
- Python SciPy optimize.fminbound用法及代碼示例
- Python SciPy optimize.fmin_cg用法及代碼示例
- Python SciPy optimize.fmin_powell用法及代碼示例
- Python SciPy optimize.fsolve用法及代碼示例
- Python SciPy optimize.fixed_point用法及代碼示例
- Python SciPy optimize.rosen_der用法及代碼示例
- Python SciPy optimize.line_search用法及代碼示例
- Python SciPy optimize.rosen用法及代碼示例
- Python SciPy optimize.shgo用法及代碼示例
- Python SciPy optimize.minimize_scalar用法及代碼示例
- Python SciPy optimize.root用法及代碼示例
- Python SciPy optimize.NonlinearConstraint用法及代碼示例
- Python SciPy optimize.KrylovJacobian用法及代碼示例
- Python SciPy optimize.toms748用法及代碼示例
- Python SciPy optimize.linprog_verbose_callback用法及代碼示例
- Python SciPy optimize.bracket用法及代碼示例
- Python SciPy optimize.milp用法及代碼示例
- Python SciPy optimize.diagbroyden用法及代碼示例
- Python SciPy optimize.bisect用法及代碼示例
- Python SciPy optimize.isotonic_regression用法及代碼示例
- Python SciPy optimize.golden用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.optimize.fmin。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。