线性代数

向量

1. 内积 (Inner Product)

定义: 对于两个 $n$ 维向量 $\mathbf{a} = [a_1, a_2, \dots, a_n]^T$ 和 $\mathbf{b} = [b_1, b_2, \dots, b_n]^T$,它们的内积(也称为点积、数量积)是一个标量,定义为:

$$ \mathbf{a} \cdot \mathbf{b} = \mathbf{a}^T \mathbf{b} = \sum_{i=1}^{n} a_i b_i = a_1b_1 + a_2b_2 + \dots + a_nb_n $$

几何意义

$$ \mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\| \|\mathbf{b}\| \cos \theta $$

其中 $\theta$ 是向量 $\mathbf{a}$ 和 $\mathbf{b}$ 之间的夹角。

  • 衡量方向一致性:结果的符号取决于夹角的余弦值(锐角为正,钝角为负)。
  • 投影:$\mathbf{a} \cdot \mathbf{b}$ 可以理解为向量 $\mathbf{a}$ 在 $\mathbf{b}$ 方向上的投影长度与 $\mathbf{b}$ 的模长的乘积。
  • 正交性判定:如果 $\mathbf{a} \cdot \mathbf{b} = 0$ 且 $\mathbf{a}, \mathbf{b}$ 均为非零向量,则两向量垂直(正交)

性质

  1. 交换律:$\mathbf{a} \cdot \mathbf{b} = \mathbf{b} \cdot \mathbf{a}$
  2. 分配律:$\mathbf{a} \cdot (\mathbf{b} + \mathbf{c}) = \mathbf{a} \cdot \mathbf{b} + \mathbf{a} \cdot \mathbf{c}$
  3. 数乘结合律:$(k\mathbf{a}) \cdot \mathbf{b} = k(\mathbf{a} \cdot \mathbf{b})$
  4. 正定性:$\mathbf{a} \cdot \mathbf{a} = \|\mathbf{a}\|^2 \ge 0$,当且仅当 $\mathbf{a} = \mathbf{0}$ 时等号成立。

2. 外积 (Outer Product)

定义: 对于两个向量 $\mathbf{u}$ ($m \times 1$) 和 $\mathbf{v}$ ($n \times 1$),它们的外积(也称为张量积)是一个 $m \times n$ 的矩阵,定义为:

$$ \mathbf{u} \otimes \mathbf{v} = \mathbf{u}\mathbf{v}^T = \begin{bmatrix} u_1 \\ u_2 \\ \vdots \\ u_m \end{bmatrix} \begin{bmatrix} v_1 & v_2 & \dots & v_n \end{bmatrix} = \begin{bmatrix} u_1v_1 & u_1v_2 & \dots & u_1v_n \\ u_2v_1 & u_2v_2 & \dots & u_2v_n \\ \vdots & \vdots & \ddots & \vdots \\ u_mv_1 & u_mv_2 & \dots & u_mv_n \end{bmatrix} $$

注意:不要与叉乘(Cross Product)混淆,虽然有时外积也会涉及叉乘的概念(在几何代数中),但在矩阵代数通常指 $\mathbf{u}\mathbf{v}^T$。

性质

  • 秩为1:如果不包含零向量,外积得到的矩阵的秩为 1。这意味着矩阵的所有行都是平行的,所有列也是平行的。
  • 与内积的关系:矩阵的迹 $tr(\mathbf{u}\mathbf{v}^T) = \mathbf{u}^T\mathbf{v} = \mathbf{u} \cdot \mathbf{v}$。

3. 叉乘 (Cross Product)

定义: 叉乘(也称为向量积)通常仅定义在 3维空间 $\mathbb{R}^3$ 中。对于两个向量 $\mathbf{a} = (a_1, a_2, a_3)$ 和 $\mathbf{b} = (b_1, b_2, b_3)$,它们的叉乘是一个新的向量:

$$ \mathbf{a} \times \mathbf{b} = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \end{vmatrix} = (a_2b_3 - a_3b_2)\mathbf{i} - (a_1b_3 - a_3b_1)\mathbf{j} + (a_1b_2 - a_2b_1)\mathbf{k} $$

写成列向量形式:

$$ \mathbf{a} \times \mathbf{b} = \begin{bmatrix} a_2b_3 - a_3b_2 \\ a_3b_1 - a_1b_3 \\ a_1b_2 - a_2b_1 \end{bmatrix} $$

几何意义

  • 方向:$\mathbf{a} \times \mathbf{b}$ 的方向垂直于 $\mathbf{a}$ 和 $\mathbf{b}$ 所确定的平面,且遵循右手定则
  • 模长:$\|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\| \|\mathbf{b}\| \sin \theta$,表示以 $\mathbf{a}$ 和 $\mathbf{b}$ 为邻边的平行四边形的面积

