是一个对称正定 (SPD) 稀疏矩阵。是一个稀疏对角矩阵。很大( >10000),中非零的数量通常为 100 ~ 1000。
在cholesky 形式中被分解为。
当变为时如何有效地更新和?
是一个对称正定 (SPD) 稀疏矩阵。是一个稀疏对角矩阵。很大( >10000),中非零的数量通常为 100 ~ 1000。
在cholesky 形式中被分解为。
当变为时如何有效地更新和?
CHOLMOD SuiteSparse 包的最新版本(beta 4.4.5)支持修改对称行/列(rank2 更新)分解,使用 matlab(和 C)API。我在我的一个项目中成功使用了它。
你可以用它来制作分解的更新。它基于这篇论文。
因此,复杂度将是. 在哪里当对稀疏使用填充减少排列时,可以显着减少
包可以从这里下载
以下是包所有者给出的一些注释(Tim Davis 教授):
接口:
LD = ldlrowmod (LD,k) 通过将 A(:,k) 和 A(k,:) 设置为标识的第 k 行/列来删除行/列 k。
LD = ldlrowmod (LD,k,C) 用稀疏列 C 替换 A 的第 k 行/列(必须是标识的第 k 行/列)。
复杂:
行添加/删除最多需要时间,所以如果是, 那么时间最多.
填充减少排列:
分解用户矩阵很少是一个好主意,例如= A. 相反,我们置换为=以便有非常少的非零。