python - 将变长的参数列表传递给 scipy.optimize.minimize ( 理解参数)

我想了解提供给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中列出的所有参数,并给出一个scalar对象,但是,我面临以下问题:

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有两个必需的参数: 最小化和初始猜测的函数。你还没有提供后者,请参见这里请考虑直接调用scipy.optimize.fmin_slsqp ,由于参数语义不依赖于优化方法,所以,文档更清晰,换句话说,minimize调用其他函数(例如,fmin_slsqp )将前者的参数分配给后者,使minimize难以简单,全面地文档化。

...