scipy.sparse.linalg.

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