我正在尝试实施Reinsch's Algorithm(第4页)。 由于工作矩阵是稀疏的,我使用的是scipy.sparse模块,但正如你所看到的,Reinsch的算法需要对稀疏矩阵进行Cholesky分解(让我们称之为my_matrix)以解决某些系统,但我不能找到与此相关的任何内容。 当然,在同一算法中,我可以使用scipy.sparse.linalg.spsolve来解决稀疏系统,然后在算法结束时使用类似的东西:
R = numpy.linalg.chol(my_matrix.A)
但是,在我的应用程序中,my_matrix通常大约800 * 800,所以最后一个非常有用。 那么,我的问题是,在哪里可以找到这样的分解?。
提前感谢。
答案 0 :(得分:0)
要快速分解,您可以尝试
from scikits.sparse.cholmod import cholesky
factor = cholesky(A.toarray())
x = factor(b)
A是您的稀疏,对称,正定矩阵。 由于您的矩阵不是“巨大!”将其转换为numpy数组不会造成任何问题。