scipy.optimize.brenth¶
- scipy.optimize.brenth(f, a, b, args=(), xtol=2e-12, rtol=8.881784197001252e-16, maxiter=100, full_output=False, disp=True)[源代码]¶
用双曲外推的布伦特方法求函数在括号区间内的根。
经典布伦特例程的一种变体,用双曲线外推而不是逆二次外推求自变量a和b之间的函数f的零点。早在20世纪80年代就有一份报纸.f(A)和f(B)不能有相同的符号。一般来说,与布伦特原油常规不相上下,但没有那么严格的考验。它是使用双曲线外推的割线方法的安全版本。这里的版本是查克·哈里斯写的。
- 参数
- f功能
返回数字的Python函数。f必须是连续的,并且f(A)和f(B)必须有相反的符号。
- a标量
括号间隔的一端 [a,b] 。
- b标量
括号间隔的另一端 [a,b] 。
- xtol数字,可选
计算出的根
x0
将会令人满意np.allclose(x, x0, atol=xtol, rtol=rtol)
,在哪里x
就是它的确切根部。该参数必须为非负。和以前一样brentq
,对于良好的函数,该方法通常会满足上述条件xtol/2
和rtol/2
。- rtol数字,可选
计算出的根
x0
将会令人满意np.allclose(x, x0, atol=xtol, rtol=rtol)
,在哪里x
就是它的确切根部。参数不能小于其默认值4*np.finfo(float).eps
。和以前一样brentq
,对于良好的函数,该方法通常会满足上述条件xtol/2
和rtol/2
。- maxiter整型,可选
如果在以下方面未实现融合 maxiter 迭代,则会引发错误。必须>=0。
- args元组,可选
包含函数的额外参数 f 。 f 由以下人员调用
apply(f, (x)+args)
。- full_output布尔值,可选
如果 full_output 为false,则返回根。如果 full_output 为True,则返回值为
(x, r)
,在哪里 x 是根,并且 r 是一种RootResults
对象。- disp布尔值,可选
如果为True,则在算法不收敛时引发RuntimeError。否则,收敛状态将记录在任何
RootResults
返回对象。
- 退货
- x0浮动
零分,共零分 f 之间 a 和 b 。
- r :
RootResults
(在以下情况下出席full_output = True
)RootResults(如果FULL_OUTPUT=True则存在) 对象,该对象包含有关收敛的信息。具体地说,
r.converged
如果例程收敛,则为True。
参见
fmin
,fmin_powell
,fmin_cg
fmin_bfgs
,fmin_ncg
多变量局部优化器
leastsq
非线性最小二乘法
fmin_l_bfgs_b
,fmin_tnc
,fmin_cobyla
约束多变量优化器
basinhopping
,differential_evolution
,brute
全局优化器
fminbound
,brent
,golden
,bracket
局部标量极小
fsolve
N-D寻根
brentq
,brenth
,ridder
,bisect
,newton
一维寻根
fixed_point
标量定点仪
示例
>>> def f(x): ... return (x**2 - 1)
>>> from scipy import optimize
>>> root = optimize.brenth(f, -2, 0) >>> root -1.0
>>> root = optimize.brenth(f, 0, 2) >>> root 1.0