python 中的 Cholesky 实现 - 求解 Ax=b

Cholesky implementation in python - Solve Ax=b

我对 Ax=b 使用 Cholesky 分解来找到 x ,方法是 L*LT=A 然后 y=L*b 最后 x=LT*b。当我检查虽然我似乎没有得到与经典 Ax=b 相同的结果。 这是我的代码:

import numpy as np
import scipy.linalg as sla

myL=np.linalg.cholesky(A)


#check_x = np.dot(A, b)
#check_x = np.dot(A,b)
check_x = sla.solve(A, b)

#check if the composition was done right
myLT=myL.T.conj() #transpose matrix
Ac=np.dot(myL,myLT) #should give the original matrix A



#y=np.dot(myL,b)
y = sla.solve_triangular(myL, b)

#x=np.dot(myL.T.conj(),y)
x = sla.solve_triangular(myLT, b)

我失眠又疲倦,我把最后一行写错了,实际上是

x=np.linalg.solve(myLT, y)