spsolve_triangular#
- scipy.sparse.linalg.spsolve_triangular(A, b, lower=True, overwrite_A=False, overwrite_b=False, unit_diagonal=False)[source]#
- Solve the equation - A x = bfor x, assuming A is a triangular matrix.- Parameters:
- A(M, M) sparse array or matrix
- A sparse square triangular matrix. Should be in CSR or CSC format. 
- b(M,) or (M, N) array_like
- Right-hand side matrix in - A x = b
- lowerbool, optional
- Whether A is a lower or upper triangular matrix. Default is lower triangular matrix. 
- overwrite_Abool, optional
- Allow changing A. Enabling gives a performance gain. Default is False. 
- overwrite_bbool, optional
- Allow overwriting data in b. Enabling gives a performance gain. Default is False. If overwrite_b is True, it should be ensured that b has an appropriate dtype to be able to store the result. 
- unit_diagonalbool, optional
- If True, diagonal elements of a are assumed to be 1. - Added in version 1.4.0. 
 
- Returns:
- x(M,) or (M, N) ndarray
- Solution to the system - A x = b. Shape of return matches shape of b.
 
- Raises:
- LinAlgError
- If A is singular or not triangular. 
- ValueError
- If shape of A or shape of b do not match the requirements. 
 
 - Notes - Added in version 0.19.0. - Examples - >>> import numpy as np >>> from scipy.sparse import csc_array >>> from scipy.sparse.linalg import spsolve_triangular >>> A = csc_array([[3, 0, 0], [1, -1, 0], [2, 0, 1]], dtype=float) >>> B = np.array([[2, 0], [-1, 0], [2, 0]], dtype=float) >>> x = spsolve_triangular(A, B) >>> np.allclose(A.dot(x), B) True