如何使用零减少矩阵排名?

时间:2017-06-30 15:59:01

标签: matrix sparse-matrix reduce rank

我正在使用等级> 1的矩阵。有可能将矩阵的秩降低到秩= 1,将某些值代入零值?

2 个答案:

答案 0 :(得分:0)

矩阵中的秩是指有多少列向量是独立的且非零(或者行向量,但我被教导总是使用列向量)。因此,如果您愿意丢失有关矩阵定义的变换的大量信息,您可以创建一个矩阵,它只是矩阵的第一个非零列,而其他所有列都设置为零。保证排名第1。

但是,这会失去关于转型的大量信息。也许更有用的事情是将矩阵投影到1x1大小的空间。有一些方法可以这样做,可以创建从矩阵到新空间的注入,保证没有两个矩阵产生相同的结果。首先想到的是:
Let A be an n x m matrix Let {P_i} be the ith prime number. Let F(A) = {sum from i to (n * m)} {P_i} ^ (A_(i div n),(i mod m))

虽然这会生成一个数字,但您可以将单个数字视为1 x 1矩阵,如果非零,则将其排在第1位。

所有这一切,排名1矩阵有点无聊,你可以用矩阵做更酷的东西,如果你把它保持在等级!= 1.特别是,如果你有一个nxn矩阵的秩n,整个世界的可能性打开。这实际上取决于你想要使用这些矩阵的内容。

答案 1 :(得分:0)

您可能希望查看奇异值分解,该分解可用于将矩阵写成加权外部乘积之和(请参见here)。仅选择此总和中权重最高的分量,将为您提供最接近分解矩阵的等级1近似值。

大多数常见的线性代数库(EigenOpenCVNumPy)都有SVD实现。