NumPy参考 >例行程序 >线性代数(numpy.linalg) > numpy.linalg.holesky
numpy.linalg.
cholesky
(a )[来源] ¶胆固醇分解。
返回方阵a的Cholesky分解L * LH,其中L为下三角,.H为共轭转置运算符(如果a为实值,则为普通转置)。 a必须是Hermitian(如果为实数,则为对称)且为正定。实际上仅返回L。
Hermitian(如果所有元素都是实数,则为对称)正定输入矩阵。
上或下三角的Cholesky因数一个。如果a是矩阵对象,则返回矩阵对象。
如果分解失败,例如,如果a不是正定的。
笔记
1.8.0版中的新功能。
广播规则适用,numpy.linalg
有关详细信息,请参阅文档。
霍尔斯基分解法通常用作求解的快速方法
(当A既是Hermitian /对称的又是正定的)。
首先,我们解决了在
然后在
例子
>>> A = np.array([[1,-2j],[2j,5]])
>>> A
array([[ 1.+0.j, -0.-2.j],
[ 0.+2.j, 5.+0.j]])
>>> L = np.linalg.cholesky(A)
>>> L
array([[1.+0.j, 0.+0.j],
[0.+2.j, 1.+0.j]])
>>> np.dot(L, L.T.conj()) # verify that L * L.H = A
array([[1.+0.j, 0.-2.j],
[0.+2.j, 5.+0.j]])
>>> A = [[1,-2j],[2j,5]] # what happens if A is only array_like?
>>> np.linalg.cholesky(A) # an ndarray object is returned
array([[1.+0.j, 0.+0.j],
[0.+2.j, 1.+0.j]])
>>> # But a matrix object is returned if A is a matrix object
>>> np.linalg.cholesky(np.matrix(A))
matrix([[ 1.+0.j, 0.+0.j],
[ 0.+2.j, 1.+0.j]])