无法实施scipy优化最小化

时间:2017-10-05 13:49:56

标签: python optimization scipy

我在实施scipy.optimize.minimize()时遇到了一些麻烦。 它返回错误ValueError: Objective function must return a scalar。 这是我的代码:

def cost(A,b,x):
    return np.sum(np.square(np.dot(A,x)-b))

def sse(x):
    return 1-sum(x)

x0 = np.ones(4)/4
bounds = tuple((0,1) for x in x0)
cons = ({'type': 'eq', 'fun': sse})
All = minimize(cost, x0, args=(A, curve), method='SLSQP', bounds=bounds, constraints=cons).x

A的形状为(400,4)curve的形状为(400,)xx0的形状为(4,)。< / p>

我似乎错过了一些非常微不足道的事情。任何帮助,将不胜感激。提前致谢!

1 个答案:

答案 0 :(得分:0)

您的函数的签名,以最小化需求{ "kind": "drive#revisionList", "nextPageToken": string, "revisions": [ { "kind": "drive#revision", "id": string, "mimeType": string, "modifiedTime": datetime, "lastModifyingUser": { "kind": "drive#user", "displayName": string, "emailAddress": string }, "originalFilename": string, "size": long } ] } 作为第一个非关键字参数;其他人可能会跟随。

(所以内部你的变量映射是错误的,因此你的形状会产生一个不同于标量的不同结果形状)

我也没有在您的代码中看到x的使用!可能是curve

所以只需改变:

curve = b