Python:带边界限制的矩阵除法

Python:带边界限制的矩阵除法,python,linear-algebra,matrix-multiplication,boundary,Python,Linear Algebra,Matrix Multiplication,Boundary,我试图模拟一个信号,需要解矩阵方程Ax=B。这里a和B都是已知的:a是500x40矩阵(40个候选信号源),B是500x1向量(我的目标信号),x是我要寻找的40x1向量(系数) 我找到了函数numpy.linalg.lstsq。但是,在这种情况下,我有一些边界限制: x的所有元素都必须是正的 目标信号中有5个特征峰需要固定,换句话说,最终产品A*x的5个特定元素必须与B相同 如何首先应用边界条件,然后用最小二乘法求解?我应该继续使用numpy.linalg.lstsq还是其他函数?我现在不知所

我试图模拟一个信号,需要解矩阵方程Ax=B。这里a和B都是已知的:a是500x40矩阵(40个候选信号源),B是500x1向量(我的目标信号),x是我要寻找的40x1向量(系数)

我找到了函数numpy.linalg.lstsq。但是,在这种情况下,我有一些边界限制:

  • x的所有元素都必须是正的
  • 目标信号中有5个特征峰需要固定,换句话说,最终产品A*x的5个特定元素必须与B相同
  • 如何首先应用边界条件,然后用最小二乘法求解?我应该继续使用numpy.linalg.lstsq还是其他函数?我现在不知所措,非常感谢你的帮助

    提前多谢


    Somi

    非负最小二乘法可以解决
    x
    为正的要求:可以处理这一点(正如该文档中提到的
    scipy.optimize.lsq_linear
    )。至于您的其他要求,您是说
    A*x
    的五个特定条目必须与
    B
    匹配还是任意五个条目?嗨,艾哈迈德,谢谢您的评论!A*x的五个特定条目必须与B匹配。索引是已知的。