设A
为正定矩阵,设A=L*L'
其胆量分解,其中L
是下三角形。 设A2 = A + alpha*x*x'
矩阵A
的秩 1 更新,其中x
是适当维数的向量,alpha
是标量。
Cholesky 因子更新是一种无需先计算A2
即可获得因式分解A2=L2*L2'
的过程,这对于在此类低秩矩阵更新的情况下加快计算速度很有用。
我正在使用 BLAS/LAPACK 库进行基本代数操作。我可以用例程 spptrf 计算正定矩阵的 Cholesky 分解。但是,我一直在四处寻找,但无法找到执行Cholesky因子更新的BLAS/LAPACK函数。难道没有功能吗?
另外:在这篇旧帖子中,讨论了添加此类例程的问题。但是,这是一个非常古老的帖子(2013 年(,我无法找到更新的内容。
没有这样的函数。你可以看看我们在SciPy上的这个讨论。我已经编造了一个Python脚本,用相关论文进行更新。您可以利用这些信息。
https://github.com/scipy/scipy/issues/8188
如果您觉得自己具有竞争力并为此编写了Fortran代码,如果您可以将其作为PR https://github.com/Reference-LAPACK/lapack 提交给LAPACK存储库,我将不胜感激
。正如您所指出的,Netlib 上的 BLAS 库,但我怀疑它在网站上。如果您正在寻找代码,这里只需代码。 如果你想要快,我会把这段代码变成Julia。有一本书我从来没有看过,里面可能有这些。另外,请注意,您引用了作者为其编写代码的一篇论文。你可以简单地联系论文的作者。他的网站似乎在这里。不过,该链接存在问题。