Hermitian 矩阵的特征向量

Posted

技术标签:

【中文标题】Hermitian 矩阵的特征向量【英文标题】:Eigenvectors of a Hermitian matrix [closed] 【发布时间】:2018-10-12 23:10:03 【问题描述】:

Hermitian 矩阵是一个复数方阵,等于它的共轭转置。其矩阵元素满足如下条件:

每次,我使用 Python 计算 ,特征向量的第一个系数是纯实数。这是 Hermitian 矩阵的属性吗?

我附加了一个代码 sn-p 来生成一个 Hermitian 矩阵,计算其特征向量并打印对应于最低特征值的特征向量。

import numpy as np
from numpy import linalg as LA
N = 5   # Set size of a matrix
# Generate real part of the matrix at first
real_matrix = np.random.uniform(-1.0, 1.0, size=(N,N))
real_matrix = (real_matrix + real_matrix.T)/2
# Generate imaginary part of the matrix
imaginary_matrix = np.random.uniform(-1.0, 1.0, size=(N,N))
imaginary_matrix = (imaginary_matrix + imaginary_matrix.T)/2
imaginary_matrix = imaginary_matrix.astype(complex) * 1j
for row in range(N):
    for column in range(row,N):
        if row == column:
            imaginary_matrix[row][column] = 0.0
        else:
            imaginary_matrix[row][column] *= -1
# Combine real and imaginary part
matrix = real_matrix + imaginary_matrix
# Compute and print eigenvector
eigenvalues, eigenvectors = LA.eigh(matrix)
print(eigenvectors[:,0])

【问题讨论】:

这个问题可能更适合Mathematics,如果根据该网站的发帖规则是on-topic。 我也会在那里问。我不确定它是由 LA.eigh 函数引起的,还是一般的数学规则。 @WarrenWeckesser 这个问题可能有点误导,看看他在打印什么。 Hermitian 矩阵具有实特征值和正交特征向量。没有像特征向量的第一个系数是纯实数这样的性质 @pault 我不同意,对我来说这是一个实现问题,而不是数学问题。 @PCamilleri 我读到 “这是 Hermitian 矩阵的一个属性吗?” 作为一个数学问题,但你说得有道理。 【参考方案1】:

我认为这是一道 Python 题,而不是一道数学题。

在执行特征值分解时有一些歧义:如果 u 是特征值 lambda 的酉特征向量,则 exp(i theta) * u 也是同一特征值的酉特征向量(对于任何实 theta)。 为了解决这种不确定性,一些实现强制每个特征向量的第一个系数是实数。

当对一个实矩阵进行特征分解时,你会得到同样的结果:如果 u 是一个特征向量,那么 - u 也是。为了使特征分解具有确定性,一些实现(例如 sklearn 的 PCA,参见 this related question)强制 u 的最大系数为正。

【讨论】:

以上是关于Hermitian 矩阵的特征向量的主要内容,如果未能解决你的问题,请参考以下文章

如何求解一个矩阵的特征向量?

如何求稀疏矩阵的全部特征值和特征向量?

怎么用Matlab求矩阵的特征值和特征向量

矩阵的特征值,特征向量,和特征根是啥?

怎么求特征向量

qr分解怎么求特征向量,求矩阵E的特征值和特征向量