Spec-Zone.ru › PyTorch 2.14

torch.linalg.solve_triangular

torch.linalg.solve_triangular(A, B, *, upper, left=True, unitriangular=False, out=None) → Tensor [исходный код]

Вычисляет решение треугольной системы линейных уравнений с единственным решением.

Пусть K\mathbb{K} — это R\mathbb{R} или C\mathbb{C}, эта функция вычисляет решение X∈Kn×kX \in \mathbb{K}^{n \times k} линейной системы, соответствующей треугольной матрице A∈Kn×nA \in \mathbb{K}^{n \times n} без нулей на диагонали (то есть она обратима) и прямоугольной матрице , B∈Kn×kB \in \mathbb{K}^{n \times k}, которая определяется как

AX=BAX = B

Аргумент upper указывает, является ли матрица AA верхней или нижней треугольной.

Если left= False, эта функция возвращает матрицу X∈Kn×kX \in \mathbb{K}^{n \times k}, решающую систему

XA=BA∈Kk×k,B∈Kn×k.XA = B\mathrlap{\qquad A \in \mathbb{K}^{k \times k}, B \in \mathbb{K}^{n \times k}.}

Если upper= True (соответственно, False), будет использоваться только верхняя (соответственно, нижняя) треугольная часть A. Элементы ниже главной диагонали будут считаться нулевыми и не будут использоваться.

Если unitriangular= True, предполагается, что диагональ A состоит из единиц, и она не будет использоваться.

Результат может содержать NaN, если диагональ A содержит нули или значения, очень близкие к нулю, и unitriangular= False (по умолчанию), либо если входная матрица имеет очень малые собственные значения.

Поддерживаются входные данные с типами float, double, cfloat и cdouble. Также поддерживаются пакеты матриц; если входные данные представляют собой пакеты матриц, выходные данные имеют те же размеры пакета.

См. также

torch.linalg.solve() вычисляет решение общей квадратной системы линейных уравнений с единственным решением.

Параметры:
  • A (Tensor) – тензор формы (*, n, n) (или (*, k, k), если left= False), где * — ноль или больше измерений пакета.
  • B (Tensor) – тензор правой части формы (*, n, k).
Именованные аргументы:
  • upper (bool) – является ли A верхней или нижней треугольной матрицей.
  • left (bool, необязательно) – какую систему решать: AX=BAX=B или XA=BXA = B. Значение по умолчанию: True.
  • unitriangular (bool, необязательно) – если True, предполагается, что все диагональные элементы A равны 1. Значение по умолчанию: False.
  • out (Tensor, необязательно) – выходной тензор. B можно передать как out, и результат будет вычислен на месте в B. Игнорируется, если None. Значение по умолчанию: None.

Примеры:

>>> 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API