scipy 1.8.0 Pypi GitHub Homepage
Other Docs
NotesParametersReturnsBackRef
splu(A, permc_spec=None, diag_pivot_thresh=None, relax=None, panel_size=None, options={})

Notes

This function uses the SuperLU library.

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

relax : int, optional

Expert option for customizing the degree of relaxing supernodes. See SuperLU user's guide for details

panel_size : int, optional

Expert option for customizing the panel size. See SuperLU user's guide for details

options : dict, optional

Dictionary containing additional expert options to SuperLU. See SuperLU user guide (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.

Returns

invA : scipy.sparse.linalg.SuperLU

Object, which has a solve method.

Compute the LU decomposition of a sparse, square matrix.

See Also

spilu

incomplete LU decomposition

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.])
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

scipy.sparse.linalg._dsolve.linsolve.splu scipy.sparse.linalg._dsolve.linsolve.spilu

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /scipy/sparse/linalg/_dsolve/linsolve.py#248
type: <class 'function'>
Commit: