Функция torch.cholesky_solve в PyTorch
Справочное руководство Pytorch torch
torch.cholesky_solveЭто функция в PyTorch, которая решает линейные уравнения с помощью разложения Холецкого. Она использует разложение Холецкого для эффективного решения AX = B.
Определение функции
torch.cholesky_solve(B, L, upper=False, out=None)
Parameters:
B(Tensor): Матрица или вектор правой части системы линейных уравнений.L(Tensor): Верхняя или нижняя треугольная матрица, полученная в результате разложения Холецкого.upper(bool, необязательный): Если True, L — верхняя треугольная матрица; в противном случае — нижняя треугольная матрица. По умолчанию False.out(Tensor, необязательный): Выходной тензор.
Возвращаемое значение:
torch.Tensor: Возвращает решение X системы линейных уравнений.
Пример использования
Пример
import torch
# Создать симметричную положительно определённую матрицу A
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]], dtype=torch.float64)
# Создать вектор правой части B
B = torch.tensor([3, 4, 5], dtype=torch.float64)
# Разложение Холецкого
L = torch.cholesky(A)
# Использовать разложение Холецкого для решения AX = B
X = torch.cholesky_solve(B, L)
print(Матрица A:)
print(A)
print(nВектор правой части B:)
print(B)
print(nРешение X:)
print(X)
print(nПроверка: A @ X =)
print(A @ X)
# Создать симметричную положительно определённую матрицу A
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]], dtype=torch.float64)
# Создать вектор правой части B
B = torch.tensor([3, 4, 5], dtype=torch.float64)
# Разложение Холецкого
L = torch.cholesky(A)
# Использовать разложение Холецкого для решения AX = B
X = torch.cholesky_solve(B, L)
print(Матрица A:)
print(A)
print(nВектор правой части B:)
print(B)
print(nРешение X:)
print(X)
print(nПроверка: A @ X =)
print(A @ X)
Вывод:
矩阵 A:
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]], dtype=torch.float64)
右侧向量 B:
tensor([3., 4., 5.], dtype=torch.float64)
解 X:
tensor([-2.5000, 5.0000, -2.0000], dtype=torch.float64)
验证: A @ X =
tensor([3., 4., 5.], dtype=torch.float64)
Другие расширения