性质

  1. 反交换律:$\mathbf{a} \times \mathbf{b} = - (\mathbf{b} \times \mathbf{a})$
  2. 分配律:$\mathbf{a} \times (\mathbf{b} + \mathbf{c}) = \mathbf{a} \times \mathbf{b} + \mathbf{a} \times \mathbf{c}$
  3. 不满足结合律:$\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) \neq (\mathbf{a} \times \mathbf{b}) \times \mathbf{c}$
  4. 平行零积:如果 $\mathbf{a} \parallel \mathbf{b}$(即 $\theta = 0$ 或 $\pi$),则 $\mathbf{a} \times \mathbf{b} = \mathbf{0}$。
  5. 正交性:$(\mathbf{a} \times \mathbf{b}) \cdot \mathbf{a} = 0$ 且 $(\mathbf{a} \times \mathbf{b}) \cdot \mathbf{b} = 0$。

矩阵

矩阵可以理解为是对空间线性变换

矩阵运算

结合律

矩阵乘法满足结合律,多个矩阵相乘,可以在改变他们的分组的情况下,不影响结果。

$$ (A \cdot B) \cdot C = A \cdot (B \cdot C) $$

分配律

矩阵乘法满足左右分配律:

  • 左分配律: 对于任何矩阵$A,B,C$,有: $$ A \cdot (B+C) = A \cdot B + A \cdot C $$
  • 右分配律: 对于任何矩阵$A,B,C$,有: $$ (A + B) \cdot C = A \cdot C + B \cdot C $$

单位矩阵乘法性质

对于任何矩阵$A$和单位矩阵$I$,如何维度适配,则有:

$$\begin{aligned} I \cdot A &= A \\ A \cdot I &= A \end{aligned}$$

转置性质

对于任何矩阵$A,B$有:

$$ (A \cdot B)^{T} = B^{T} \cdot A^{T} $$

矩阵的秩

矩阵的秩最直观的理解是:矩阵中真正有效提供新信息的向量的数量。 更正式的说,矩阵的秩有几个等价的定义:

  • 行秩:矩阵中线性无关的行向量的最大数量。
  • 列秩:矩阵中线性无关的列向量的最大数量。
  • 维度定义:矩阵的列向量所张成的空间的维度(即列空间维度),或行向量所张成的空间的维度(即行空间维度)。

一个基本且重要的结论是:任何矩阵的行秩都等于其列秩。因此,我们可以统一称之为矩阵的秩。

秩的性质

  1. 基本性质:对于一个 $m \times n$ 的矩阵 $A$,其秩 $rank(A)$ 满足 $0 \le rank(A) \le \min(m, n)$。
  2. 转置:$rank(A) = rank(A^T)$。
  3. 初等变换:初等行(列)变换不改变矩阵的秩。这是计算秩的基础。
  4. 乘积:$rank(AB) \le \min(rank(A), rank(B))$。
  5. :$rank(A+B) \le rank(A) + rank(B)$。

如何计算秩

计算矩阵的秩最常用的方法是高斯消元法

  1. 通过一系列初等行变换将矩阵转化为行阶梯形矩阵 (Row Echelon Form)
  2. 行阶梯形矩阵中非零行的数量(也即主元 (pivot) 的数量)就是原矩阵的秩。

秩与线性方程组

秩是判断线性方程组 $Ax=b$ 解的性质的关键。设 $n$ 为未知数的个数(即 $A$ 的列数):

  • 无解:当 $rank(A) < rank([A|b])$ 时,方程组无解。其中 $[A|b]$ 是增广矩阵。
  • 有唯一解:当 $rank(A) = rank([A|b]) = n$ 时,方程组有唯一解。
  • 有无穷多解:当 $rank(A) = rank([A|b]) < n$ 时,方程组有无穷多解。

满秩

满秩 (Full Rank) 指的是一个矩阵的秩达到了其行数或列数所允许的最大值,即 $rank(A) = \min(m, n)$。

