numpy lstsq中的参数约束

时间:2016-08-08 10:22:00

标签: python numpy

我使用numpy.lstsq()

拟合一组数据
numpy.linalg.lstsq(a,b)[0]

返回类似的内容:

array([ -0.02179386,  0.08898451,  -0.17298247,  0.89314904])

请注意,拟合解决方案是正浮动和负浮动的混合。

不幸的是,在我的物理模型中,拟合解决方案代表质量:因此我希望强制lstsq()返回一组正值作为拟合的解。有可能这样做吗?

solution = {a_1, ... a_i, ... a_N} with a_i > 0 for i = {1, ..., N}

1 个答案:

答案 0 :(得分:6)

非负最小二乘法scipy.optimize.nnls中实现。

from scipy.optimize import nnls

solution = nnls(a, b)[0]