MATLAB Function Reference    

colamd

列最小度合いによる並べ替え

表示

詳細

p = colamd(S) は、スパース行列Sに対して、列が最小度合いによる並べ替えを近似したものをしゅつりょくします。非対称行列 S に対して、S(:,p) は、Sよりも、よりスパースなLU分解をもつ傾向になります。S(:,p)' * S(:,p)のコレスキー分解も、S'*Sのコレスキー分解よりも、よりスパースな傾向になります。

knobs は、2要素からなるベクトルです。Sが、mn 列の場合、(knobs(1))*nより以上の行は、無視されます。(knobs(2))*m要素より以上の列は、並べ替えの前に除去され、出力の並べ替えのpの中に、最終的に並べ替えます。knobsパラメータが存在しない場合、knobs(1) = knobs(2) = spparms('wh_frac')となります。

stats は、オプションのベクトルで、行列 Sの並べ替えと妥当性に関するデータを与えます。

stats(1)
colamdで無視される行数
stats(2)
colamdで無視される列数
stats(3)
colamdで使用される内部データ構造上に施されるガーベージ補正の数(凡そ、2.2*nnz(S) + 4*m + 7*n 整数サイズ)
stats(4)
行列が正しい場合0、間違っている場合1です。
stats(5)
ストアされていない要素、または、重なっている要素を含む最も右寄りの列のインデックス、または、このような列が存在しない場合0です。
stats(6)
stats(5)で与えられる列インデックスの中で、行インデックスの範囲外のものや重なっているもので、このような行インデックスが存在しない場合 0になります。
stats(7)
重なっているインデックスや行インデックスの範囲外のインデックスの数

MATLABの組み込み関数は、取り扱い可能なスパース行列を作成しますが、ユーザは、MATLAB C、または、Fortran APIを使って、取り扱い不可能なスパース行列を作成でき、colamdに渡します。このため、colamd は、Sが正しいものか否かをチェックします。

順番は、列の消去ツリーポスト並びに従います。

参考

colmmd, colperm, symmmd, symrcm


  cmopts colmmd