scipy.optimize.minimize参数

scipy.optimize.minimize
英文文档

scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)
参数:

fun:要最小化的目标函数。
fun(x,*args)->float 其中x是(n,)的一维数组,args是完全指定函数所需的固定参数的元组。

x0:ndarray,shape=(n,) 大小为(n,)的实元素数组,其中“n”是自变量的数目。

args:可选。传递给目标函数及其导数(fun、jac和hess函数)的额外参数。

method:str或callable,可选
解算器的类型:
“Nelder Mead”
“Powell”
‘CG’
‘BFGS’
“Newton-CG”
‘L-BFGS-B’
“TNC”
‘COBYLA’)
“SLSQP”
“trust-constr”
“dogleg”
“trust-ncg”
“trust-exact”
“trust-krylov”
custom-自定义-一个可调用的对象(在0.14.0版中添加)
如果没有给定,则选择BFGS,L-BFGS-B,SLSQP中的一个,这取决于问题是否有约束或边界。

jac:{callable,‘2-point’,‘3-point’,cs’,bool},可选
计算梯度向量的方法。仅适用于CG、BFGS、Newton CG、L-BFGS-B、TNC、SLSQP、dogleg、trust ncg、trust krylov、trust exact和trust Construct。
如果它是可调用的,它应该是一个返回梯度向量的函数: jac(x,*args)->array_like,shape(n,).其中x是(n,)的数组,args是具有固定参数的元组。
如果jac是布尔值且为真,则假定fun返回objective和gradient作为(f,g)元组。“Newton CG”、“trust ncg”、“dogleg”、“trust exact”和“trust krylov”方法要求提供可调用函数,或者fun返回目标和梯度。
如果None或False,则使用绝对步长的两点有限差分估计来估计梯度。或者,关键字{‘2-point’、‘3-point’、‘cs’}可用于选择具有相对步长的梯度的数值估计的有限差分格式。这些有限差分格式服从任何指定的边界。

hess:{callable,‘2-point’,3-point’,cs’,HessianUpdateStrategy},可选
计算Hessian矩阵的方法。只适用于Newton CG、dogleg、trust ncg、trust krylov、trust exact和trust constr。如果它是可调用的,它应该返回Hessian矩阵:
hess(x,*args)->{linearerator,spmatrix,array},(n,n)
其中x是(n,)ndarray,args是具有固定参数的元组。lineroperator和稀疏矩阵返回只允许用于“trust constr”方法。或者,关键字{‘2-point’、‘3-point’、‘cs’}选择一个有限差分格式进行数值估计。或者,实现HessianUpdateStrategy接口的对象可以用来近似Hessian。实现该接口的可用拟牛顿方法有:
BFGS; SR1。
当用有限差分法估计梯度时,Hessian不能用选项{‘2-point’、‘3-point’、‘cs’}来估计,需要使用一种拟牛顿策略来估计。有限差分选项{‘2-point’、‘3-point’、‘cs’}和HessianUpdateStrategy仅适用于“trust constr”方法。

hessp:可调用,可选
目标函数的Hessian乘以任意向量p。仅适用于Newton CG,trust ncg,trust krylov,trust constr。只需提供一个hessp或hess。如果提供了hess,则hessp将被忽略。hessp必须计算Hessian乘以任意向量:
hessp(x,p,*args)->ndarray shape(n,)
其中x是(n,)ndarray,p是维数为(n,)的任意向量,args是具有固定参数的元组。

bounds:序列或边界,可选
L-BFGS-B、TNC、SLSQP、Powell和trust constr方法的变量边界。有两种方法可以指定边界: Bounds类的实例。
x中每个元素的(min,max)对序列。None用于指定不绑定。

constraints:{Constraint,dict}或{Constraint,dict}列表,可选 约束定义(仅适用于COBYLA、SLSQP和trust constr)。“trust constr”的约束被定义为单个对象或指定优化问题约束的对象列表。可用的约束包括: 线性约束 非线性约束
COBYLA、SLSQP的约束定义为字典列表。每个包含字段的词典:
类型:字符串 约束类型:“eq”表示相等,“ineq”表示不等式
函数:的定义约束的函数。
jac:callable,可选(只适用于SLSQP)。
argssequence,可选 传递给函数和Jacobian的额外参数。
等式约束意味着约束函数的结果是零,而不等式意味着它是非负的。注意COBYLA只支持不等式约束。

tol:可选。终止公差。对于详细的控制,请使用特定于解算器的选项。

options:dict,可选。解算器选项词典。
可以是maxiter:int。 要执行的最大迭代数。例如:{‘maxiter’: 250}
也可以是disp:布尔型。 设置为True可打印聚合消息。例如:{‘disp’: True}

callback:callable,可选。在每次迭代后调用。对于“trust constr”,它是一个可调用的签名: 回调(xk,OptimizeResult state)->bool
其中xk是当前参数向量。state是一个OptimizeResult对象,其字段与返回中的字段相同。如果回调返回True,则终止算法执行。对于所有其他方法,签名为:
回叫(xk) 其中xk是当前参数向量。 退换商品 解析结果
表示为OptimizeResult对象的优化结果。重要的属性是:x解决方案数组,success一个指示优化器是否成功退出的布尔标志,以及描述终止原因的消息。有关其他属性的说明,请参见OptimizeResult。

你可能感兴趣的:(scipy.optimize.minimize参数)