Función torch.cholesky_inverse de PyTorch
Manual de referencia de PyTorch torch
torch.cholesky_inverseEs una función de PyTorch que se utiliza para calcular la matriz inversa mediante la descomposición de Cholesky. Utiliza el resultado de la descomposición de Cholesky para calcular la inversa de la matriz de manera eficiente.
Definición de la función
torch.cholesky_inverse(L, upper=False, out=None)
Parámetros:
L(Tensor): 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): Tensor de salida.
Valor de retorno:
torch.Tensor: Devuelve la matriz inversa de la matriz original.
Ejemplo de uso
Ejemplo
import torch
# Crear una matriz simétrica definida positiva
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]], dtype=torch.float64)
# Descomposición de Cholesky
L = torch.cholesky(A)
# Calcular la matriz inversa usando la descomposición de Cholesky
A_inv = torch.cholesky_inverse(L)
print("Matriz original A:")
print(A)
print("\nMatriz inversa A^-1:")
print(A_inv)
print("\nVerificación: A @ A^-1 =")
print(A @ A_inv)
# Crear una matriz simétrica definida positiva
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]], dtype=torch.float64)
# Descomposición de Cholesky
L = torch.cholesky(A)
# Calcular la matriz inversa usando la descomposición de Cholesky
A_inv = torch.cholesky_inverse(L)
print("Matriz original A:")
print(A)
print("\nMatriz inversa A^-1:")
print(A_inv)
print("\nVerificación: A @ A^-1 =")
print(A @ A_inv)
El resultado de salida es:
原矩阵 A:
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]], dtype=torch.float64)
逆矩阵 A^-1:
tensor([[ 0.7500, -0.5000, -0.2500],
[-0.5000, 1.0000, -0.0000],
[-0.2500, -0.0000, 0.2500]], dtype=torch.float64)
验证: A @ A^-1 =
tensor([[ 1.0000e+00, -1.4901e-08, 0.0000e+00],
[-7.4506e-09, 1.0000e+00, 1.4901e-08],
[ 0.0000e+00, 7.4506e-09, 1.0000e+00]], dtype=torch.float64)
Otras extensiones