from numpy import *; from scipy.optimize import *; from math import *
def f(X):
x=X[0]; y=X[1]
return x**4-3.5*x**3-2*x**2+12*x+y**2-2*y
bnds = ((1,5), (0, 2))
min_test = minimize(f,[1,0.1], bounds = bnds);
print(min_test.x)
Моя функция f(X)
имеет локальные минимумы на x=2.557, y=1
, которые я должен быть в состоянии найти.
Приведенный выше код даст только результат, где x=1
.Я пробовал с разной толерантностью и все три метода: L-BFGS-B, TNC и SLSQP.Это поток, который я смотрел до сих пор: Scipy.optimize: как ограничить значения аргументов
Как я могу это исправить?
Я использую Spyder (Python 3.6).