Función torch.cholesky_solve de PyTorch
Manual de referencia de Pytorch torch
torch.cholesky_solveEs una función de PyTorch que utiliza la descomposición de Cholesky para resolver sistemas de ecuaciones lineales. Aprovecha la descomposición de Cholesky para resolver eficientemente AX = B.
Definición de la función
torch.cholesky_solve(B, L, upper=False, out=None)
Parámetros:
B(Tensor): la matriz o vector del lado derecho del sistema de ecuaciones lineales.L(Tensor): la matriz triangular superior o inferior obtenida de la descomposición de Cholesky.upper(bool, opcional): si es True, L es una matriz triangular superior; de lo contrario, es una matriz triangular inferior. El valor predeterminado es False.out(Tensor, opcional): el tensor de salida.
Valor de retorno:
torch.Tensor: Devuelve la solución X del sistema de ecuaciones lineales.
Ejemplo de uso
Ejemplo
import torch
# Crear una matriz simétrica definida positiva 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)
# Crear el vector del lado derecho B
B = torch.tensor([3, 4, 5], dtype=torch.float64)
# Descomposición de Cholesky
L = torch.cholesky(A)
# Resolver AX = B usando Cholesky
X = torch.cholesky_solve(B, L)
print("Matriz A:")
print(A)
print("nVector del lado derecho B:")
print(B)
print("nSolución X:")
print(X)
print("nVerificación: A @ X =")
print(A @ X)
# Crear una matriz simétrica definida positiva 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)
# Crear el vector del lado derecho B
B = torch.tensor([3, 4, 5], dtype=torch.float64)
# Descomposición de Cholesky
L = torch.cholesky(A)
# Resolver AX = B usando Cholesky
X = torch.cholesky_solve(B, L)
print("Matriz A:")
print(A)
print("nVector del lado derecho B:")
print(B)
print("nSolución X:")
print(X)
print("nVerificación: A @ X =")
print(A @ X)
El resultado de salida es:
矩阵 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)
Otras extensiones