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,) 的 1-D 数组,args 是一个元组,包含完全指定函数所需的固定参数。

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

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

direcndarray

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

return_allbool,可选

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