scipy.optimize最小化不一致的结果

时间:2019-04-21 23:44:43

标签: python scipy scipy-optimize scipy-optimize-minimize

从scipy优化运行最小化功能时,我得到一些非常奇怪的结果。

这是代码

from scipy.optimize import minimize

def objective(x):
    return - (0.05 * x[0] ** 0.64 + 0.4 * x[1] ** 0.36)

def constraint(x):
    return x[0] + x[1] - 5000

cons = [{'type':'eq', 'fun': constraint}]

运行时

minimize(objective, [2500.0, 2500.0], method='SLSQP',  constraints=cons)

我获得x的每个元素的分配2500。 与fun: -14.164036415985395

通过快速检查,此分配[3800, 1200]给出了-14.9

它对初始条件也很敏感。

关于我在做什么错的任何想法

两个功能plotted

更新 它实际上返回初始条件。

如果我尝试这样做

def objective(x):
    return - (x[0] ** 0.64 + x[1] ** 0.36)

def constraint(x):
    return x[0] + x[1] - 5000.0

cons = [{'type':'eq', 'fun': constraint}]

minimize(objective, [2500, 2500], method='SLSQP', constraints=cons)

返回的结果似乎很好(我已经更改了目标函数)

0 个答案:

没有答案
相关问题