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 是 vollständig 指定函数所需固定参数的元组。

x0ndarray,形状 (n,)

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

args元组,可选

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

methodstr 或可调用对象,可选

本说明文档特定于 method='powell',但有其他选项可用。请参阅 scipy.optimize.minimize 的文档说明。

bounds序列或 Bounds,可选

决策变量的界限。有两种指定界限的方法:

  1. Bounds 类的实例。

  2. x 中每个元素的 (min, max) 对的序列。None 用于指定无界限。

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

options字典,可选

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

maxiterint

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

dispbool

设为 True 以打印收敛消息。

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

callback可调用对象,可选

在每次迭代后调用。签名为:

callback(xk)

其中 xk 是当前参数向量。

返回:
resOptimizeResult

作为 OptimizeResult 对象表示的优化结果。重要属性为:解数组 x、布尔标记 success(指示优化器是否成功退出)以及描述终止原因的 message。参阅 OptimizeResult 了解其他属性的说明。

另请参阅

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

选项:
——-
dispbool

设为 True 以打印收敛消息。

xtolfloat

用于判断收敛的可接受的解 xopt 中的相对误差。

ftolfloat

用于判断收敛的可接受的 fun(xopt) 中的相对误差。

maxiter, maxfevint

允许的最大迭代次数和函数求值次数。如果既未设置 maxiter,也未设置 maxfev,将默认为 N*1000,其中 N 是变量的数量。如果 maxitermaxfev 均已设置,则最小化将在首次达到任一设定的次数时停止。

direcndarray

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

return_allbool,可选

设置为 True,将返回每次迭代时最佳解的列表。