PyTorch torch.linalg.eigh 関数
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 = 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 リファレンスマニュアル