spsolve_triangular#
- scipy.sparse.linalg.spsolve_triangular(A, b, lower=True, overwrite_A=False, overwrite_b=False, unit_diagonal=False)[источник]#
Решить уравнение
A x = bдля x, предполагая, что A является треугольной матрицей.- Параметры:
- A(M, M) разреженный массив или матрица
Разреженная квадратная треугольная матрица. Должна быть в формате CSR или CSC.
- b(M,) или (M, N) array_like
Матрица правой части в
A x = b- lowerbool, необязательно
Определяет ли A является нижней или верхней треугольной матрицей. По умолчанию — нижняя треугольная матрица.
- overwrite_Abool, необязательно
Разрешить изменение A. Включение дает прирост производительности. По умолчанию False.
- overwrite_bbool, необязательно
Разрешить перезапись данных в b. Включение даёт прирост производительности. По умолчанию False. Если overwrite_b если установлено значение True, следует убедиться, что b имеет соответствующий dtype для возможности хранения результата.
- unit_diagonalbool, необязательно
Если True, диагональные элементы a предполагаются равными 1.
Добавлено в версии 1.4.0.
- Возвращает:
- x(M,) или (M, N) ndarray
Решение системы
A x = b. Форма возврата соответствует форме b.
- Вызывает:
- LinAlgError
Если A является сингулярной или не треугольной.
- ValueError
Если форма A или форма b не соответствуют требованиям.
Примечания
Добавлено в версии 0.19.0.
Примеры
>>> 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