本文简要介绍 python 语言中 scipy.optimize.root_scalar
的用法。
用法:
scipy.optimize.root_scalar(f, args=(), method=None, bracket=None, fprime=None, fprime2=None, x0=None, x1=None, xtol=None, rtol=None, maxiter=None, options=None)#
求一个标量函数的根。
- f: 可调用的
查找根的函数。
- args: 元组,可选
传递给目标函数及其导数的额外参数。
- method: str,可选
求解器的类型。应该是其中之一
‘bisect’ (see here)
‘brentq’ (see here)
‘brenth’ (see here)
‘ridder’ (see here)
‘toms748’ (see here)
‘newton’ (see here)
‘secant’ (see here)
‘halley’ (see here)
- bracket: A sequence of 2 floats, optional:
包围根的区间。 f(x, *args) 在两个端点必须有不同的符号。
- x0: 浮点数,可选
初步猜测。
- x1: 浮点数,可选
第二个猜测。
- fprime: 布尔或可调用,可选
如果 fprime 是布尔值并且为 True,则假定 f 返回目标函数和导数的值。 fprime 也可以是一个可调用的返回 f 的导数。在这种情况下,它必须接受与 f 相同的参数。
- fprime2: 布尔或可调用,可选
如果 fprime2 是布尔值并且为 True,则假定 f 返回目标函数的值以及一阶和二阶导数的值。 fprime2 也可以是返回 f 的二阶导数的可调用函数。在这种情况下,它必须接受与 f 相同的参数。
- xtol: 浮点数,可选
终止公差(绝对)。
- rtol: 浮点数,可选
终止公差(相对)。
- maxiter: 整数,可选
最大迭代次数。
- options: 字典,可选
求解器选项字典。例如,
k
,有关详细信息,请参阅show_options()
。
- sol: RootResults
该解决方案表示为
RootResults
对象。重要属性包括:root
解决方案、converged
指示算法是否成功退出的布尔标志以及说明终止原因的flag
。有关其他属性的说明,请参阅RootResults
。
参数 ::
返回 ::
注意:
本节介绍可通过 ‘method’ 参数选择的可用求解器。
默认情况下使用适用于所呈现情况的最佳方法。如果提供了括号,则可以使用其中一种括号方法。如果指定了导数和初始值,它可以选择基于导数的方法之一。如果没有方法被判断为适用,它将引发异常。
每个方法的参数如下(x=必需,o=可选)。
方法
f
参数
括号
x0
x1
fprime
fprime2
xtol
rol
马克西特
选项
x
o
x
o
o
o
o
x
o
x
o
o
o
o
x
o
x
o
o
o
o
x
o
x
o
o
o
o
x
o
x
o
o
o
o
x
o
x
o
o
o
o
o
x
o
x
o
o
o
o
o
x
o
x
x
x
o
o
o
o
例子:
求一个简单立方的根
>>> from scipy import optimize >>> def f(x): ... return (x**3 - 1) # only one real root at x = 1
>>> def fprime(x): ... return 3*x**2
brentq
方法将括号作为输入>>> sol = optimize.root_scalar(f, bracket=[0, 3], method='brentq') >>> sol.root, sol.iterations, sol.function_calls (1.0, 10, 11)
newton
方法将单个点作为输入并使用导数。>>> sol = optimize.root_scalar(f, x0=0.2, fprime=fprime, method='newton') >>> sol.root, sol.iterations, sol.function_calls (1.0, 11, 22)
该函数可以在一次调用中提供值和导数。
>>> def f_p_pp(x): ... return (x**3 - 1), 3*x**2, 6*x
>>> sol = optimize.root_scalar( ... f_p_pp, x0=0.2, fprime=True, method='newton' ... ) >>> sol.root, sol.iterations, sol.function_calls (1.0, 11, 11)
>>> sol = optimize.root_scalar( ... f_p_pp, x0=0.2, fprime=True, fprime2=True, method='halley' ... ) >>> sol.root, sol.iterations, sol.function_calls (1.0, 7, 8)
相关用法
- Python SciPy optimize.root用法及代码示例
- Python SciPy optimize.rosen_der用法及代码示例
- Python SciPy optimize.rosen用法及代码示例
- Python SciPy optimize.rosen_hess用法及代码示例
- Python SciPy optimize.rosen_hess_prod用法及代码示例
- Python SciPy optimize.ridder用法及代码示例
- Python SciPy optimize.line_search用法及代码示例
- Python SciPy optimize.shgo用法及代码示例
- Python SciPy optimize.minimize_scalar用法及代码示例
- Python SciPy optimize.fmin用法及代码示例
- 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用法及代码示例
- Python SciPy optimize.brute用法及代码示例
- Python SciPy optimize.newton用法及代码示例
- Python SciPy optimize.fsolve用法及代码示例
- Python SciPy optimize.Bounds用法及代码示例
- Python SciPy optimize.fixed_point用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.optimize.root_scalar。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。