scipy.optimize.
fminbound#
- scipy.optimize.fminbound(func, x1, x2, args=(), xtol=1e-05, maxfun=500, full_output=0, disp=1)[源代码]#
标量函数的有界最小化。
- 参数:
- func可调用 f(x,*args)
要最小化的目标函数(必须接受并返回值标量)。
- x1, x2浮点型或数组标量
有限的优化范围。
- args元组,可选
传递给函数的额外参数。
- xtol浮点型,可选
收敛容差。
- maxfun整数,可选
允许的最大函数评估次数。
- full_output布尔值,可选
如果为 True,则返回可选的输出。
- disp整数,可选
- 如果非零,则打印消息。
0:不打印消息。1:仅打印不收敛通知消息。2:收敛时也打印消息。3:打印迭代结果。
- 返回:
- xoptndarray
用以最小化目标函数的参数(在给定区间内)。
- fval数字
(可选输出)在最小化器处评估的函数值。
- ierrint
(可选输出)错误标志(已收敛为 0,已达到函数调用最大次数为 1)。
- numfuncint
(可选输出)已执行的函数调用次数。
另请参见
minimize_scalar
标量单变量函数的最小化算法接口。特别是,参见“有界”方法。
注意
使用布伦特方法在区间 x1 < xopt < x2 中查找标量函数func的局部最小值。(参见
brent
了解自动取括号。)参考文献
[1]Forsythe, G.E.,M. A. Malcolm,和 C. B. Moler。“数学运算的计算机方法”。Prentice-Hall 系列 in 自动计算 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)