主要内容

amd公司

近似最小度置换

语法

P=amd(A)
P=amd(A,选项)

说明

P=amd(A)返回稀疏矩阵的近似最小度置换向量C=A+A'. 的Cholesky分解C(P,P)A(P,P)倾向于比CA.. 这个amd公司功能往往比赛门德,而且往往返回比赛门德. 矩阵A.必须是正方形。如果A.是一个完整的矩阵amd公司(A)相当于amd(稀疏(A)).

P=amd(A,选项)允许重新排序的其他选项。这个选择输入是一个结构,有两个字段,如下所示。只需设置感兴趣的字段:

  • 稠密的-一个非负的标量值,表示什么被认为是稠密的。如果A是n乘n,则最大值(16,(密度*sqrt(n)))中的条目A+A'被认为是“密集”的,在排序过程中被忽略。MATLAB软件®软件将这些行和列放在输出排列的最后。如果不存在此选项,则此字段的默认值为10.0。

  • 侵略性的-控制侵蚀性吸收的标量值。如果该字段设置为非零值,则执行主动吸收。如果不存在此选项,则这是默认值。

MATLAB软件执行装配树后序,这通常与消元树后序相同。它并不总是相同的,因为使用了近似的程度更新,并且因为“密集”行和列不参与post顺序。它非常适合以后的工作胆碱操作,但是,如果需要精确的消除树后排序,可以使用以下代码:

P=amd(S);C=海绵+海绵'[忽略,Q]=etree(C(P,P));P=P(Q);

如果S已经对称了,省略第二行,C=海绵+海绵.

示例

全部折叠

计算矩阵排序前后的Cholesky因子amd公司检验对稀疏性的影响。

加载barbell图稀疏矩阵,并向其添加一个稀疏恒等矩阵,以确保它是正定的。计算两个Cholesky因子:一个原始矩阵和一个预先排序的原始矩阵amd公司.

负载杠铃图.matA=A+speye(尺寸(A));p=amd(A);L=chol(A,'较低'); Lp=chol(A(p,p),'较低');

绘制所有四个矩阵的稀疏模式。从预序矩阵得到的Cholesky因子比自然序矩阵的因子要稀疏得多。

图子地块(2,2,1)spy(A)标题('原始矩阵A')子地块(2,2,2)间谍(A(p,p))标题('AMD订购了一个')子地块(2,2,3)间谍(L)标题('A的Cholesky系数')子地块(2,2,4)间谍(Lp)标题('AMD的Cholesky因子订购A')

图中包含4个轴。标题为原始矩阵A的轴1包含类型为line的对象。标题为A的轴2包含类型为line的对象。标题为Cholesky因子A的轴3包含类型为line的对象。标题为Cholesky因子的轴4包含一个line类型的对象。