根据矩阵的形状,满秩可以分为:

  • 方阵 ($m=n$):如果 $rank(A) = n$,则称 $A$ 为满秩方阵。这等价于:
    • $A$ 是可逆的 (Invertible)。
    • $A$ 的行列式 $\det(A) \neq 0$。
    • 齐次方程 $Ax=0$ 只有唯一解(零解)。
  • 高矩阵 ($m>n$):如果 $rank(A) = n$ (列数),则称 $A$ 为列满秩 (Full Column Rank)
    • 这意味着它的所有列向量线性无关。
    • 线性方程组 $Ax=b$ 如果有解,解是唯一的。
  • 宽矩阵 ($m行满秩 (Full Row Rank)。
    • 这意味着它的所有行向量线性无关。
    • 线性方程组 $Ax=b$ 对任意的 $b$ 都有解(至少一个)。

高斯消元法

高斯消元法(Gaussian Elimination)是线性代数中的一种重要算法,用于求解线性方程组、计算矩阵的逆以及确定矩阵的秩。其核心思想是通过一系列行变换将增广矩阵(或系数矩阵)转化为行阶梯形矩阵(Row Echelon Form)或简化行阶梯形矩阵(Reduced Row Echelon Form),从而简化方程组的求解过程。

基本原理

高斯消元法通过以下三种初等行变换,将矩阵逐步化简:

  1. 交换两行:将矩阵中的任意两行互换位置。
  2. 某行乘以非零常数:将矩阵中的某一行所有元素乘以一个非零常数。
  3. 某行加上另一行的倍数:将矩阵中的某一行加上另一行的某个非零倍数。

这些变换不会改变线性方程组的解集。

步骤

以求解 $n$ 个方程 $n$ 个未知数的线性方程组为例,其增广矩阵为 $[A|B]$。高斯消元法通常分为两个阶段:

1. 前向消元(Forward Elimination)

目标是将增广矩阵转化为行阶梯形矩阵。

  1. 选择主元:从第一列开始,找到一个非零元素作为主元(pivot)。如果第一行第一列的元素为零,则交换该行与下面某一行,使得主元非零。如果整列都为零,则跳过该列。
  2. 归一化主元:将主元所在行乘以一个常数,使得主元变为 1。
  3. 消去同列元素:通过将主元所在行乘以适当的倍数并加到其他行,使得主元下方所有元素变为 0。
  4. 重复:对下一个主元(通常是下一行下一列的元素)重复上述步骤,直到矩阵变为行阶梯形。

2. 反向代入(Backward Substitution)

目标是将行阶梯形矩阵转化为简化行阶梯形矩阵,并求解未知数。

  1. 从最后一行开始:从行阶梯形矩阵的最后一行开始,该行通常只有一个非零系数,可以直接解出最后一个未知数。
  2. 向上代入:将已解出的未知数代入上一行方程,解出倒数第二个未知数。
  3. 重复:重复向上代入的过程,直到所有未知数都被解出。

示例

考虑以下线性方程组:

$x + 2y - z = 3$ $3x - y + 2z = 1$ $2x + y + z = 4$

其增广矩阵为:

$\begin{bmatrix} 1 & 2 & -1 & | & 3 \\ 3 & -1 & 2 & | & 1 \\ 2 & 1 & 1 & | & 4 \end{bmatrix}$

前向消元:

  1. R2 = R2 - 3R1 R3 = R3 - 2R1

    $\begin{bmatrix} 1 & 2 & -1 & | & 3 \\ 0 & -7 & 5 & | & -8 \\ 0 & -3 & 3 & | & -2 \end{bmatrix}$

  2. R2 = R2 / (-7)

    $\begin{bmatrix} 1 & 2 & -1 & | & 3 \\ 0 & 1 & -5/7 & | & 8/7 \\ 0 & -3 & 3 & | & -2 \end{bmatrix}$

  3. R3 = R3 + 3R2

    $\begin{bmatrix} 1 & 2 & -1 & | & 3 \\ 0 & 1 & -5/7 & | & 8/7 \\ 0 & 0 & 6/7 & | & 10/7 \end{bmatrix}$

反向代入:

从最后一行得到: $(6/7)z = 10/7 \Rightarrow z = 10/6 = 5/3$

代入第二行: $y - (5/7)z = 8/7$ $y - (5/7)(5/3) = 8/7$ $y - 25/21 = 8/7$ $y = 8/7 + 25/21 = 24/21 + 25/21 = 49/21 = 7/3$

代入第一行: $x + 2y - z = 3$ $x + 2(7/3) - 5/3 = 3$ $x + 14/3 - 5/3 = 3$ $x + 9/3 = 3$ $x + 3 = 3 \Rightarrow x = 0$

所以,方程组的解为 $x=0, y=7/3, z=5/3$。

应用

高斯消元法在许多领域都有广泛应用:

  • 求解线性方程组:最直接的应用,无论是唯一解、无穷多解还是无解情况,高斯消元法都能给出判断。
  • 计算矩阵的逆:通过将待求逆矩阵与单位矩阵并排构成增广矩阵 $[A|I]$,然后对 $A$ 进行高斯消元,当 $A$ 变为 $I$ 时,右侧的 $I$ 就会变为 $A^{-1}$。
  • 计算矩阵的秩:行阶梯形矩阵中非零行的数量即为矩阵的秩。
  • 确定向量组的线性相关性:将向量作为行(或列)构成矩阵,通过高斯消元判断其秩。
  • 在计算机图形学、工程计算、经济学等领域:解决各种涉及线性系统的问题。

行列式

行列式是线性代数中一个非常重要的概念,它是一个标量值,可以从方阵中计算出来。行列式不仅在理论上具有深刻的几何意义,在实际应用中也扮演着关键角色,例如判断矩阵是否可逆、求解线性方程组以及计算多维空间中的体积等。

1. 定义

对于一个 $n \times n$ 的方阵 $A$,其行列式记作 $\det(A)$ 或 $|A|$。

1.1 二阶行列式

对于一个 $2 \times 2$ 的矩阵 $A = \begin{pmatrix} a & b \\ c & d \end{pmatrix}$,其行列式定义为:

$$ \det(A) = ad - bc $$

1.2 三阶行列式

对于一个 $3 \times 3$ 的矩阵 $A = \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix}$,其行列式定义为:

$$ \det(A) = a(ei - fh) - b(di - fg) + c(dh - eg) $$

这可以通过萨吕法则 (Sarrus’ Rule) 记忆,或者通过代数余子式展开来计算。

1.3 n阶行列式 (代数余子式展开)

