torch.linalg.solve_triangular
-
torch.linalg.solve_triangular(A, B, *, upper, left=True, unitriangular=False, out=None) → Tensor -
Вычисляет решение треугольной системы линейных уравнений с единственным решением.
Пусть — или . Данная функция вычисляет решение связанной линейной системы с треугольной матрицей без нулей на главной диагонали (то есть, она обратима) и прямоугольной матрицей , которая определена как
Аргумент
upperуказывает, является ли верхней или нижней треугольной.Если
left= False, эта функция возвращает матрицу решающую системуЕсли
upper= True(соответственно,False) будет обращена только верхняя (соответственно, нижняя) треугольная половинаA. Элементы ниже главной диагонали будут считаться нулями и не будут обращаться.Если
unitriangular= True, диагональAпредполагается равной единице и не будет обращена.Результат может содержать
NaN, если диагональAсодержит нули или элементы, очень близкие к нулю, иunitriangular= False(по умолчанию), или если матрица ввода имеет очень малые собственные значения.Поддерживает входные данные типов float, double, cfloat и cdouble. Также поддерживает пакеты матриц, и если входные данные — пакеты матриц, то выходные данные имеют те же пакетные размерности.
См. также
torch.linalg.solve()вычисляет решение общей квадратной системы линейных уравнений с единственным решением.- Параметры:
- Ключевые аргументы:
-
-
upper (bool) – определяет, является ли
Aверхней или нижней треугольной матрицей. -
left (bool, необязательно) – определяет, решать ли систему или . По умолчанию:
True. -
unitriangular (bool, необязательно) – если
True, элементы диагоналиAпредполагаются равными1. По умолчанию:False. -
out (Тензор, необязательно) – выходной тензор.
Bможет быть передан какoutи результат вычисляется на месте вB. Игнорируется, еслиNone. По умолчанию:None.
-
upper (bool) – определяет, является ли
Примеры:
>>> A = torch.randn(3, 3).triu_() >>> b = torch.randn(3, 4) >>> X = torch.linalg.solve_triangular(A, B, upper=True) >>> torch.allclose(A @ X, B) True >>> A = torch.randn(2, 3, 3).tril_() >>> B = torch.randn(2, 3, 4) >>> X = torch.linalg.solve_triangular(A, B, upper=False) >>> torch.allclose(A @ X, B) True >>> A = torch.randn(2, 4, 4).tril_() >>> B = torch.randn(2, 3, 4) >>> X = torch.linalg.solve_triangular(A, B, upper=False, left=False) >>> torch.allclose(X @ A, B) True
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.linalg.solve_triangular.html