solve_triangular#
- scipy.linalg.solve_triangular(a, b, trans=0, lower=False, unit_diagonal=False, overwrite_b=False, check_finite=True)[source]#
- Solve the equation - a x = bfor x, assuming a is a triangular matrix.- Parameters:
- a(M, M) array_like
- A triangular matrix 
- b(M,) or (M, N) array_like
- Right-hand side matrix in - a x = b
- lowerbool, optional
- Use only data contained in the lower triangle of a. Default is to use upper triangle. 
- trans{0, 1, 2, ‘N’, ‘T’, ‘C’}, optional
- Type of system to solve: - trans - system - 0 or ‘N’ - a x = b - 1 or ‘T’ - a^T x = b - 2 or ‘C’ - a^H x = b 
- unit_diagonalbool, optional
- If True, diagonal elements of a are assumed to be 1 and will not be referenced. 
- overwrite_bbool, optional
- Allow overwriting data in b (may enhance performance) 
- check_finitebool, optional
- Whether to check that the input matrices contain only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination) if the inputs do contain infinities or NaNs. 
 
- Returns:
- x(M,) or (M, N) ndarray
- Solution to the system - a x = b. Shape of return matches b.
 
- Raises:
- LinAlgError
- If a is singular 
 
 - Notes - Added in version 0.9.0. - Examples - Solve the lower triangular system a x = b, where: - [3 0 0 0] [4] a = [2 1 0 0] b = [2] [1 0 1 0] [4] [1 1 1 1] [2] - >>> import numpy as np >>> from scipy.linalg import solve_triangular >>> a = np.array([[3, 0, 0, 0], [2, 1, 0, 0], [1, 0, 1, 0], [1, 1, 1, 1]]) >>> b = np.array([4, 2, 4, 2]) >>> x = solve_triangular(a, b, lower=True) >>> x array([ 1.33333333, -0.66666667, 2.66666667, -1.33333333]) >>> a.dot(x) # Check the result array([ 4., 2., 4., 2.])