【发布时间】:2015-01-09 00:24:12
【问题描述】:
我正在学习使用scipy.optimize.minimize 优化一个多元约束非线性问题,但收到了奇怪的结果。
我的问题:
minimize objfun
objfun x*y
constraints 0<=x<=5, 0<=y<=5, x+y==5
我的代码:
from scipy import optimize
def func(x):
return x[0]*x[1]
bnds=((0,100),(0,5))
cons=({'type':'eq','fun':lambda x:x[0]+x[1]-5})
x0=[0,0]
res= optimize.minimize(func,x0,method='SLSQP',bounds=bnds,constraints=cons)
收到的结果:
status: 0
success: True
njev: 2
nfev: 8
fun: 6.2499999999999991
x: array([ 2.5, 2.5])
message: 'Optimization terminated successfully.'
jac: array([ 2.5, 2.5, 0. ])
nit: 2
我期望 fun 为 0 或显着接近 0,x 或 y 为 0
【问题讨论】:
标签: python optimization numpy minimize