我不知道如何通过最小化函数将其他参数传递给约束字典.我可以成功地将其他参数传递给目标函数.
上最小化函数文档是在这里:http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html#scipy.optimize.minimize
constraints参数是一个包含字段'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)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-19-571500063c9e> in <module>()
1 p0=np.array([1,1,1])
----> 2 minimize(f_to_min, [1,2], args=(p0,), method='SLSQP', constraints=f_to_min_cons)
C:\Python27\lib\site-packages\scipy\optimize\_minimize.pyc in minimize(fun, x0, args, method, jac, hess, hessp, bounds, …Run Code Online (Sandbox Code Playgroud)