我想了解提供给scipy.optimize.minimize.最小化. 我把我的优化称为
res = minimize(func, para_init, method= 'SLSQP', constraints=cons)
para_init
看起来像,[x,y,np.array([a,b,c]),np.array([e,f])]
,cons是一个约束字典。func()
接受para_init
中列出的所有参数并给出一个标量对象。但我面临着以下问题:
1)错误:ValueError: setting an array element with a sequence
2)我想指定xtol = 0.001, ftol = 0.001, bounds = None, jac = None
,如果我只是将这些行添加到minimize()
中,它将被投诉为TypeError: minimize() got an unexpected keyword argument 'xtol'
。另外,我希望有以下规范options = {'maxiter': 100,'disp': True}
,但我也有类似的意外关键字错误。在
谢谢你的帮助。在
minimize
有两个必需的参数:最小化函数和初始猜测。你没有提供后者。见this。考虑直接调用scipy.optimize.fmin_slsqp
。documentation更清晰,因为参数语义不依赖于优化方法。换言之,minimize
通过将前者的参数分配给后者来调用其他函数(例如fmin_slsqp
),这使得{来自http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.optimize.minimize.html:
minimize()
需要两个位置参数:fun
和{此外,它没有
xtol
或ftol
关键字参数,但有一个tol
关键字参数(终止公差)。在xtol
、ftol
、maxfev
是特定于所用方法的。尤其是Nelder-Mead方法,而不适用于您使用的方法(SLSQP)。在方法特定的选项可以通过
options
dict提供因此,您应该致电:
相关问题 更多 >
编程相关推荐