如何应用nnls,其中b是矩阵MXP而A是MXN

问题描述

我正在尝试从matlab转换python代码。使用的函数是lsqnonneg或nnls,我正在尝试解决它,其中x总是> =0。我正在尝试解决的方程式如下:

Xt_1 + Xt_2 + ... + Xt_n = t_p 
Xs_1 + Xs_2 + ... + Xs_n = s_p
X_1 + X_2 + ... + X_n = 1

但X不能为负。因此,我的示例如下:

我的矩阵A为3x5

array([[-20.57652747,18.73385337,-26.71877448,28.56144858,0.        ],[-15.03330836,-15.48886316,-10.93331517,41.45548669,[ 24.,24.,0.        ]])

和3x10的矩阵B,

array([[26.885,26.887,24.796333,22.45775,18.7435,14.519368,12.731,11.3005,10.03,8.559   ],[34.473,34.472,34.508,34.376,34.44,34.601,34.584,34.592,34.713,34.757   ],[ 1.,1.,1.      ]])

如果我使用numpy.linalg.lstsq,我将得到一个5x10的矩阵,但是x值为负。因此,我想知道如何解决这个问题,或者是否有任何巧妙的解决方案,但使用nnls。

先谢谢您

马修斯

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)