现在位置: 首页 > PyTorch 教程 > 正文

PyTorch torch.linalg.eigh 函数


Pytorch torch 参考手册 Pytorch torch 参考手册

torch.linalg.eigh 是 PyTorch 线性代数模块中用于计算 Hermitian 矩阵(对称或复数共轭矩阵)特征值分解的函数。相比普通特征值分解,它更高效且数值更稳定。

函数定义

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

参数:

  • A (Tensor): 输入 Hermitian 矩阵。
  • UPLO (str, 可选): 'L' 表示下三角,'U' 表示上三角。默认为 'L'。
  • out (tuple, 可选): 输出元组。

返回值:

  • tuple: 返回 (特征值, 特征向量) 的元组。

使用示例

实例

import torch

# 创建对称矩阵
A = torch.tensor([[2.0, 1.0],
                  [1.0, 2.0]])

# Hermitian 特征值分解
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 参考手册