MATLAB Function Reference    
colperm

非ゼロ要素数に基づくスパース列置換

表示

詳細

j = colperm(S) は、S(:,j) の列が非ゼロ要素数の増加するように並べ替えられるような、置換ベクトル j を作成します。これは、LU分解の前処理の並べ替えとして有効です。この場合、lu(S(:,j)) を使ってください。

S が対称の場合、j = colperm(S) は、S(j,j) の行と列が非ゼロ要素の増加するように並べ替えられるような置換ベクトル j を作成します。Sが正定行列ならば、コレスキ分解の前処理の並べ替えとして有効です。この場合、chol(S(j,j)) を使ってください。

アルゴリズム

アルゴリズムは各列の非ゼロ要素数のソートを含みます。

例題

nn列の矢頭型の行列

は、1行目と1列目にデータが設定されています。LU分解 lu(A) は、ほとんどの要素が満たされます。ステートメント

j = [2:n 1] を出力します。A(j,j) は、一行目を一番下に、一列目を右端に置き換え、lu(A(j,j)) は、A と同じ非ゼロ構造をもちます。

一方、Bucky ball の例、B = bucky,

では、各行と各列に、3 つの非ゼロ要素があるので、j = colperm(B) は恒等置換となり、後に続く分解での非ゼロ要素を減らすためには役に立ちません。

参考

chol, colamd, colmmd, lu, spparms, symamd, symmmd, symrcm


 ColorSpec comet