【发布时间】:2021-11-16 07:59:34
【问题描述】:
我编写了以下代码来最小化目标,其中变量x1、x2、x3 介于 0.8-1.2 之间,x1、x2、x3 的总和是一个数字。
import numpy as np
from scipy.optimize import minimize
def objective(x):
x1 = x[0]
x2 = x[1]
x3 = x[2]
return 1/x1 +2/x3+ 0.5/x2
def constraint1(x):
return 7*x[0]+8*x[1]+4*x[2]-5
x0 = [1,0.8, 1.1]
b = (0.8, 1.2)
bnds = (b,b,b)
con1 = {'type':'eq', 'fun' :constraint1}
solution = minimize(objective, x0, method ='', bounds= bnds, constraints= con1)
print (solution)
我使用了 BFGS 函数,它给了我一个超出 0.8-1.2 范围的数组,而 SLSQP 给了我success=false。我的代码有问题还是我使用了错误的方法?
【问题讨论】:
标签: python optimization scipy