对于任意 $n \times n$ 矩阵 $A = (a_{ij})$,其行列式可以通过按行或按列展开来定义。 按第 $i$ 行展开:

$$ \det(A) = \sum_{j=1}^{n} (-1)^{i+j} a_{ij} M_{ij} $$

按第 $j$ 列展开:

$$ \det(A) = \sum_{i=1}^{n} (-1)^{i+j} a_{ij} M_{ij} $$

其中 $M_{ij}$ 是元素 $a_{ij}$ 的余子式 (Minor),它是删除矩阵 $A$ 的第 $i$ 行和第 $j$ 列后得到的 $(n-1) \times (n-1)$ 子矩阵的行列式。 $C_{ij} = (-1)^{i+j} M_{ij}$ 称为元素 $a_{ij}$ 的代数余子式 (Cofactor)。 所以,行列式也可以表示为:

$$ \det(A) = \sum_{j=1}^{n} a_{ij} C_{ij} \quad (\text{按第 } i \text{ 行展开}) $$

$$ \det(A) = \sum_{i=1}^{n} a_{ij} C_{ij} \quad (\text{按第 } j \text{ 列展开}) $$

2. 几何意义

行列式最直观的几何意义是表示线性变换对体积的缩放因子

  • 二维空间:对于一个 $2 \times 2$ 矩阵 $A = \begin{pmatrix} a & b \\ c & d \end{pmatrix}$,它的列向量 $\vec{v_1} = \begin{pmatrix} a \\ c \end{pmatrix}$ 和 $\vec{v_2} = \begin{pmatrix} b \\ d \end{pmatrix}$ 定义了一个平行四边形。$\det(A)$ 的绝对值就是这个平行四边形的面积。如果行列式为负,表示变换改变了空间的定向(例如,翻转)。

  • 三维空间:对于一个 $3 \times 3$ 矩阵 $A$,它的列向量定义了一个平行六面体。$\det(A)$ 的绝对值就是这个平行六面体的体积。同样,正负号表示定向。

  • n维空间:对于 $n \times n$ 矩阵,其行列式的绝对值表示由其列向量(或行向量)张成的 $n$ 维平行多面体的体积。

3. 性质

行列式具有许多重要的性质:

  1. 转置不变性:$\det(A^T) = \det(A)$。
  2. 行/列互换:互换矩阵的任意两行(或两列),行列式的值变号。
  3. 行/列倍乘:用一个数 $k$ 乘以矩阵的某一行(或某一列),行列式的值也乘以 $k$。
  4. 行/列加减:将矩阵的某一行(或某一列)的 $k$ 倍加到另一行(或另一列)上,行列式的值不变。
  5. 两行/列相同:如果矩阵有两行(或两列)完全相同,则行列式为零。
  6. 一行/列为零:如果矩阵有一行(或一列)的元素全为零,则行列式为零。
  7. 三角矩阵:对角矩阵、上三角矩阵和下三角矩阵的行列式等于其主对角线元素的乘积。
  8. 乘法定理:$\det(AB) = \det(A) \det(B)$。
  9. 可逆性判别:方阵 $A$ 可逆的充要条件是 $\det(A) \neq 0$。如果 $\det(A) = 0$,则矩阵是奇异的(不可逆的)。
  10. 逆矩阵的行列式:如果 $A$ 可逆,则 $\det(A^{-1}) = \frac{1}{\det(A)}$。

4. 计算方法

除了代数余子式展开,还有其他计算行列式的方法:

  1. 行(列)变换法:利用行列式的性质 2、3、4,通过初等行(列)变换将矩阵化为上三角或下三角矩阵,然后计算对角线元素的乘积。在变换过程中,需要记录行(列)互换的次数和行(列)倍乘的因子。

    • 每次行(列)互换,行列式变号。
    • 每次用 $k$ 乘以某行(列),行列式乘以 $k$。
    • 将某行(列)的倍数加到另一行(列),行列式不变。
  2. 高斯消元法:与行变换法类似,通过高斯消元将矩阵化为阶梯形(上三角)矩阵,然后计算主对角线元素的乘积。

5. 应用

行列式在数学和工程中有广泛应用:

  • 判断矩阵可逆性:如性质 9 所述,这是最基本的应用之一。
  • 求解线性方程组:克拉默法则 (Cramer’s Rule) 利用行列式来求解具有唯一解的线性方程组。
  • 特征值计算:特征方程 $\det(A - \lambda I) = 0$ 是计算矩阵特征值的关键。
  • 向量组线性相关性判断:如果由一组向量构成的方阵的行列式为零,则这组向量线性相关。
  • 几何计算:计算平行四边形、平行六面体等几何体的面积或体积。

