结果不一样
def func(x): return (2*x[0]*x[1]+2*x[0]-x[0]**2-2*x[1]**2) def func_deriv(x): dfdx0=(-2*x[0]+2*x[1]+2) dfdx1=(2*x[0]-4*x[1]) return np.array([dfdx0,dfdx1]) cons=({"type":"eq", "fun":lambda x:np.array([x[0]**3-x[1]]), "jac":lambda x:np.array([3.0*(x[0]**2.0),-1.0])}, {'type':'ineq', 'fun':lambda x:np.array([x[1]-1]), 'jac':lambda x:np.array([0.0,1.0])}) res=minimize(func,[-1.0,1.0],jac=func_deriv,constraints=cons,method='SLSQP',options={'disp':True}) print("RESTRICT",res)