scipy.optimize.
fminbound#
- scipy.optimize.fminbound(func, x1, x2, args=(), xtol=1e-05, maxfun=500, full_output=0, disp=1)[源代码][源代码]#
标量函数的边界最小化。
- 参数:
- 函数可调用函数 f(x,*args)
要最小化的目标函数(必须接受并返回标量)。
- x1, x2浮点数或数组标量
有限优化边界。
- 参数tuple, 可选
传递给函数的额外参数。
- xtolfloat, 可选
收敛容差。
- maxfunint, 可选
允许的最大函数评估次数。
- 完整输出bool, 可选
如果为真,返回可选输出。
- dispint, 可选
- 如果非零,打印消息。
0 : 不打印消息。1 : 仅打印非收敛通知消息。2 : 收敛时也打印消息。3 : 打印迭代结果。
- 返回:
- xoptndarray
在给定区间内使目标函数最小的参数。
- fval数字
(可选输出) 在最小化点处评估的函数值。
- ierr整数
(可选输出) 一个错误标志 (0 如果收敛, 1 如果达到最大函数调用次数)。
- numfunc整数
(可选输出) 函数调用的次数。
参见
minimize_scalar
用于标量单变量函数的最小化算法的接口。特别参见 ‘Bounded’ 方法。
注释
使用 Brent 方法在区间 x1 < xopt < x2 内找到标量函数 func 的局部最小值。(参见
brent
以自动确定区间。)参考文献
[1]Forsythe, G.E., M. A. Malcolm, 和 C. B. Moler. “计算机方法在数学计算中的应用.” Prentice-Hall 自动计算系列 259 (1977).
[2]Brent, Richard P. 《无导数最小化算法》. Courier Corporation, 2013.
示例
fminbound
在给定范围内找到函数的最小值。以下示例说明了这一点。>>> from scipy import optimize >>> def f(x): ... return (x-1)**2 >>> minimizer = optimize.fminbound(f, -4, 4) >>> minimizer 1.0 >>> minimum = f(minimizer) >>> minimum 0.0 >>> res = optimize.fminbound(f, 3, 4, full_output=True) >>> minimizer, fval, ierr, numfunc = res >>> minimizer 3.000005960860986 >>> minimum = f(minimizer) >>> minimum, fval (4.000023843479476, 4.000023843479476)