本文简要介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。