Я пытаюсь свести к минимуму функцию и пытаюсь вычислить значение 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))
В чем может быть причина этого?