代码之家  ›  专栏  ›  技术社区  ›  enanone

是否有BLAS/LAPACK函数用于计算Cholesky因子更新?

  •  1
  • enanone  · 技术社区  · 7 年前

    A 是一个正定矩阵,让 A=L*L' 将其分解为Cholsky,其中 L 是下三角形。 让 A2 = A + alpha*x*x' 是矩阵的一级更新 ,在哪里 x 是适当维度的向量,并且 alpha 是一个标量。

    这个 Cholesky factor update 是获得因子分解的过程 A2=L2*L2' 不计算 A2 首先,这对于在这种低阶矩阵更新的情况下加快计算速度很有用。

    我正在使用blas/lapack库进行初等代数操作。我可以用程序计算正定矩阵的乔尔斯基因式分解。 spptrf . 然而,我环顾四周,却找不到执行Cholesky因子更新的blas/lapack函数。可能是因为没有这样的功能吗?

    另外: 在这个里面 old post 讨论了这类程序的添加。然而,这是一个非常老的帖子(2013年),我还没有找到任何更新的东西。

    2 回复  |  直到 7 年前
        1
  •  1
  •   user1911226    7 年前

    正如您所指出的,netlib上的blas库,但是我怀疑它在站点上。如果你在寻找代码,只要有代码 here. 如果你想快点,我就把代码变成茱莉亚。有一本我从来没看过的书,里面可能有这些 it. 另外,请注意,您引用了一篇作者为其编写代码的论文。你可以直接联系这篇论文的作者。他的网站似乎是 here. 不过,这个链接有问题。

        2
  •  0
  •   percusse    7 年前

    没有这样的功能。你可以看看我们在scipy上的讨论。我已经编写了一个用相关文章进行更新的python脚本。你可以利用这些信息。

    https://github.com/scipy/scipy/issues/8188

    如果您觉得有竞争力,并为此编写了Fortran代码,如果您能将其作为一个pr提交给lapack repo,我将非常感谢。 https://github.com/Reference-LAPACK/lapack