【发布时间】:2015-09-07 02:12:07
【问题描述】:
在我的问题中,我需要更新成本函数中的 args 值,但 args 是一个函数参数,也具有元组结构。我想知道有没有办法改变 args 的元素并更新它以通过 jac 函数使用它?例如,在下面的代码中
paraList = [detValVec, projTrans, MeasVec,
coeMat, resVec, absCoeRec]
res = optimize.minimize(costFunc, x0, args=(paraList,), method='BFGS', jac=gradientFunc, options={'gtol': 1e-6, 'disp': True})
def costFunc(x0,arg):
para = list(arg)
para[3], para[4], para[5] = forwardModelFunc(para[0], para[1], para[2])
return para[5]
我想更新 args 参数中的 para[3]、para[4]、para[5]。
【问题讨论】:
-
您的
costFunc不依赖于x0。如果更改x0没有效果,则不能将x0最小化?您需要重新排列您的函数,以便您要更改的“参数”是第一个 (x0) 参数。
标签: python optimization scipy argument-passing minimize