特征值与特征向量
学习目标
完成本节后,你将能够: - 从几何上理解特征值问题 - 计算 2×2 和 3×3 矩阵的特征值 - 理解对角化的条件 - 应用特征值分解
1. 特征值的几何意义
### 1.1 核心定义
\[A\mathbf{x} = \lambda\mathbf{x},\quad \mathbf{x} \neq \mathbf{0}\]
- \(\lambda\) = 特征值(标量)
- \(\mathbf{x}\) = 特征向量(方向)
几何意义:特征向量是不被线性变换改变方向的特殊向量。变换只会拉伸/压缩它(或反转方向)。
> **直觉 (3Blue1Brown)**:想象一个三维空间中的旋转——大多数向量会改变方向,只有沿着旋转轴的向量保持方向不变。这些"不动的方向"就是特征向量,它们对应的拉伸因子 1 就是特征值。
### 1.2 为什么重要?
特征向量告诉你线性变换的"骨架"——找到这些不变方向后,复杂的线性变换就可以分解为沿这些方向的简单缩放。
2. 特征方程
\[A\mathbf{x} = \lambda\mathbf{x} \implies (A - \lambda I)\mathbf{x} = \mathbf{0}\]
有非零解 ⇔ \(\det(A - \lambda I) = 0\)(特征方程)
### 2.1 2×2 例子的完整求解
\[A = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix}\]
第一步:解特征方程
\[\det\begin{bmatrix} 2-\lambda & 1 \\ 1 & 2-\lambda \end{bmatrix} = (2-\lambda)^2 - 1 = \lambda^2 - 4\lambda + 3 = 0\]
\[\lambda_1 = 3,\quad \lambda_2 = 1\]
第二步:对每个特征值求特征向量
\[\lambda = 3: (A - 3I)\mathbf{x} = \mathbf{0} \implies \begin{bmatrix} -1 & 1 \\ 1 & -1 \end{bmatrix} \mathbf{x} = \mathbf{0} \implies \mathbf{x}_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix}\]
\[\lambda = 1: (A - I)\mathbf{x} = \mathbf{0} \implies \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \mathbf{x} = \mathbf{0} \implies \mathbf{x}_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix}\]
3. 重要性质
### 3.1 迹和行列式
\[\text{tr}(A) = \sum_{i=1}^n a_{ii} = \sum_{i=1}^n \lambda_i\] \[\det(A) = \prod_{i=1}^n \lambda_i\]
应用:如果你知道一个特征值,可以用迹或行列式快速求另一个。
### 3.2 Gershgorin 圆盘定理
每个特征值 \(\lambda\) 至少在一个圆盘内:
\[|\lambda - a_{ii}| \leq \sum_{j \neq i} |a_{ij}|\]
这提供了特征值位置的快速估计。
4. 对角化
### 4.1 条件
\(A\) 可对角化 ⇔ \(A\) 有 \(n\) 个线性无关的特征向量。
充分条件:\(n\) 个互异特征值。
充要条件:每个特征值的几何重数 = 代数重数。
### 4.2 对角化公式
如果 \(A\) 可对角化,令 \(S\) 为特征向量矩阵,\(\Lambda\) 为特征值对角矩阵:
\[A = S\Lambda S^{-1}\]
核心应用:
\[A^k = S\Lambda^k S^{-1}\]
计算矩阵的高次幂从 \(O(n^3 \log k)\) 降到 \(O(n^3 + n \log k)\)。
def matrix_power(A, k):
"""用对角化计算矩阵幂"""
eigvals, eigvecs = np.linalg.eig(A)
S = eigvecs
Lambda_k = np.diag(eigvals ** k)A = np.array([[1, 2], [2, 1]]) A_10 = matrix_power(A, 10) print("A^10:") print(A_10) print("验证:") print(np.linalg.matrix_power(A, 10)) ```
5. 差分方程的应用
### 5.1 斐波那契数列
\[F_{k+2} = F_{k+1} + F_k, \quad F_0 = 0, F_1 = 1\]
用矩阵形式:
\[\begin{bmatrix} F_{k+2} \\ F_{k+1} \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} F_{k+1} \\ F_k \end{bmatrix}\]
特征值为 \(\phi = \frac{1+\sqrt{5}}{2}\) 和 \(\psi = \frac{1-\sqrt{5}}{2}\)。
\[F_k = \frac{\phi^k - \psi^k}{\sqrt{5}}\]
这就是斐波那契数列的闭式解!
phi = (1 + np.sqrt(5)) / 2def fib_closed(k): return (phi**k - psi**k) / np.sqrt(5)
for k in range(10): print(f"F_{k} = {int(round(fib_closed(k)))}") ```
6. 本节习题
- 求 \(\begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix}\) 的特征值和特征向量
- 证明:如果 \(\lambda\) 是 \(A\) 的特征值,则 \(\lambda^2\) 是 \(A^2\) 的特征值
- 如果 \(A\) 的特征值都是 1,\(A\) 一定等于 \(I\) 吗?
- 用矩阵对角化计算:\(\begin{bmatrix} 0 & 1 \\ -2 & -3 \end{bmatrix}^{10}\)
- 证明:不同特征值对应的特征向量线性无关
总结
- 特征向量 = 变换下的不变方向 - 特征值 = 沿不变方向的缩放倍数 - 对角化 \(A = S\Lambda S^{-1}\) 化简矩阵幂 - \(\text{tr} = \sum \lambda_i\),\(\det = \prod \lambda_i\)