# scipy.sparse.linalg.splu¶

scipy.sparse.linalg.splu(A, permc_spec=None, diag_pivot_thresh=None, relax=None, panel_size=None, options={})[source]

Compute the LU decomposition of a sparse, square matrix.

Parameters: A : sparse matrix Sparse matrix to factorize. Should be in CSR or CSC format. permc_spec : str, optional How to permute the columns of the matrix for sparsity preservation. (default: ‘COLAMD’) NATURAL: natural ordering. MMD_ATA: minimum degree ordering on the structure of A^T A. MMD_AT_PLUS_A: minimum degree ordering on the structure of A^T+A. COLAMD: approximate minimum degree column ordering diag_pivot_thresh : float, optional Threshold used for a diagonal entry to be an acceptable pivot. See SuperLU user’s guide for details [1] relax : int, optional Expert option for customizing the degree of relaxing supernodes. See SuperLU user’s guide for details [1] panel_size : int, optional Expert option for customizing the panel size. See SuperLU user’s guide for details [1] options : dict, optional Dictionary containing additional expert options to SuperLU. See SuperLU user guide [1] (section 2.4 on the ‘Options’ argument) for more details. For example, you can specify options=dict(Equil=False, IterRefine='SINGLE')) to turn equilibration off and perform a single iterative refinement. invA : scipy.sparse.linalg.SuperLU Object, which has a solve method.

spilu
incomplete LU decomposition

Notes

This function uses the SuperLU library.

References

 [1] (1, 2, 3, 4, 5) SuperLU http://crd.lbl.gov/~xiaoye/SuperLU/

Examples

>>> from scipy.sparse import csc_matrix
>>> from scipy.sparse.linalg import splu
>>> A = csc_matrix([[1., 0., 0.], [5., 0., 2.], [0., -1., 0.]], dtype=float)
>>> B = splu(A)
>>> x = np.array([1., 2., 3.], dtype=float)
>>> B.solve(x)
array([ 1. , -3. , -1.5])
>>> A.dot(B.solve(x))
array([ 1.,  2.,  3.])
>>> B.solve(A.dot(x))
array([ 1.,  2.,  3.])


#### Previous topic

scipy.sparse.linalg.svds

#### Next topic

scipy.sparse.linalg.spilu