PyTorch torch.linalg.eigh 関数


Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

torch.linalg.eighPyTorchの線形代数モジュールにおいて、エルミート行列(対称行列または複素共役行列)の固有値分解を計算するための関数です。通常の固有値分解と比較して、より効率的で数値的に安定しています。

関数定義

torch.linalg.eigh(A, UPLO='L', out=None)

パラメータ:

  • A(Tensor): 入力のエルミート行列。
  • UPLO(str, オプション): 'L' は下三角、'U' は上三角を意味します。デフォルトは 'L' です。
  • out(tuple, オプション): 出力タプル。

戻り値:

  • 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 リファレンスマニュアル

その他の拡張