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)
Run Code Online (Sandbox Code Playgroud)
我的函数f(X)有一个x=2.557, y=1我应该能够找到的局部最小值。
上面显示的代码只会给出结果 where x=1。我尝试了不同的公差和所有三种方法:L-BFGS-B、TNC 和 SLSQP。这是到目前为止我一直在看的线程:
Scipy.optimize:如何限制参数值
我怎样才能解决这个问题?
我正在使用 Spyder(Python 3.6)。