solve_triangular#
- scipy.linalg.solve_triangular(a, b, trans=0, lower=False, unit_diagonal=False, overwrite_b=False, check_finite=True)[источник]#
Решить уравнение
a @ x = bдляx, где a является треугольной матрицей.Документация написана в предположении, что аргументы-массивы имеют указанные «основные» формы. Однако аргументы-массивы этой функции могут иметь дополнительные «пакетные» измерения, добавленные перед основной формой. В этом случае массив обрабатывается как пакет низкоразмерных срезов; см. Пакетные линейные операции подробности.
- Параметры:
- a(M, M) array_like
Треугольная матрица
- b(M,) или (M, N) array_like
Матрица правой части в
a x = b- lowerbool, необязательно
Используйте только данные, содержащиеся в нижнем треугольнике a. По умолчанию используется верхний треугольник.
- trans{0, 1, 2, 'N', 'T', 'C'}, необязательно
Тип решаемой системы:
trans
система
0 или 'N'
a x = b
1 или ‘T’
a^T x = b
2 или 'C'
a^H x = b
- unit_diagonalbool, необязательно
Если True, диагональные элементы a предполагаются равными 1 и не будут использоваться.
- overwrite_bbool, необязательно
Разрешить перезапись данных в b (может улучшить производительность)
- check_finitebool, необязательно
Проверять ли, что входные матрицы содержат только конечные числа. Отключение может повысить производительность, но может привести к проблемам (сбоям, бесконечному выполнению), если входные данные содержат бесконечности или NaN.
- Возвращает:
- x(M,) или (M, N) ndarray
Решение системы
a x = b. Форма возвращаемого значения соответствует b.
- Вызывает:
- LinAlgError
Если a сингулярна
Примечания
Добавлено в версии 0.9.0.
Примеры
Решить нижнюю треугольную систему a x = b, где:
[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.])