特征向量(Eigenvector)
特征向量(Eigenvector) 是线性代数中的一个重要概念,与矩阵的特征值(Eigenvalue)密切相关。它在许多数学、物理和机器学习领域中起着关键作用,尤其是在主成分分析(PCA)、奇异值分解(SVD)和网络图分析中。
定义
对于一个 n×n 的矩阵 A,如果存在一个非零向量 v 和一个标量 λ,使得:
其中:
- v 是矩阵 A 的特征向量(Eigenvector)。
- λ 是与特征向量 v 相关联的特征值(Eigenvalue)。
特征向量 v 在矩阵 A 的作用下,方向保持不变,只有大小被特征值 λ 放大或缩小。
性质
- 非零性:特征向量 v 必须是非零向量。
- 方向性:特征向量只定义方向,不定义大小,因此可以进行归一化处理。
- 线性独立性:不同特征值对应的特征向量是线性独立的。
几何解释
特征向量是矩阵 A 的变换下,其方向不改变的向量,而特征值表示变换后向量的伸缩因子。例如,在二维平面上,矩阵的特征向量可以看作是变换保持不变的主要轴。
计算特征向量
-
特征值的求解 :
根据特征值的定义,有 ,其中 是单位矩阵。
解方程 ,可以求解特征值 λ。
-
特征向量的求解 :
对于每个特征值 λ,求解 的解 v 即为对应的特征向量。
应用
-
主成分分析(PCA)
PCA通过计算数据协方差矩阵的特征向量和特征值,找到数据主要变化方向的主成分。
-
奇异值分解(SVD)
特征向量用于分解矩阵,为降维、压缩和模式识别提供基础。
-
图分析
在网络图中,特征向量用于评估节点的重要性(如PageRank算法)。
-
量子力学
在量子力学中,特征向量用于描述状态空间中的基矢量。
-
振动分析
特征向量用于描述机械系统振动的模式。
示例
Python 示例:计算矩阵的特征向量
python
import numpy as np
# 定义矩阵
A = np.array([[4, 2],
[1, 3]])
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)
运行结果
Matlab
特征值: [5. 2.]
特征向量:
[[ 0.89442719 -0.70710678]
[ 0.4472136 0.70710678]]
总结
特征向量是矩阵变换中保持方向不变的向量,它在许多机器学习算法和物理建模中起着基础性作用。理解特征向量及其性质,是掌握线性代数和机器学习的重要一步。