| MATLAB Function Reference | ![]() |
表示
j = colperm(S)
詳細
j = colperm(S)
は、S(:,j) の列が非ゼロ要素数の増加するように並べ替えられるような、置換ベクトル j を作成します。これは、LU分解の前処理の並べ替えとして有効です。この場合、lu(S(:,j)) を使ってください。
S が対称の場合、j = colperm(S) は、S(j,j) の行と列が非ゼロ要素の増加するように並べ替えられるような置換ベクトル j を作成します。Sが正定行列ならば、コレスキ分解の前処理の並べ替えとして有効です。この場合、chol(S(j,j)) を使ってください。
アルゴリズム
例題
A = [ones(1,n); ones(n-1,1) speye(n-1,n-1)]
は、1行目と1列目にデータが設定されています。LU分解 lu(A) は、ほとんどの要素が満たされます。ステートメント
j = colperm(A)
は j = [2:n
1] を出力します。A(j,j) は、一行目を一番下に、一列目を右端に置き換え、lu(A(j,j)) は、A と同じ非ゼロ構造をもちます。
では、各行と各列に、3 つの非ゼロ要素があるので、j = colperm(B) は恒等置換となり、後に続く分解での非ゼロ要素を減らすためには役に立ちません。
参考
chol, colamd, colmmd, lu, spparms, symamd, symmmd, symrcm
| ColorSpec | comet | ![]() |