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).
print(f([2557, 1])) = 42690172880760.5
, я бы не назвал это локальным минимумом ... - person Joe   schedule 21.09.2018