Функция torch.linalg.eigh в PyTorch


Pytorch torch 参考手册Справочное руководство 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:
tensor([[2., 1.],
        [1., 2.]])
特征值:
tensor([1., 3.])
特征向量:
tensor([[-0.7071,  0.7071],
        [ 0.7071,  0.7071]])

Pytorch torch 参考手册Справочное руководство PyTorch torch

Другие расширения