Algorithm 两个矩阵的乘积为零

Algorithm 两个矩阵的乘积为零,algorithm,math,Algorithm,Math,如果我有两个矩阵,一个是M X N,另一个是N X p,假设这些矩阵的乘积等于零,并且给定了矩阵N X p的值,我怎么能找到矩阵M X N的值呢 我知道其中一个可能的解决方案是零矩阵,但我实际上在寻找一个非零矩阵 谢谢 阿披舍克S所以你在寻找AB成为0。诀窍是,如果它是0,那么对于任何可逆的nxn矩阵C,D,E,A C-1d-1e-1e-D C B也必须是0。(甚至更多。) 现在以B为例,应用基本行运算将其转化为(这相当容易做到)。这些运算中的每一个都可以通过一个可逆矩阵的乘法来表示,该矩阵的逆

如果我有两个矩阵,一个是M X N,另一个是N X p,假设这些矩阵的乘积等于零,并且给定了矩阵N X p的值,我怎么能找到矩阵M X N的值呢

我知道其中一个可能的解决方案是零矩阵,但我实际上在寻找一个非零矩阵

谢谢
阿披舍克S

所以你在寻找
AB
成为
0
。诀窍是,如果它是0,那么对于任何可逆的
nxn
矩阵
C,D,E
,A C-1d-1e-1e-D C B也必须是
0
。(甚至更多。)

现在以
B
为例,应用基本行运算将其转化为(这相当容易做到)。这些运算中的每一个都可以通过一个可逆矩阵的乘法来表示,该矩阵的逆运算很容易计算(这只是反向行运算)

一旦我们有了行梯队形式的
B
,所有可能的矩阵
A
都很容易找到-每一列都有0,或者每一行中有一个以上的非零条目时,会产生另一个独立向量,该向量将给出0。现在选择你的
A
,然后乘以所有的逆行运算(确保按正确的顺序执行!)得出你的答案。

这称为。在您的情况下,顺序是相反的。这可以通过转置矩阵轻松解决:

A * B = 0
B^T * A^T = 0^T
A^T = M(Null(B^T))
A = M(Null(B^T))^T
其中
M(V)
V
的向量的任何线性组合的矩阵

示例:

    [ 4 4 8 ]
B = [ 2 7 2 ]
    [ 5 3 5 ]
    [ 7 5 4 ]

            { [  87 ] }
Null(B^T) = { [ -40 ] }
            { [-216 ] }
            { [ 116 ] }

A = [ 87  -40  -216  116 ]
    [  0    0     0    0 ]

A * B = [ 0 0 0 ]
        [ 0 0 0 ]

如果有一个非零解,我认为会有无限多的其他非零解。请查看我们的姐妹网站,了解您的纯数学问题。:)