torch.linalg.lu_solve
-
torch.linalg.lu_solve(LU, pivots, B, *, left=True, adjoint=False, out=None) → Tensor -
Вычисляет решение квадратной системы линейных уравнений с единственным решением, заданным LU-разложением.
Пусть — это или . Эта функция вычисляет решение для линейной системы, связанной с , которая определяется как
где задано с факторизацией, как возвращается функцией
lu_factor().Если
left= False, эта функция возвращает матрицу , которая решает системуЕсли
adjoint= True(иleft= True), given an LU factorization of :math:`Aэта функция возвращает , которое решает системугде — это сопряжённый транспонированный, когда — комплексное, и транспонированный, когда — вещественное. Аналогично для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).
-
LU (Tensor) — тензор формы
- Ключевые аргументы:
Примеры:
>>> 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
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.linalg.lu_solve.html