通过删除行和列使奇异矩阵非奇异

时间:2016-01-29 16:48:28

标签: algorithm matlab graph linear-algebra graph-algorithm

我有一个大的稀疏方阵n由n,它的等级略低于n,比方说m。我希望通过某个规则删除行和列来使其成为非单数形式。规则是如果你删除第i行,你也必须删除第i列,这样矩阵总是方形的。这有效地删除了邻接图中的节点。

我的第一个问题是:是否总是存在这样的n-m行和列的组合我可以删除,使得m个子矩阵的剩余m在结构上是非奇异的。

我的第二个问题是:是否有一种有效的算法来获得p非p奇异子矩阵而不会删除过多的行和列

为了提供更多的背景,我正在处理的矩阵大约是1000乘1000,稀疏度接近0.05

2 个答案:

答案 0 :(得分:5)

1不是这样。这是一个例子。

[1 0 0 0;
 0 1 0 0;
 0 0 0 1;
 0 0 0 0]

等级显然是3,恰好是非零行/列的数量)。您不能删除1,2,3行和1,2,4列。因此涵盖了1到4个。

答案 1 :(得分:0)

第一个不是真的。正如hiandbali所回答的那样。我设法通过DFS解决了第二个问题。内部邻接矩阵不是单一的。