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
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.linalg.solve_triangular.html