我不知道如何通过minimize函数将其他参数传递给约束字典。我可以成功地将其他参数传递给目标函数。
constraints参数是一个dict,它有一个字段“args”,其中args是一个序列。我确信这是我需要传递额外参数的地方,但我不知道语法。我得到的最接近的是:from scipy.optimize import minimize
def f_to_min (x, p):
return (p[0]*x[0]*x[0]+p[1]*x[1]*x[1]+p[2])
f_to_min([1,2],[1,1,1]) # test function to minimize
p=[] # define additional args to be passed to objective function
f_to_min_cons=({'type': 'ineq', 'fun': lambda x, p : x[0]+p[0], 'args': (p,)}) # define constraint
p0=np.array([1,1,1])
minimize(f_to_min, [1,2], args=(p0,), method='SLSQP', constraints=f_to_min_cons)
我得到以下错误---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
in ()
1 p0=np.array([1,1,1])
----> 2 minimize(f_to_min,