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元组,可选
传递给目标函数及其导数(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,将返回每次迭代时最佳解的列表。