6. 常见定义

  • 矩阵行列式$det(A)=0$通常表示:
    • 首先矩阵有行列式,表示矩阵是方阵
    • 直观理解:这个矩阵代表的线性变换将空间压扁了,导致了信息的丢失和维度的降低
    • 线代角度:矩阵是奇异的不可逆的
      • 重要:如果矩阵可逆,则$Ax=b$可以得到唯一解$x=A^{-1}b$。但如果矩阵$A$是奇异的,则不能通过这种方式解线性方程组。
    • 行/列向量线性相关:矩阵的行向量组(或列向量组)是线性相关的。这意味着至少有一个向量可以表示为其他向量的线性组合。
    • 冗余信息:这意味着矩阵中存在冗余信息。其中一行(或一列)没有提供新的、独立的方向信息。
    • 矩阵的秩小于其维度。
    • 线性方程组解不唯一。
      • 齐次方程组($Ax=0$):如果$det(A)=0$,那么方程$Ax=0$存在非零解(事实上,有无穷多个解)。这些非零解构成了矩阵$A$的“零空间(Null space)”。
      • 非齐次方程组($Ax=b,b\ne0$):如果$det(A)=0$,那么方程$Ax=b$没有唯一解。它可能有:
        • 无穷多个解:如果向量$b$恰好在$A$的列空间中。
        • 无解:如果向量$b$不在$A$的列空间中。
          • 因为$Ax$可以理解为$A$的列向量表示的线性组合($x$)。

特征值

特征值和特征向量是线性代数中的核心概念,它们揭示了矩阵(线性变换)的内在特性。

1. 定义

对于一个给定的方阵 $A$,如果存在一个非零向量 $v$ 和一个标量 $\lambda$,使得:

$$ Av = \lambda v $$

那么:

  • $\lambda$ 被称为矩阵 $A$ 的一个特征值 (Eigenvalue)
  • $v$ 被称为对应于特征值 $\lambda$ 的特征向量 (Eigenvector)

2. 几何意义

这个定义的几何意义非常深刻:

  • 矩阵 $A$ 代表一个线性变换(如旋转、缩放、剪切)。
  • 当这个变换作用于一个普通向量时,通常会改变其方向和长度。
  • 但是,当变换作用于它的特征向量 $v$ 时,特征向量的方向保持不变(或恰好反向),仅仅被拉伸或压缩了 $\lambda$ 倍。
  • 特征向量是那些在线性变换中“屹立不倒”,只发生缩放的特殊向量。
  • 特征值就是这些特征向量对应的缩放因子。
    • 如果 $\lambda > 1$,特征向量在变换中被拉伸。
    • 如果 $0 < \lambda < 1$,特征向量被压缩。
    • 如果 $\lambda < 0$,特征向量的方向反转,并进行缩放。

3. 如何求解

为了找到特征值和特征向量,我们将方程改写为:

$$ (A - \lambda I)v = 0 $$

其中 $I$ 是单位矩阵。

  • 因为我们寻找的是非零向量 $v$,所以这意味着矩阵 $(A - \lambda I)$ 必须是奇异的(不可逆的),即它的行列式为零。
  • 特征方程 (Characteristic Equation): $$ \det(A - \lambda I) = 0 $$
  • 通过求解这个关于 $\lambda$ 的多项式方程,我们就可以得到矩阵 $A$ 的所有特征值。
  • 对于每个求出的特征值 $\lambda_i$,再带回到 $(A - \lambda_i I)v = 0$ 中,求解这个线性方程组,就可以得到对应的特征向量 $v_i$。

4. 应用

特征值和特征向量在许多领域都有着至关重要的应用:

  • 主成分分析 (PCA):通过计算数据协方差矩阵的特征值和特征向量,找到数据中方差最大的方向(主成分),从而实现降维。最大的特征值对应的特征向量就是最重要的主成分。
  • 谱聚类 (Spectral Clustering):利用图拉普拉斯矩阵的特征向量来进行数据聚类。
  • Google 的 PageRank 算法:通过计算一个巨大链接矩阵的特征向量来确定网页的重要性。
  • 量子力学:在量子力学中,物理量(如能量、动量)被表示为算符(矩阵),其特征值就是这些物理量可能被测量到的值。

奇异值

奇异值分解 (Singular Value Decomposition, SVD) 是线性代数中一种功能极其强大的矩阵分解方法,可以看作是特征值分解对于任意形状矩阵(不一定是方阵)的推广。

1. 定义 (SVD)

对于任意一个 $m \times n$ 的矩阵 $A$,SVD 可以将其分解为三个矩阵的乘积:

$$ A = U \Sigma V^T $$

其中:

  • $A$:原始的 $m \times n$ 矩阵。
  • $U$:一个 $m \times m$ 的正交矩阵 (Orthogonal Matrix)。其列向量称为左奇异向量 (Left-singular vectors)
  • $\Sigma$ (Sigma):一个 $m \times n$ 的对角矩阵。其对角线上的元素 $\sigma_i$ 称为奇异值 (Singular Values)。这些奇异值是非负的,并且通常按从大到小的顺序排列。非对角线元素全为0。
  • $V^T$:一个 $n \times n$ 的正交矩阵 $V$ 的转置。$V$ 的列向量称为右奇异向量 (Right-singular vectors)

2. 几何意义

