我正在尝试进行适当的 Cholesky 分解,但是该功能实际上并未在 scipy 中实现,或者有些我不理解。我在这里发帖以防是后者。这是我正在做的一个简化示例:
import numpy
import scipy.linalg
numpy.random.seed(0)
X = numpy.random.normal(size=(10,4))
V = numpy.dot(X.transpose(),X)
R = V.copy()
scipy.linalg.cholesky(R,False,overwrite_a=True)
print V
print R
我认为应该发生的是 R 被上三角矩阵覆盖。然而,当我运行这段代码时,我的 V 和 R 是相同的(cholesky 没有覆盖 R)。我是误解了overwrite_a的目的,还是犯了其他错误?如果这只是 scipy 中的一个错误,是否有解决方法或其他方法可以在 Python 中进行适当的 Cholesky 分解?