我在python中寻找半 - 无限矩阵的Cholesky / LDL分解。
搜索的结果:
numpy.linalg.cholesky
和sympy.Matrix.LDLdecomposition
都只适用于肯定的。我的实例相当小,大约100美元\次100美元,所以符号解决方案很好(瓶颈在其他地方)。
答案 0 :(得分:1)
您可以使用LU分解。对于对称矩阵或埃尔米特矩阵,它们相当于一些符号模糊度。
答案 1 :(得分:0)
使用SciPy v1.1.0
及更高版本,您可以使用scipy.linalg.ldl
进行不定矩阵的分解。
示例:
创建正定矩阵arr
>>> import numpy as np
>>> import scipy.linalg as la
>>> arr = np.random.rand(100,97)
>>> M = arr @ arr.T
>>> l, d, p = la.ldl(M)
>>> np.allclose(l.dot(d).dot(l.T) - M, np.zeros([100, 100]))
True