基于Nelder-Mead算法的Python最小化函数

基于Nelder-Mead算法的Python最小化函数,python,numpy,scipy,Python,Numpy,Scipy,我试图用Nelder-Mead算法最小化函数mymodel,以适合我的数据。这是通过scipy的optimize.fmin在myfit函数中完成的。我想我已经很接近了,但我肯定错过了什么,因为我一直在出错: '操作数无法与形状(80、)(5、)一起广播' 问题是使用full\u output=true参数调用fmin,它不仅返回优化的参数,而且返回包含参数和其他内容的元组 参数是元组中的第一个值。您可以使用[0]选择此选项: c = optimize.fmin(mymodel, c, args=

我试图用Nelder-Mead算法最小化函数
mymodel
,以适合我的数据。这是通过scipy的
optimize.fmin
myfit
函数中完成的。我想我已经很接近了,但我肯定错过了什么,因为我一直在出错:

'操作数无法与形状(80、)(5、)一起广播'


问题是使用
full\u output=true
参数调用
fmin
,它不仅返回优化的参数,而且返回包含参数和其他内容的元组

参数是元组中的第一个值。您可以使用
[0]
选择此选项:

c = optimize.fmin(mymodel, c, args=(t,pos), maxiter=5000, full_output=True)[0]
或者只需删除
full\u output=true
参数:

c = optimize.fmin(mymodel, c, args=(t,pos), maxiter=5000)

在问题中包含完整的回溯。这将让我们知道是哪一行导致了错误。您从不定义
y
c = optimize.fmin(mymodel, c, args=(t,pos), maxiter=5000)