Spec-Zone.ru › PyTorch 2.14

torch.linalg.lu_solve

torch.linalg.lu_solve(LU, pivots, B, *, left=True, adjoint=False, out=None) → Tensor [source]

Вычисляет решение системы линейных уравнений с квадратной матрицей и единственным решением, используя LU-разложение.

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

AX=BAX = B

где AA задана в факторизованном виде, возвращаемом функцией lu_factor().

Если 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}.}

Если adjoint= True (и left= True), то для заданного LU-разложения AA эта функция возвращает X∈Kn×kX \in \mathbb{K}^{n \times k}, являющуюся решением системы

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

где AHA^{\text{H}} — эрмитово-сопряжённая матрица, если AA является комплексной, и транспонированная матрица, если AA является вещественной. Случай left= False аналогичен.

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

Параметры:
  • LU (Tensor) – тензор формы (*, n, n) (или (*, k, k), если left= True), где * — ноль или более пакетных измерений, как возвращает функция lu_factor().
  • pivots (Tensor) – тензор формы (*, n) (или (*, k), если left= True), где * — ноль или более пакетных измерений, как возвращает функция lu_factor().
  • B (Tensor) – тензор правой части формы (*, n, k).
Именованные аргументы:
  • left (bool, необязательно) – определяет, следует ли решать систему AX=BAX=B или XA=BXA = B. По умолчанию: True.
  • adjoint (bool, необязательно) – определяет, следует ли решать систему AX=BAX=B или AHX=BA^{\text{H}}X = B. По умолчанию: False.
  • out (Tensor, необязательно) – выходной тензор. Игнорируется, если None. По умолчанию: None.

Примеры:

>>> A = torch.randn(3, 3)
>>> LU, pivots = torch.linalg.lu_factor(A)
>>> B = torch.randn(3, 2)
>>> X = torch.linalg.lu_solve(LU, pivots, B)
>>> torch.allclose(A @ X, B)
True

>>> B = torch.randn(3, 3, 2)   # Broadcasting rules apply: A is broadcasted
>>> X = torch.linalg.lu_solve(LU, pivots, B)
>>> torch.allclose(A @ X, B)
True

>>> B = torch.randn(3, 5, 3)
>>> X = torch.linalg.lu_solve(LU, pivots, B, left=False)
>>> torch.allclose(X @ A, B)
True

>>> B = torch.randn(3, 3, 4)   # Now solve for A^T
>>> X = torch.linalg.lu_solve(LU, pivots, B, adjoint=True)
>>> torch.allclose(A.mT @ X, 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.lu_solve.html

Spec-Zone.ru

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