Spec-Zone.ru › PyTorch 1

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

© 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

Spec-Zone.ru

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