Spec-Zone.ru › PyTorch 2.14

torch.cholesky_solve

torch.cholesky_solve(B, L, upper=False, *, out=None) → Tensor

Вычисляет решение системы линейных уравнений с комплексной эрмитовой или вещественной симметричной положительно определённой левой частью, заданной её разложением Холецкого.

Пусть AA — комплексная эрмитова или вещественная симметричная положительно определённая матрица, а LL — её разложение Холецкого, такое что:

A=LLHA = LL^{\text{H}}

где LHL^{\text{H}} — сопряжённое транспонирование, если LL комплексная, и транспонирование, если LL вещественнозначная.

Возвращает решение XX следующей системы линейных уравнений:

AX=BAX = B

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

Параметры:
  • B (Tensor) – тензор правой части формы (*, n, k), где ∗* — ноль или более пакетных измерений
  • L (Tensor) – тензор формы (*, n, n), где * — ноль или более пакетных измерений, содержащий нижние или верхние треугольные разложения Холецкого симметричных или эрмитовых положительно определённых матриц.
  • upper (bool, необязательный) – флаг, указывающий, является ли LL нижней или верхней треугольной матрицей. По умолчанию: False.
Именованные аргументы:

out (Tensor, необязательный) – выходной тензор. Игнорируется, если None. По умолчанию: None.

Пример:

>>> A = torch.randn(3, 3)
>>> A = A @ A.T + torch.eye(3) * 1e-3 # Creates a symmetric positive-definite matrix
>>> L = torch.linalg.cholesky(A) # Extract Cholesky decomposition
>>> B = torch.randn(3, 2)
>>> torch.cholesky_solve(B, L)
tensor([[ -8.1625,  19.6097],
        [ -5.8398,  14.2387],
        [ -4.3771,  10.4173]])
>>> A.inverse() @  B
tensor([[ -8.1626,  19.6097],
        [ -5.8398,  14.2387],
        [ -4.3771,  10.4173]])

>>> A = torch.randn(3, 2, 2, dtype=torch.complex64)
>>> A = A @ A.mH + torch.eye(2) * 1e-3 # Batch of Hermitian positive-definite matrices
>>> L = torch.linalg.cholesky(A)
>>> B = torch.randn(2, 1, dtype=torch.complex64)
>>> X = torch.cholesky_solve(B, L)
>>> torch.dist(X, A.inverse() @ B)
tensor(1.6881e-5)

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.cholesky_solve.html

Spec-Zone.ru

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