我正在使用numpy.lstsq()
拟合一组数据:
numpy.linalg.lstsq(a,b)[0]
返回类似:
array([ -0.02179386, 0.08898451, -0.17298247, 0.89314904])
请注意,拟合解决方案是正浮点数和负浮点数的混合。
不幸的是,在我的物理模型中,拟合解决方案代表了一个质量:因此,我想强制
lstsq()
返回一组正值作为拟合解决方案。是否有可能做到这一点?IE。
solution = {a_1, ... a_i, ... a_N} with a_i > 0 for i = {1, ..., N}
最佳答案
非负最小二乘在 scipy.optimize.nnls
中实现。
from scipy.optimize import nnls
solution = nnls(a, b)[0]
关于python - numpy lstsq中的参数约束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38826726/