scipy.optimize.ridder

scipy.optimize.ridder(f, a, b, args=(), xtol=2e-12, rtol=8.881784197001252e-16, maxiter=100, full_output=False, disp=True)[源代码]

用Ridder方法在区间内求函数的根。

参数
f功能

返回数字的Python函数。f必须是连续的,并且f(A)和f(B)必须有相反的符号。

a标量

括号间隔的一端 [a,b] 。

b标量

括号间隔的另一端 [a,b] 。

xtol数字,可选

计算出的根 x0 将会令人满意 np.allclose(x, x0, atol=xtol, rtol=rtol) ,在哪里 x 就是它的确切根部。该参数必须为非负。

rtol数字,可选

计算出的根 x0 将会令人满意 np.allclose(x, x0, atol=xtol, rtol=rtol) ,在哪里 x 就是它的确切根部。参数不能小于其默认值 4*np.finfo(float).eps

maxiter整型,可选

如果在以下方面未实现融合 maxiter 迭代,则会引发错误。必须>=0。

args元组,可选

包含函数的额外参数 ff 由以下人员调用 apply(f, (x)+args)

full_output布尔值,可选

如果 full_output 为false,则返回根。如果 full_output 为True,则返回值为 (x, r) ,在哪里 x 是根,并且 r 是一种 RootResults 对象。

disp布尔值,可选

如果为True,则在算法不收敛时引发RuntimeError。否则,收敛状态将记录在任何 RootResults 返回对象。

退货
x0浮动

零分,共零分 f 之间 ab

rRootResults (在以下情况下出席 full_output = True )RootResults(如果FULL_OUTPUT=True则存在)

对象,该对象包含有关收敛的信息。具体地说, r.converged 如果例程收敛,则为True。

参见

brentq, brenth, bisect, newton

一维寻根

fixed_point

标量定点仪

注意事项

用途 [Ridders1979] 方法来查找函数的零。 f 在争论之间 ab 。莱德斯的方法比二分法更快,但通常不如布伦特例程快。 [Ridders1979] 提供了算法的经典描述和源代码。描述也可以在任何最新版本的“数字处方”中找到。

这里使用的例程与标准演示文稿略有不同,以便更加注意容忍度。

参考文献

Ridders1979(1,2)

莱德斯,C.F.J.“一种计算实连续函数单根的新算法”IEEE传输电路系统26,979-980,1979。

示例

>>> def f(x):
...     return (x**2 - 1)
>>> from scipy import optimize
>>> root = optimize.ridder(f, 0, 2)
>>> root
1.0
>>> root = optimize.ridder(f, -2, 0)
>>> root
-1.0