在MATLAB中,可以使用hack强制内置的LU分解算法不使用置换矩阵(即,强制P=I
),如图here所示。
在python中是否存在类似的黑客行为?
也就是说,有什么方法可以强制scipy.linalg.lu
(或任何其他流行的LU算法)不使用置换矩阵吗?
答案 0 :(得分:1)
对于numpy数组,它们没有这种选择,但是您可以通过以下解决方法来实现:
from scipy.sparse.linalg import splu
A = np.array([-3,4,0,1,-3,2,-6,7,1]).reshape(3,3)
slu = splu(A, permc_spec = "NATURAL", diag_pivot_thresh=0, options={"SymmetricMode":True})
print(slu.L.toarray())