如何强制python在不进行置换的情况下执行LU分解

时间:2019-04-17 15:26:58

标签: python scipy linear-algebra decomposition

在MATLAB中,可以使用hack强制内置的LU分解算法不使用置换矩阵(即,强制P=I),如图here所示。

在python中是否存在类似的黑客行为?

也就是说,有什么方法可以强制scipy.linalg.lu(或任何其他流行的LU算法)不使用置换矩阵吗?

1 个答案:

答案 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())