AMD

近似最小度排列

句法

P = AMD(A)
P = AMD(A,OPTS)

描述

P = AMD(A)返回该稀疏矩阵的近似最小度置换矢量C = A + A”。的Cholesky分解C(P,P)要么A(P,P)往往是稀疏比的C要么一种。该AMD功能往往比快symamd,也趋向于恢复优于排序symamd。矩阵一种必须是方阵。如果一种是一个完整的矩阵,则AMD(A)相当于AMD(稀疏(A))

P = AMD(A,OPTS)允许重新排序的附加选项。该OPTS输入是具有如下所示的两个字段的结构。你只需要设置感兴趣的领域:

  • 稠密- 非负标值,指示什么被认为是密集。如果A是n乘n,则超过的行和列更多最大(16,(致密* SQRT(N)))在项A + A”被认为是“密”和订货过程中被忽略。MATLAB®软件放在最后在输出排列这些行和列。此字段的默认值是10.0,如果该选项不存在。

  • 侵略性- 一个标量值控制侵略性吸收。如果这个字段被设置为非零值,则执行攻击性的吸收。这是默认的,如果这个选项不存在。

MATLAB软件执行装配树后排序,这通常是同为消除树后排序。它并不总是相同的,因为使用的近似程度的更新,而且由于“密集”的行和列不采取在后序的一部分。它非常适合于后续CHOL操作,但是,如果你需要精确消除树后的排序,你可以使用下面的代码:

P = AMD(S);C = spones(S)+ spones(S');[忽略,Q] = etree(C(P,P));P = P(Q);

如果小号已经是对称的,省略第二线,C = spones(S)+ spones(S')

例子

全部收缩

之前计算矩阵的乔列斯基因子,它使用命令后AMD检查上稀疏的影响。

加载杠铃图形稀疏矩阵,并添加一个稀疏单位矩阵将它以确保它是正定的。计算两个乔列斯基因素:原始矩阵中的一个,并与预序原始矩阵的一个AMD

加载barbellgraph.matA = A + speye(尺寸(A));P = AMD(A);L = CHOL(A,'降低');LP = CHOL(A(P,P),'降低');

绘制所有四个矩阵的稀疏模式。相比它的自然排序的矩阵的因子从点餐矩阵获得的乔列斯基因素是非常稀疏。

图副区(2,2,1)间谍(A)标题(“原矩阵A”)副区(2,2,2)间谍(A(P,P))标题(“AMD下令”)副区(2,2,3-)间谍(L)标题(“A的Cholesky分解因子”)副区(2,2,4)间谍(LP)称号(“AMD的乔莱斯基因素下令”

也可以看看

||||