问题描述
我正在尝试从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 (将#修改为@)