文档

科尔珀姆

基于非零计数的稀疏列置换

句法

J = Colperm(S)

描述

J = Colperm(S)生成排列矢量j这样的列S(:,J)根据非零条目计数的增加进行排序。这有时可作为LU分解的预订。在这种情况下使用lu(s(:,j))

如果s是对称的,然后j=colperm(S)产生置换j这样的行和列都S(J,J)根据非零条目计数的增加进行排序。如果s是积极的,这有时可以作为cholesky分解的预订。在这种情况下使用chol(S(J,J))

例子

n-经过-n箭头矩阵

a = [一个(1,n);一个(n-1,1)Speye(N-1,N-1)]

具有完整的第一行和列。它的分解,lu(a),几乎完全饱满。该声明

j = colperm(a)

返回j=[2:n1]。所以A(J,J)将完整的行和列发送到底部和后部,以及lu(a(j,j))具有与一种本身。

另一方面,Bucky Ball示例,

B = Bucky

每个行和列中完全具有三个非零元素,因此j = colperm(b)是身份置换量,完全没有帮助以随后的因素来减少填充。

算法

该算法涉及每一列中非齐率的计数的一种。

在R2006a之前引入