Я немного искал об этом и не смог решить эту проблему.Я работаю с функцией минимизации из scipy.optimize и продолжаю получать сообщение об ошибке:
'str' объект не может быть вызван.
Мой код сложен, поэтому япосмотрел простой пример онлайн, чтобы убедиться, что я все правильно вводил, и все равно получил ту же ошибку.Вот простой пример, который я нашел на youtube:
https://www.youtube.com/watch?v=cXHvC_FGx24
import numpy as np
from scipy.optimize import minimize
def objective(x):
x1=x[0]
x2=x[1]
x3=x[2]
x4=x[3]
return x1*x4*(x1+x2+x3)+x3
def constraint1(x):
return x[0]*x[1]*x[2]*x[3]-25
def constraint2(x):
sum_sq = np.sum(np.square(x))
return sum_sq-40
x0=[1,5,5,1]
b=(1, 5)
bnds = (b,b,b,b)
con1 = {'type':'ineq','fun':'constraint1'}
con2 = {'type':'eq','fun':'constraint2'}
cons=[con1,con2]
sol=minimize(objective, x0, method='SLSQP',bounds=bnds,constraints=cons)
Это код непосредственно из примера на youtube, который, кажется, правильно работает на чужоммашина, но не моя.Что я тут не так понял?
[РЕДАКТИРОВАТЬ: Если я уберу ограничения, то все работает нормально.Что плохого в том, как я ввожу функции ограничения?]
Большое спасибо за то время.