Python 将不同长度的参数列表传递给scipy.optimize.minimize(了解参数)

Python 将不同长度的参数列表传递给scipy.optimize.minimize(了解参数),python,optimization,scipy,Python,Optimization,Scipy,我想了解提供给scipy.optimize.minimize的参数。我把我的优化称为 res = minimize(func, para_init, method= 'SLSQP', constraints=cons) para_init看起来像是,[x,y,np.数组([a,b,c]),np.数组([e,f]),cons是一个约束字典func()接受para_init中列出的所有参数,并给出一个标量对象。但是,我面临以下问题: 1) 错误:value错误:使用序列设置数组元素 2) 我想指

我想了解提供给scipy.optimize.minimize的参数。我把我的优化称为

res = minimize(func, para_init, method= 'SLSQP', constraints=cons) 
para_init
看起来像是,
[x,y,np.数组([a,b,c]),np.数组([e,f])
,cons是一个约束字典
func()
接受
para_init
中列出的所有参数,并给出一个标量对象。但是,我面临以下问题:

1) 错误:
value错误:使用序列设置数组元素

2) 我想指定
xtol=0.001,ftol=0.001,bounds=None,jac=None
,如果我简单地将这些行添加到
minimize()
,它会抱怨为
TypeError:minimimize()得到了一个意外的关键字参数“xtol”
。此外,我还希望有以下规范
options={'maxiter':100,'disp':True}
,但我还发现了类似的意外关键字错误

感谢您的帮助。

发件人:

scipy.optimize.minimize(fun,x0,args=(),method=None,jac=None,hess=None,hessp=None,bounds=None,constraints=(),tol=None,callback=None,options=None

minimize()
需要两个位置参数:
fun
x0

此外,它没有
xtol
ftol
关键字参数,但有
tol
关键字arg(终止容差)

xtol
ftol
maxfev
特定于所使用的方法。特别是Nelder-Mead方法的特殊性,并且不适用于您正在使用的方法(SLSQP)

方法特定选项可通过
选项
dict提供

因此,你应致电:

res=minimize(func,x0,args=para_init,method='SLSQP',constraints=cons,bounds=…,jac=…,options={…})

发件人:

scipy.optimize.minimize(fun,x0,args=(),method=None,jac=None,hess=None,hessp=None,bounds=None,constraints=(),tol=None,callback=None,options=None

minimize()
需要两个位置参数:
fun
x0

此外,它没有
xtol
ftol
关键字参数,但有
tol
关键字arg(终止容差)

xtol
ftol
maxfev
特定于所使用的方法。特别是Nelder-Mead方法的特殊性,并且不适用于您正在使用的方法(SLSQP)

方法特定选项可通过
选项
dict提供

因此,你应致电:

res=minimize(func,x0,args=para_init,method='SLSQP',constraints=cons,bounds=…,jac=…,options={…})


minimize
有两个必需的参数:要最小化的函数和初始猜测。你没有提供后者。看见考虑调用<代码> SISPY。直接优化FMIN SLQPP < /代码>。因为参数语义不依赖于优化方法,所以更清晰。换句话说,
minimize
通过将前者的参数分配给后者来调用其他函数(例如,
fmin_slsqp
),这使得
minimize
难以简洁全面地记录。

minimize
有两个必需的参数:要最小化的函数和初始猜测。你没有提供后者。看见考虑调用<代码> SISPY。直接优化FMIN SLQPP < /代码>。因为参数语义不依赖于优化方法,所以更清晰。换句话说,
minimize
通过将前者的参数分配给后者来调用其他函数(例如,
fmin_slsqp
),这使得
minimize
很难简洁而全面地记录文档。

第一个错误是因为必须提供初始猜测作为第二个参数。第二个错误是因为
xtol
ftol
不是要最小化的参数
tol
可能是您在那里寻找的参数。总的来说,阅读手册页:我犯了错误,我编辑了,错误地使用了
args=para_init
,我想
para_init
作为我的初始猜测,没有额外的参数或参数。第一个错误是因为必须提供初始猜测作为第二个参数。第二个错误是因为
xtol
ftol
不是要最小化的参数
tol
可能是您在那里寻找的参数。总的来说,阅读手册页:我犯了错误,我编辑了,错误地使用了
args=para_init
,我想
para_init
作为我的初始猜测,没有额外的参数或参数。第一个错误是因为必须提供初始猜测作为第二个参数。第二个错误是因为
xtol
ftol
不是要最小化的参数
tol
可能是您在那里寻找的参数。总的来说,阅读手册页:我犯了错误,我编辑了,错误地使用了
args=para_init
,我想
para_init
作为我的初始猜测,没有额外的参数或argsThanks,请查看Error1(没有args)mescalimum中的编辑,
xtol
ftol
SLSQP选项?我不相信他们是。事实上,他们是为纳尔-米德方法。OP似乎有很多东西出了问题谢谢,请查看Error1(没有参数)mescalinum中的编辑,是
xtol
ftol
SLSQP选项吗?我不相信他们是。事实上,他们是为纳尔-米德方法。OP似乎有很多东西出了问题谢谢,请查看Error1(没有参数)mescalinum中的编辑,是
xtol
ftol
SLSQP选项吗?我不相信他们是。事实上,他们是为纳尔-米德方法。看来这次行动得到了不少好处