如果说特征分解描述了一个线性变换(方阵)在某些特殊方向(特征向量)上的缩放效应,那么SVD则将任意一个线性变换(任意矩阵)分解为三个基本操作的组合:

  1. 一个旋转 (Rotation):由 $V^T$ 实现。它将原始域中的一组标准正交基旋转成另一组正交基(即 $V$ 的列向量)。
  2. 一个缩放 (Scaling):由 $\Sigma$ 实现。它在新的基方向上对向量进行缩放,缩放比例就是各个奇异值 $\sigma_i$。
  3. 另一次旋转 (Rotation):由 $U$ 实现。它将缩放后的向量旋转到目标域的最终位置。

核心思想:任何线性变换都可以被看作是“先旋转,再沿着新坐标轴拉伸/压缩,最后再进行一次旋转”的过程。奇异值就是这些拉伸/压缩的比例,它们代表了矩阵 $A$ 在各个方向上“放大”或“缩小”的程度。

3. 与特征值的关系

奇异值和特征值之间有非常紧密的联系:

  • 矩阵 $A$ 的左奇异向量($U$ 的列)是 $AA^T$ 的特征向量。
  • 矩阵 $A$ 的右奇异向量($V$ 的列)是 $A^TA$ 的特征向量。
  • 矩阵 $A$ 的非零奇异值是 $A^TA$ (或 $AA^T$) 的非零特征值的平方根

4. 应用

SVD 是机器学习和数据科学中最重要的工具之一,应用极其广泛:

  • 主成分分析 (PCA):对数据矩阵进行SVD分解,可以直接得到主成分。SVD是实现PCA的一种常用且数值稳定的方法。
  • 降维与数据压缩:SVD提供了一个矩阵的最佳低秩近似。通过保留最大的k个奇异值及其对应的奇异向量,我们可以用一个更小的矩阵来近似原始矩阵,从而实现数据压缩(例如图像压缩)。
  • 推荐系统:在协同过滤中,用户-物品评分矩阵通常是稀疏且高维的。通过SVD(或其变体)可以发现潜在的因子,从而预测用户可能对未评分物品的评分。
  • 自然语言处理 (NLP):在潜在语义分析 (Latent Semantic Analysis, LSA) 中,使用SVD来分析词项-文档矩阵,发现词语和文档之间的潜在语义关系。
  • 伪逆矩阵计算:SVD可以用来计算矩阵的伪逆,这对于求解线性最小二乘问题非常有用。

对角化

矩阵对角化是特征值和特征向量理论的一个直接且强大的应用。它旨在将一个矩阵简化为一个对角矩阵,从而简化计算。

1. 定义

一个 $n \times n$ 的方阵 $A$ 被称为可对角化的 (Diagonalizable),如果存在一个可逆矩阵 $P$ 和一个对角矩阵 $D$,使得:

$$ A = PDP^{-1} $$

或者等价地:

$$ D = P^{-1}AP $$

这个过程称为将矩阵 $A$ 对角化

2. 对角化的条件

  • 核心思想:对角化本质上是为线性变换 $A$ 寻找一组新的基,在这组基下,变换的效果仅仅是在各个基方向上进行缩放。
  • 这组新的基就是 $A$ 的特征向量!
  • 对角矩阵 $D$ 的对角线元素就是 $A$ 的特征值 $\lambda_i$。
  • 矩阵 $P$ 的列向量就是与这些特征值对应的特征向量 $v_i$。

一个 $n \times n$ 矩阵 $A$ 可对角化的充要条件是:$A$ 拥有 $n$ 个线性无关的特征向量

一个重要的推论:如果一个 $n \times n$ 矩阵拥有 $n$ 个不同的特征值,那么它一定是可对角化的。

3. 如何对角化

  1. 求解特征值:计算 $\det(A - \lambda I) = 0$,得到所有特征值 $\lambda_1, \lambda_2, \dots, \lambda_n$。
  2. 求解特征向量:对于每个特征值 $\lambda_i$,求解 $(A - \lambda_i I)v = 0$,得到对应的特征向量 $v_i$。
  3. 构建矩阵 P 和 D
    • 用特征向量 $v_1, v_2, \dots, v_n$ 作为列向量构建矩阵 $P = [v_1 | v_2 | \dots | v_n]$。
    • 用对应的特征值 $\lambda_1, \lambda_2, \dots, \lambda_n$ 构建对角矩阵 $D$。
  4. 验证:如果 $P$ 可逆(即特征向量线性无关),则 $A$ 可被对角化为 $A = PDP^{-1}$。

4. 对称矩阵的对角化

对于实对称矩阵 ($A = A^T$),对角化有更强的性质:

  • 它的所有特征值都是实数。
  • 不同特征值对应的特征向量是正交的。
  • 总是可以被对角化。
  • 我们可以找到一组标准正交的特征向量,此时矩阵 $P$ 是一个正交矩阵 ($P^{-1} = P^T$)。
  • 分解形式为 $A = PDP^T$,这被称为谱分解 (Spectral Decomposition)

5. 应用

对角化的主要优势在于简化矩阵运算,尤其是矩阵的幂运算:

$$ A^k = (PDP^{-1})^k = (PDP^{-1})(PDP^{-1})\dots(PDP^{-1}) = PD(P^{-1}P)D(P^{-1}P)\dots DP^{-1} = PD^kP^{-1} $$

