Hermitian矩阵是复数方矩阵,等于其共轭转置。其矩阵元素满足以下条件:
每次,我使用Python计算Hermitian矩阵的特征向量,特征向量的第一个系数是纯实数。这是Hermitian矩阵的属性吗?
我附上一个代码片段来生成一个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])
答案 0 :(得分:4)
我认为这是一个蟒蛇问题而不是数学问题。
在执行特征值分解时存在一些模糊性:如果u是特征值lambda的酉本征向量,则exp(iθ)* u也是相同特征值的酉本征向量(对于任何实数θ)。 为了解决这种不确定性,一些实现强制要求每个特征向量的第一系数是实数。
当对真实矩阵进行特征分解时,你会得到同样的东西:如果你是一个特征向量, - 你也是。为了使特征分解具有确定性,一些实现(例如sklearn的PCA,见this related question)强调u的最大系数为正。