Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cholesky在python中的实现-Solve Ax=b_Python_Numpy_Linear Algebra - Fatal编程技术网

Cholesky在python中的实现-Solve Ax=b

Cholesky在python中的实现-Solve Ax=b,python,numpy,linear-algebra,Python,Numpy,Linear Algebra,我对Ax=b使用Cholesky分解来查找x,方法是先做L*LT=A,然后做y=L*b,最后做x=LT*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 rig

我对
Ax=b
使用Cholesky分解来查找
x
,方法是先做
L*LT=A
,然后做
y=L*b
,最后做
x=LT*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)

看一看。特别是,“通过正向代换求解y=b,最后求解L∗ “你的代码只是在乘法,而不是求解。你是对的,我更改了它,但仍然得到错误的结果,我将用更新来编辑我的代码。可能问题在于前后替换,第一个用于Ly=b,第二个用于Lx=y。