计算对角矩阵的幂 $D^k$ 非常简单,只需将对角线元素各自取 $k$ 次方即可。这在求解线性差分方程、马尔可夫链等问题中非常有用。

主成分分析 (PCA)

主成分分析 (Principal Component Analysis, PCA) 是一种广泛应用的无监督降维技术,其核心思想是将高维数据投影到低维空间中,同时尽可能多地保留原始数据的方差

PCA 的本质是寻找数据中方差最大的方向,这些方向由数据协方差矩阵的特征向量定义。

1. 目标

  • 降维:减少数据的特征数量,同时最小化信息损失。
  • 去噪:通过忽略方差较小的维度(可能由噪声引起)来简化数据。
  • 数据可视化:将高维数据降到2维或3维,以便直观地观察。

2. 算法步骤

假设我们有一个包含 $m$ 个样本,每个样本有 $n$ 个特征的数据集 $X$ (一个 $m \times n$ 的矩阵)。

  1. 数据中心化 (Mean Centering): 计算每个特征的均值,并从每个样本中减去该均值。

    $$ X' = X - \text{mean}(X) $$

    这一步确保了数据的均值为零,是计算协方差的前提。

  2. 计算协方差矩阵 (Covariance Matrix): 计算中心化后数据的协方差矩阵 $C$。

    $$ C = \frac{1}{m-1} X'^T X' $$

    协方差矩阵是一个 $n \times n$ 的对称矩阵,其对角线元素是每个特征的方差,非对角线元素是特征之间的协方差。

  3. 特征值分解: 对协方差矩阵 $C$ 进行特征值分解,得到其特征值 $\lambda_1, \lambda_2, \dots, \lambda_n$ 和对应的特征向量 $v_1, v_2, \dots, v_n$。

    $$ Cv_i = \lambda_i v_i $$
    • 特征向量 $v_i$ 代表了数据空间中的一个方向(一个主成分)。
    • 特征值 $\lambda_i$ 代表了数据在 $v_i$ 方向上的方差大小。特征值越大,说明数据在该方向上的分布越分散,该方向越重要。
  4. 选择主成分: 将特征值从大到小排序。选择前 $k$ ($k < n$) 个最大的特征值对应的特征向量,构成一个投影矩阵 $P$ (一个 $n \times k$ 的矩阵)。

    $$ P = [v_1 | v_2 | \dots | v_k] $$
  5. 数据投影: 将中心化后的原始数据 $X'$ 投影到由前 $k$ 个主成分构成的新的低维空间中,得到降维后的数据 $Y$。

    $$ Y = X'P $$

    $Y$ 是一个 $m \times k$ 的矩阵,它就是降维后的新数据集。

3. 与 SVD 的关系

虽然上述步骤是基于协方差矩阵的特征分解,但在实践中,PCA 通常通过对中心化后的数据矩阵 $X'$ 直接进行奇异值分解 (SVD) 来实现,因为这种方法在数值上更稳定。

对 $X'$ 进行 SVD 分解得到 $X' = U\Sigma V^T$:

  • 右奇异向量 ($V$ 的列) 就是主成分(即协方差矩阵的特征向量)。
  • 奇异值的平方与样本数 $m-1$ 的比值,对应于特征值。

使用 SVD 可以避免显式地计算和存储庞大的协方差矩阵 $X'^T X'$,尤其是在特征数量 $n$ 远大于样本数量 $m$ 时。

雅可比矩阵

雅可比矩阵 (Jacobian Matrix) 是向量微积分中的一个重要概念,它是一阶偏导数以一定方式排列成的矩阵。对于一个将 $n$ 维向量映射到 $m$ 维向量的函数,雅可比矩阵描述了该函数在某一点附近的局部线性逼近

1. 定义

假设有一个函数 $\mathbf{f}: \mathbb{R}^n \to \mathbb{R}^m$,它接受一个输入向量 $\mathbf{x} \in \mathbb{R}^n$ 并产生一个输出向量 $\mathbf{y} \in \mathbb{R}^m$:

$$ \mathbf{y} = \mathbf{f}(\mathbf{x}) = \begin{bmatrix} y_1(x_1, \dots, x_n) \\ y_2(x_1, \dots, x_n) \\ \vdots \\ y_m(x_1, \dots, x_n) \end{bmatrix} $$

如果函数 $\mathbf{f}$ 的所有一阶偏导数都存在,那么 $\mathbf{f}$ 在点 $\mathbf{x}$ 处的雅可比矩阵 $J$ (或记作 $D\mathbf{f}(\mathbf{x})$) 是一个 $m \times n$ 的矩阵,其第 $i$ 行第 $j$ 列的元素是 $\frac{\partial y_i}{\partial x_j}$:

$$ J = \begin{bmatrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \cdots & \frac{\partial y_1}{\partial x_n} \\ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_2}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial y_m}{\partial x_1} & \frac{\partial y_m}{\partial x_2} & \cdots & \frac{\partial y_m}{\partial x_n} \end{bmatrix} $$

简而言之,雅可比矩阵的每一行是对应分量函数的梯度(转置)

2. 几何意义与直观理解

