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 (Tensor, необязательно) – тензор результата.
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/2.1/generated/torch.linalg.solve_triangular.html