我试图最小化一个函数,并尝试计算得到输出X
的最小值的Y
的值。我正在使用scipy
进行计算。我为此编写了以下代码,但出现一条错误消息:
ValueError: Objective function must return a scalar
这是我编写的代码:
from __future__ import division
import numpy as np
from scipy.optimize import minimize
def f(x):
Y = ((x + 100) / 100)
return Y
def apply_constraint(inputs):
if(inputs[0] >= -1):
return 0
my_constraints = ({'type': 'eq', "fun": apply_constraint})
min_result = minimize(f, [2,2,2], method="SLSQP", options={
'disp': False}, bounds=[(-2, 101),(-2, 101),(-2, 101)], constraints=my_constraints)
print("Minima found at: X = {}, Y = {}".format(min_result.x, min_result.fun))
这可能是什么原因?