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元组,可选
传递给目标函数及其导数的额外参数(fun,jac 和 hess 函数)。
- methodstr 或 可调用对象,可选
本文档专门针对
method='powell'
,但还有其他选项可用。请参阅scipy.optimize.minimize
的文档。- bounds序列或
Bounds
,可选 决策变量的界限。有两种方法可以指定界限
Bounds
类的实例。每个 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
是变量的数量。如果同时设置了 maxiter 和 maxfev,则最小化将在首先达到的次数停止。- direcndarray
Powell 方法的初始方向向量集。
- return_allbool,可选
设置为 True 以返回每次迭代中最佳解决方案的列表。