algorithm - 通过删除行和列使奇异矩阵成为非奇异矩阵

标签 algorithm matlab graph linear-algebra graph-algorithm

我有一个大的稀疏方阵 n × n,它的秩略低于 n,假设为 m。我想通过按一定规则删除行和列来使其非奇异。规则是,如果删除第 i 行,则必须也删除第 i 列,以便矩阵始终是方阵。这有效地删除了邻接图中的节点。

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

我的第二个问题是:是否有一种有效的算法可以在不删除过多行和列的情况下获得 p by p 非奇异子矩阵

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

最佳答案

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。

关于algorithm - 通过删除行和列使奇异矩阵成为非奇异矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35089798/

相关文章:

image - 当我们有 from 时,如何获得位移场或控制点向量?

algorithm - 找到两个顶点子集之间的最小距离

algorithm - 在复杂性方面最好的寻路算法是什么?

matlab - 将 PDF 与 Matlab 相结合

arrays - 查找数组中是否存在两个互质数

arrays - 根据计数进行逐元素数组复制

r - 如何平滑密度曲线以减少峰值?

c# - 如何在WPF中轻松绘制图形?

algorithm - 枚举一种语言的所有单词

algorithm - 将 Not All Equal 2-Sat 问题转换为等效的 2-SAT 问题