minimize(method=’Powell’)#

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

使用改进的Powell算法最小化一个或多个变量的标量函数。

参数:
fun可调用

要最小化的目标函数

fun(x, *args) -> float

其中 x 是一个形状为 (n,) 的一维数组,而 args 是一个元组,包含完全指定函数所需的固定参数。

x0ndarray,形状 (n,)

初始猜测。大小为 (n,) 的实数元素数组,其中 n 是独立变量的数量。

args元组,可选

传递给目标函数及其导数的额外参数(funjachess 函数)。

method字符串或可调用对象,可选

本文档专门针对 method='powell',但也有其他选项可用。请参阅 scipy.optimize.minimize 的文档。

bounds序列或 Bounds,可选

决策变量的边界。有两种方法可以指定边界

  1. Bounds 类的一个实例。

  2. x 中每个元素的 (min, max) 对序列。使用 None 表示没有边界。

如果未提供边界,则将使用无界线搜索。如果提供了边界且初始猜测在边界内,则整个最小化过程中的每次函数评估都将在边界内。如果提供了边界,初始猜测在边界之外,并且 direc 是满秩的(或保持默认),那么第一次迭代期间的一些函数评估可能会超出边界,但第一次迭代之后的所有函数评估都将在边界内。如果 direc 不是满秩的,则某些参数可能未被优化,并且不能保证解决方案在边界内。

options字典,可选

求解器选项的字典。所有方法都接受以下通用选项

maxiter整数

要执行的最大迭代次数。根据所用方法,每次迭代可能会使用多次函数评估。

disp布尔值

设置为 True 以打印收敛消息。

请参阅下面 method='powell' 的特定方法选项。

callback可调用,可选

每次迭代后调用。签名为

callback(xk)

其中 xk 是当前的参数向量。

返回:
resOptimizeResult

优化结果表示为一个 OptimizeResult 对象。重要属性包括:x(解数组)、success(一个布尔标志,指示优化器是否成功退出)和 message(描述终止原因)。有关其他属性的描述,请参阅 OptimizeResult

另请参阅

有关其余参数的文档,请参阅 scipy.optimize.minimize

选项:
——-
disp布尔值

设置为 True 以打印收敛消息。

xtol浮点数

xopt 的相对误差,可接受的收敛值。

ftol浮点数

fun(xopt) 的相对误差,可接受的收敛值。

maxiter, maxfev整数

允许的最大迭代次数和函数评估次数。如果 maxitermaxfev 均未设置,则默认为 N*1000,其中 N 是变量的数量。如果 maxitermaxfev 都已设置,则最小化将在先达到者处停止。

direcndarray

Powell 方法的初始方向向量集。

return_all布尔值,可选

设置为 True 以返回每次迭代的最佳解决方案列表。