特征值与特征向量

特征值与特征向量

学习目标

完成本节后,你将能够: - 从几何上理解特征值问题 - 计算 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)) / 2

def 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. 本节习题

  1. 求 \(\begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix}\) 的特征值和特征向量
  2. 证明:如果 \(\lambda\) 是 \(A\) 的特征值,则 \(\lambda^2\) 是 \(A^2\) 的特征值
  3. 如果 \(A\) 的特征值都是 1,\(A\) 一定等于 \(I\) 吗?
  4. 用矩阵对角化计算:\(\begin{bmatrix} 0 & 1 \\ -2 & -3 \end{bmatrix}^{10}\)
  5. 证明:不同特征值对应的特征向量线性无关

总结

- 特征向量 = 变换下的不变方向 - 特征值 = 沿不变方向的缩放倍数 - 对角化 \(A = S\Lambda S^{-1}\) 化简矩阵幂 - \(\text{tr} = \sum \lambda_i\),\(\det = \prod \lambda_i\)