2.1 最佳线性逼近

在单变量微积分中,导数 $f'(x)$ 告诉我们函数在某点的切线斜率,即 $f(x + \Delta x) \approx f(x) + f'(x)\Delta x$。 雅可比矩阵是这一概念在高维空间的推广。它给出了非线性函数 $\mathbf{f}$ 在点 $\mathbf{x}$ 附近的最佳线性近似:

$$ \mathbf{f}(\mathbf{x} + \Delta \mathbf{x}) \approx \mathbf{f}(\mathbf{x}) + J(\mathbf{x}) \cdot \Delta \mathbf{x} $$

这表明,雅可比矩阵将输入空间的微小变化 $\Delta \mathbf{x}$ 线性映射到输出空间的微小变化 $\Delta \mathbf{y}$。

2.2 体积缩放因子 (雅可比行列式)

当 $m=n$ 时(即输入和输出维度相同),雅可比矩阵是一个方阵,我们可以计算它的行列式,称为雅可比行列式 (Jacobian Determinant),记作 $|J|$ 或 $\det(J)$。 雅可比行列式代表了函数 $\mathbf{f}$ 在某一点引起的局部体积缩放比例

  • 如果 $|J| > 1$,变换在局部放大了体积。
  • 如果 $0 < |J| < 1$,变换在局部缩小了体积。
  • 如果 $|J| < 0$,变换改变了空间的定向(翻转)。
  • 如果 $|J| = 0$,变换将空间“压扁”了(降维),此时变换不可逆。

3. 具体细节与性质

  • 梯度与雅可比:如果 $m=1$(标量场),雅可比矩阵就是梯度的转置(行向量)。
  • 链式法则:如果 $\mathbf{h}(\mathbf{x}) = \mathbf{g}(\mathbf{f}(\mathbf{x}))$,则复合函数的雅可比矩阵是各部分雅可比矩阵的乘积: $$ J_{\mathbf{h}}(\mathbf{x}) = J_{\mathbf{g}}(\mathbf{f}(\mathbf{x})) \cdot J_{\mathbf{f}}(\mathbf{x}) $$
  • 逆函数定理:如果函数 $\mathbf{f}$ 在点 $\mathbf{x}$ 处的雅可比行列式不为零,则 $\mathbf{f}$ 在该点附近具有局部逆函数。

4. 使用方法与应用场景

4.1 多重积分中的变量代换

这是雅可比矩阵最常见的应用之一。当我们在多重积分中进行坐标变换(例如从直角坐标系变换到极坐标系或球坐标系)时,必须乘以雅可比行列式的绝对值,以修正体积(面积)微元的缩放。

示例:极坐标变换

$$ x = r \cos \theta, \quad y = r \sin \theta $$

雅可比矩阵为:

$$ J = \begin{bmatrix} \frac{\partial x}{\partial r} & \frac{\partial x}{\partial \theta} \\ \frac{\partial y}{\partial r} & \frac{\partial y}{\partial \theta} \end{bmatrix} = \begin{bmatrix} \cos \theta & -r \sin \theta \\ \sin \theta & r \cos \theta \end{bmatrix} $$

雅可比行列式为:

$$ \det(J) = r \cos^2 \theta - (-r \sin^2 \theta) = r(\cos^2 \theta + \sin^2 \theta) = r $$

这就是为什么在极坐标积分中 $dx dy$ 会变成 $r dr d\theta$。

4.2 求解非线性方程组 (牛顿法)

对于非线性方程组 $\mathbf{f}(\mathbf{x}) = \mathbf{0}$,牛顿法利用雅可比矩阵进行迭代求解:

$$ \mathbf{x}_{k+1} = \mathbf{x}_k - [J(\mathbf{x}_k)]^{-1} \mathbf{f}(\mathbf{x}_k) $$

这里雅可比矩阵起到了类似于单变量牛顿法中导数的作用,指导搜索方向。

4.3 深度学习与反向传播

在神经网络中,训练过程本质上是最小化损失函数 $L$。反向传播算法利用链式法则计算梯度,而链式法则中的每一项本质上都是层与层之间变换的雅可比矩阵(或其一部分)。虽然我们在实践中通常直接计算向量-雅可比积 (VJP) 以避免显式构建巨大的雅可比矩阵,但其理论基础是雅可比矩阵。

4.4 机器人学

在机器人运动学中,雅可比矩阵用于描述机器人关节速度(关节空间)与末端执行器速度(笛卡尔空间)之间的关系:

$$ \mathbf{v} = J(\mathbf{q}) \cdot \dot{\mathbf{q}} $$

其中 $\mathbf{q}$ 是关节角度向量,$\mathbf{v}$ 是末端速度。通过雅可比矩阵的伪逆,我们可以解决逆运动学问题:给定末端速度,求所需的关节速度。

4.5 动力系统稳定性分析

对于非线性动力系统 $\dot{\mathbf{x}} = \mathbf{f}(\mathbf{x})$,在平衡点 $\mathbf{x}^*$ 附近的稳定性可以通过分析该点处雅可比矩阵的特征值来判定(线性化稳定性定理)。