MATLAB Function Reference | ![]() ![]() |
表示
p = symmmd(S)
詳細
p = symmmd(S)
は、S
の対称最小度合いでの並べ替えを出力します。対称正定行列 S
に対して、これは、S(p,p)
が S
自身よりもスパースなコレスキ因子をもつような置換 p
です。symmmd
は、対称な不定行列に対しても、うまく作用します。
注意
最小度合いでの並べ替えは、対称な正定スパース線形システムの解法に対して、\
と /
で自動的に使われます。
アルゴリズム内の階層と関連したオプションやパラメータは、spparms
で変更することができます。
アルゴリズム
対称最小度合いアルゴリズムは、列の最小度合いアルゴリズムに基づいています。実際に、symmmd(A)
は、K'
*K
が、A
と同様の非ゼロ構造をもつような非ゼロ構造 K
を作成し、K
に対して列の最小度合いコードをコールします。
例題
リファレンスページの symrcm
で記述している Bucky ball の例題について、逆Cuthill-McKee と最小度合いとを比較してみましょう。
B = bucky+4*speye(60); r = symrcm(B); p = symmmd(B); R = B(r,r); S = B(p,p); subplot(2,2,1), spy(R), title('B(r,r)') subplot(2,2,2), spy(S), title('B(s,s)') subplot(2,2,3), spy(chol(R)), title('chol(B(r,r))') subplot(2,2,4), spy(chol(S)), title('chol(B(s,s))')
これは、非常に小さい問題ですが、どちらの並べ替えも典型的なものです。RCM は、コレスキ分解の間にほとんど完全に満たされる狭い帯域をもつ行列を作成します。最小度合いは、分解の間にゼロが隣接する大きなブロックをもった構造体を作成します。従って、最小度合いでの並べ替えでは、分解に対する時間とストレージが節約されます。
参考
colamd
, colmmd
, colperm
, symamd
, symrcm
参考文献
[1] Gilbert, John R., Cleve Moler, and Robert Schreiber, "Sparse Matrices in MATLAB: Design and Implementation," SIAM Journal on Matrix Analysis and Applications 13, 1992, pp. 333-356.
![]() | symmlq | symrcm | ![]() |