Функция torch.linalg.eigh в PyTorch
Справочное руководство PyTorch torch
torch.linalg.eighявляется функцией в модуле линейной алгебры PyTorch, используемой для вычисления разложения эрмитовых матриц (симметричных или комплексно-сопряжённых матриц) по собственным значениям. По сравнению с обычным разложением по собственным значениям оно более эффективно и численно устойчиво.
Определение функции
torch.linalg.eigh(A, UPLO='L', out=None)
Parameters:
A(Tensor): Входная эрмитова матрица.UPLO(str, необязательный): 'L' указывает на нижнетреугольную, 'U' — на верхнетреугольную. По умолчанию — 'L'.out(tuple, optional): Выходной кортеж.
Возвращаемое значение:
tuple: Возвращает кортеж (собственные значения, собственные векторы).
Пример использования
Пример
import torch
# Создать симметричную матрицу
A = torch.tensor([[2.0, 1.0],
[1.0, 2.0]])
# Разложение эрмитовой матрицы по собственным значениям
eigenvalues, eigenvectors = torch.linalg.eigh(A)
print("Матрица A:")
print(A)
print("nСобственные значения:")
print(eigenvalues)
print("nСобственные векторы:")
print(eigenvectors)
# Создать симметричную матрицу
A = torch.tensor([[2.0, 1.0],
[1.0, 2.0]])
# Разложение эрмитовой матрицы по собственным значениям
eigenvalues, eigenvectors = torch.linalg.eigh(A)
print("Матрица A:")
print(A)
print("nСобственные значения:")
print(eigenvalues)
print("nСобственные векторы:")
print(eigenvectors)
Результат вывода:
矩阵 A:
tensor([[2., 1.],
[1., 2.]])
特征值:
tensor([1., 3.])
特征向量:
tensor([[-0.7071, 0.7071],
[ 0.7071, 0.7071]])
Другие расширения