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

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

每次,我使用 Python 计算 Hermitian 矩阵的特征向量,特征向量的第一个系数是纯实数。这是 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 矩阵的一个属性吗?” 作为一个数学问题,但你说得有道理。

标签: python numpy matrix linear-algebra eigenvector


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-11-12
    • 2016-05-15
    • 2019-04-27
    • 2012-08-08
    • 1970-01-01
    • 2011-09-29
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多