我有以下 Matlab 代码:
r = symrcm(A(2:end, 2:end));
prcm = [1 r + 1];
spy(A(prcm, prcm));
哪里A应该是稀疏连接矩阵。
我明白它的作用:
找到
r子矩阵的置换向量AA(2:end, 2:end)(由反向 Cuthill-McKee 算法产生)创建一个向量
prcm,它基本上是一个带有在第一个位置和所有其他元素r增加.这个
prcm向量应用于逻辑A上A(prcm, prcm)意味着我们将A根据反向 Cuthill-McKee 算法置换除第一行和第一列之外的所有行和列。所以得到的矩阵看起来像这样:忽略您在图中看到的特定数字。
题
为什么要对矩阵的行和列进行这种排列?
从我一直在阅读和观察到的内容中,例如,在尝试删除第一行的所有条目后,对这个矩阵应用高斯消元会产生灾难性的填充(检查第 5.7 章,来自“A first course in数值方法”,Ascher 和 Greif)。所以,谁写了这段代码肯定不想找到一个排列应用高斯消去...
