Skip to content

Matrix

定义

从空间向量到数值定义

从空间向量 \(\vec{x}\)\(\vec{y}\) 的理解过渡转变到数值 \(\mathbb{R}^n\)

\(\mathbb{R}^n\)\(n\) 个实数的元组,则

\[ \boldsymbol{a} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} \in \mathbb{R}^n \]

矩阵的定义

定义 对于 \(m,n \in \mathbb{N}\)\((m,n)\) 实值矩阵(Matrix) \(\boldsymbol{A}\) 是由元素 \(a_{i,j}\) 组成的 \(m \cdot n\)元组

其中 $i=1,2,\cdots , m ; n \in 1,2,\cdots,n $

\[ \boldsymbol{A} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}, \quad a_{ij} \in \mathbb{N} \]

按惯例

  • \((1,n)-Matrix\) 称为行 row
  • \((m,1)-Matrix\) 成为列 column

这两个特殊的矩阵也成为行向量(row vectors) 或 列向量 (column vectors)

等价:\(\boldsymbol{A} \in \mathbb{R}^{m \times n}\) 可以等价表示为\(a \in \mathbb{R}^{mn}\)

\[ \boldsymbol{A}^{4 \times 2} = \begin{bmatrix} 1,2 \\ 3,4 \\ 5,6 \\ 7,8 \\ \end{bmatrix} \rightarrow \boldsymbol{a}^8=\begin{bmatrix} 1\\ 3\\ 5\\ 7\\ 2\\ 4\\ 6\\ 8\\ \end{bmatrix} \]

通过堆叠,矩阵 \(\boldsymbol{A}\) 可以表示为 长向量 \(a\)

加法和乘法

加法:矩阵 $\boldsymbol{A} \in \mathbb{R}^{m \times n}, \boldsymbol{B} \in \mathbb{R}^{m \times n} $

\[ \boldsymbol{A} + \boldsymbol{B} = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} & \cdots & a_{1n} + b_{1n} \\ a_{21} + b_{21} & a_{22} + b_{22} & \cdots & a_{2n} + b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} + b_{m1} & a_{m2} + b_{m2} & \cdots & a_{mn} + b_{mn} \end{bmatrix} \\ \]

乘法:矩阵 $\boldsymbol{A} \in \mathbb{R}^{m \times k},\boldsymbol{B} \in \mathbb{R}^{k \times n} $

\[ \boldsymbol{C} = \boldsymbol{A}\boldsymbol{B} \in \mathbb{R}^{m \times n} \]

为了计算元素,我们将\(A\)的第\(i\)行的元素与\(B\)的第\(j\)列元素对应相乘,然后求和

  • 解析几何中:称之为 行和列的 点积(dot product)

用符号 \(\cdot\) 表示矩阵乘法 即 \(\boldsymbol{A} \cdot \boldsymbol{B}\)

备注:矩阵只有在“相邻”维度匹配时才能相乘。例如,\(n \times k\)矩阵A 可以与\(k \times m\)矩阵B相乘,且只能从左侧相乘

\(\boldsymbol{A}\) 的列数要等于 \(\boldsymbol{B}\) 的行数,产生的新矩阵是基于\(\boldsymbol{A}\)的行数和\(\boldsymbol{B}\)的列数

\(m \neq n\) 所以 \(\boldsymbol{B} \cdot \boldsymbol{A}\)不成立

备注:矩阵的乘法不是逐元计算,即 \(c_{ij} \neq a_{ij}b_{ij}\)

这种逐元素的乘法通常出现在编程语言中,称之为 Hadamard 积 (Hadamard Product)

例:

\[ \begin{aligned} & \text{设矩阵:} \\ & A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 7 & 8 & 9 \\ 10 & 11 & 12 \end{bmatrix} \\[1mm] & \text{则矩阵乘法:} \\[1mm] & A \cdot B = \begin{bmatrix} 1\cdot 7 + 2 \cdot 10 & 1 \cdot 8 + 2 \cdot 11 & 1 \cdot 9 + 2 \cdot 12 \\ 3\cdot 7 + 4 \cdot 10 & 3 \cdot 8 + 4 \cdot 11 & 3 \cdot 9 + 4 \cdot 12 \\ 5\cdot 7 + 6 \cdot 10 & 5 \cdot 8 + 6 \cdot 11 & 5 \cdot 9 + 6 \cdot 12 \end{bmatrix} = \begin{bmatrix} 27 & 30 & 33 \\ 61 & 68 & 75 \\ 95 & 106 & 117 \end{bmatrix} \\[2mm] & B \cdot A = \begin{bmatrix} 7\cdot1 + 8\cdot3 + 9\cdot5 & 7\cdot2 + 8\cdot4 + 9\cdot6 \\ 10\cdot1 + 11\cdot3 + 12\cdot5 & 10\cdot2 + 11\cdot4 + 12\cdot6 \end{bmatrix} = \begin{bmatrix} 76 & 100 \\ 103 & 136 \end{bmatrix} \\[2mm] & \text{通用表示:} \\ & \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_m \end{bmatrix} \end{aligned} \]

矩阵乘法是左乘,\(AB \neq BA\) ,维度问题

单位矩阵定义

\(\mathbb{R}^{n \times n}\) 中,单位矩阵(Identity Matrix)

\[ \boldsymbol{I}_n := \begin{bmatrix} 1 & 0 & 0 & \cdots & 0 \\ 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \end{bmatrix} \in \mathbb{R}^{n \times n} \]

对角线为 1, 其他为0

已经定义了矩阵乘法、矩阵加法和单位矩阵,让我们看看矩阵的一些性质

  • 结合律 (Associativity
  • 分配律 (Distributivity
  • 与单位矩阵乘法 :对于 \(m \neq n ,I_m \neq In\)
  • $ \forall{\boldsymbol{A}} \in \mathbb{R}^{m \times n}: I_m \cdot \boldsymbol{A} = A \cdot I_n = \boldsymbol{A}$

矩阵的逆和转置

定义 2.3 逆 \(\boldsymbol{A}^{-1}\)

考虑一个方阵\(\boldsymbol{A} \in \mathbb{R}^{n \times n}\),使得矩阵 \(\boldsymbol{B} \in \mathbb{R}^{n \times n}\) 满足 \(\boldsymbol{A}\boldsymbol{B} = \boldsymbol{I}_n = \boldsymbol{B}\boldsymbol{A}\)

\(\boldsymbol{B}\)称为\(\boldsymbol{A}\)的逆(Inverse) ,表示为:\(\boldsymbol{A}^{-1}\)

不过,不是所有矩阵\(\boldsymbol{A}\)都有逆\(\boldsymbol{A}^{-1}\)。如果矩阵的逆存在,则称它为正则/可逆/非奇异( regular/invertible/nonsingular),否则称为奇异/不可逆(singular/noninvertible) 。当矩阵逆存在时,这个逆是唯一的。在第2.3节中,我们将讨论通过求解线性方程组来计算矩阵逆的一般方法。

定义 2.4 转置 \(\boldsymbol{A}^{\mathrm{T}}\)

对于矩阵\(\boldsymbol{A} \in \mathbb{R}^{m \times n}\),若矩阵\(\boldsymbol{B} \in \mathbb{R}^{n \times m}\) 满足\(b_{ij} = a_{ji}\),则\(B\)称为\(A\)的转置*(Transpose*),记作

\[ \boldsymbol{B} =\boldsymbol{A}^\mathrm{T} \]

通常,\(A^\mathrm{T}\) 可以通过将\(A\)的列写为\(A^\mathrm{T}\)的行来获得。以下是逆和转置的一些重要性质:

\[ \boldsymbol{A}\boldsymbol{A}^{-1} = \boldsymbol{A}^{-1}\boldsymbol{A} \\ (\boldsymbol{A}\boldsymbol{B})^{-1}=\boldsymbol{B}^{-1}\boldsymbol{A}^{-1} \\ (\boldsymbol{A}+\boldsymbol{B})^{-1} \neq \boldsymbol{A}^{-1} + \boldsymbol{B}^{-1} \]

类似于 $ \frac{1}{2+4} = \frac{1}{6} \neq \frac{1}{2} + \frac{1}{4} $

\[ (\boldsymbol{A}^\mathrm{T})^\mathrm{T} = \boldsymbol{A} \\ (\boldsymbol{A} + \boldsymbol{B})^\mathrm{T} = \boldsymbol{A}^\mathrm{T} + \boldsymbol{B}^\mathrm{T} \\ (\boldsymbol{AB})^\mathrm{T} = \boldsymbol{B}^\mathrm{T}\boldsymbol{A}^{\mathrm{T}} \]

定义 2.5 对称矩阵

若对于矩阵\(\boldsymbol{A} \in \mathbb{R}^{n \times n}\)\(\boldsymbol{A} = \boldsymbol{A}^\mathrm{T}\),则称它是对称的( symmetric)。

只有 \(n \times n\) 的矩阵是对称的,对于 \(n \times n\) 的矩阵称之为方阵

如果矩阵 \(\boldsymbol{A}\) 可逆,则 \(\boldsymbol{A}^\mathrm{T}\) 可逆

\[ (\boldsymbol{A}^{-1})^\mathrm{T} = (\boldsymbol{A}^\mathrm{T})^{-1} := \boldsymbol{A}^{\mathrm{T}} \]

与标量向乘

对于标量 $\lambda \in \mathbb{R} $ 与矩阵 $ A \in \mathbb{R}^{m \times n}$ 相乘,则 \(\lambda \boldsymbol{A}=K,k_{ij}=\lambda a_{ij}\)

结合律

\[ (\lambda \psi)\boldsymbol{A} = \lambda (\psi \boldsymbol{A}) \]

分配律

\[ (\lambda + \psi)\boldsymbol{A} = \lambda \boldsymbol{A} + \psi \boldsymbol{A} \]

线性方程组的紧凑表示

\[ \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_m \end{bmatrix} \]

线性方程组可以用矩阵形式表示为\(\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}\),且乘积 \(\boldsymbol{A}\boldsymbol{x}\)\(\boldsymbol{A}\) 每一列的(线性)组合

线性方程组求解

特解和通解

考虑方程组

\[ \begin{bmatrix} 1,0,8,-4 \\0,1,2,12 \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3\\x_4 \end{bmatrix} = \begin{bmatrix} 42\\8 \end{bmatrix} \]

这个方程组有两个方程和四个未知数。因此,一般来说,我们可以得到无穷多个解。这个方程组的形式为极简形式,前两列都由一个0和一个1组成.

目标是找到标量\(x_1,...x_4\),使得 \(\sum_{i=1}^4 x_i c_i = b\)

  • 其中 \(c_i\) 为矩阵的第 \(i\)

  • \(b\) 为方程组的右侧

对于该方程组,可通过取 第一列的42倍 和第二列的8倍得到解

\[ b = \begin{bmatrix} 42\\8 \end{bmatrix}= 42\begin{bmatrix} 1\\0 \end{bmatrix} + 8\begin{bmatrix} 0\\1 \end{bmatrix} \]
  • 关键在于 \(0\) ,对于 \(x \in \mathbb{R},0 \times x = 0\)

因此,方程组的一个解为 \([42,8,0,0]\),这个解称为 特解 (particular solution or special solution)

然而,这并不是这个线性方程组的唯一解。要得到其他解,我们需要创造性地使用矩阵的列以非平凡( non-trivial) 的方式生成向量 \(\boldsymbol{0}\)特解与方程组的矩阵相乘,然后等式两边同时加上\(\boldsymbol{0}\)不会影响该等式

我们使用前两列(它们的形式非常简单)表示第三列

\[ \begin{bmatrix} 8\\2 \end{bmatrix} = 8\begin{bmatrix} 1\\0 \end{bmatrix} + 2\begin{bmatrix} 0\\1 \end{bmatrix} \]

则有 \(\boldsymbol{0} = 8c_1 + 2 c_2 - 1c_3 + 0c_4\),得到解 \((x_1,x_2,x_3,x_4)=(8,2,-1,0)\) ,这个解按任意 $ \lambda_1 \in \mathbb{R}$的缩放都会产生 \(0\) 向量,即:

\[ \begin{bmatrix} 1,0,8,-4 \\0,1,2,12 \end{bmatrix} \left( \lambda_1 \begin{bmatrix} 8\\2\\-1\\0 \end{bmatrix} \right) = \lambda_1(8c_1 + 2c_2 - c_3) = 0 \]

同样地,我们使用前两列表示方程组中矩阵的第四列,对于任意\(\lambda_{2} \in \mathbb{R}\)生成另一组$ \boldsymbol{0}$的非平凡版本

\[ \begin{bmatrix} 1,0,8,-4 \\0,1,2,12 \end{bmatrix} \left( \lambda_1 \begin{bmatrix} -4\\12\\0\\-1 \end{bmatrix} \right) = \lambda_2(-4c_1 + 12c_2 - c_4) = 0 \]

把所有的解放在一起,得到方程组的所有解,称为 通解(general solution),以集合形式表示为

\[ \left\{ \boldsymbol{x} \in \mathbb{R}^4 : \boldsymbol{x} = \begin{bmatrix}42\\8\\0\\0\end{bmatrix} + \lambda_1 \begin{bmatrix}8\\2\\-1\\0\end{bmatrix} + \lambda_2 \begin{bmatrix}-4\\12\\0\\-1\end{bmatrix}, \lambda_1,\lambda_2 \in \mathbb{R} \right\} \]

备注

线性方程组的一般求解包括以下三个步骤

  • (1) 找到 \(\boldsymbol{A} \boldsymbol{x} = \boldsymbol{b}\) 的特解
  • (2) 找到 \(\boldsymbol{A} \boldsymbol{x} = \boldsymbol{0}\) 的所有解
  • (3) 结合步骤 (1)(2)中的解,得到通解
  • 注意:特解和通解都不是唯一的

上例中的线性方程组很容易求解,因为方程组中的矩阵有特别简便的形式,这使我们能够通过代值检验得到特解和通解。然而,一般方程组不会是这种简单的形式。

幸运的是,有一种构造性的算法可以将任何线性方程组转换成这种特别简单的形式:高斯消元法( Gaussian elimination)。 高斯消元法的关键是对线性方程组进行初等变换,将方程组转换成简单形式。然后,我们可以用以上三个步骤求解线性方程组

初等变换

求解线性方程组的关键是 初等变换(elementary transformations),它能在解集保持不变的前提下,将方程组变换为更简单的形式

  • (1) 两个方程(表示方程组的矩阵的行)的交换
  • (2) 方程(行)乘一个常数 \(\lambda \in \mathbb{R} \{0\}\)
  • (3) 两个等式相加

备注:步骤(1) (2)(3)可以组合

例子

对于 \(a \in \mathbb{R}\) ,求下列方程组的所有解

\[ \begin{aligned} -2x_1 + 4x_2 - 2x_3 - x_4 + 4x_5 &= -3 \\ \phantom{-}4x_1 - 8x_2 + 3x_3 - 3x_4 + x_5 &= 2 \\ \phantom{-}x_1 - 2x_2 + x_3 - x_4 + x_5 &= 0 \\ \phantom{-}x_1 - 2x_2 \phantom{+ x_3} - 3x_4 + 4x_5 &= a \end{aligned} \]

我们首先把这个方程组转换成紧致的矩阵表示 \(A x =b\),不再显式地提及变量 \(\boldsymbol{x}\)

而是建立 增广矩阵(augumented matrix) 形式为\([\boldsymbol{A | b}]\)

我们用垂直线把方程组的左手边和右手边分开。

\[ \left[ \begin{array}{rrrrr|r} -2 & 4 & -2 & -1 & 4 & -3 \\ 4 & -8 & 3 & -3 & 1 & 2 \\ 1 & -2 & 1 & -1 & 1 & 0 \\ 1 & -2 & 0 & -3 & 4 & a \end{array} \right] \quad \begin{array}{r} \text{Swap with } R_3 \\ \\ \text{Swap with } R_1 \\ \\ \end{array} \]

交换第一行 \(R_1\) 和第三行 \(R_3\) 得到:

\[ \left[ \begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 4 & -8 & 3 & -3 & 1 & 2 \\ -2 & 4 & -2 & -1 & 4 & -3 \\ 1 & -2 & 0 & -3 & 4 & a \end{array} \right] \quad \begin{array}{l} \\ -4R_1 \\ +2R_1 \\ -R_1 \end{array} \]

我们使用上式中指定的变换后,得到

\[ \left[ \begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 0 & 0 & -1 & 1 & -3 & 2 \\ 0 & 0 & 0 & -3 & 6 & -3\\ 0 & 0 & -1 & -2 & 3 & a \end{array} \right] \]

我们用 \(\rightsquigarrow\) 来表示增广矩阵的初等变换

\[ \left[ \begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 0 & 0 & -1 & 1 & -3 & 2 \\ 0 & 0 & 0 & -3 & 6 & -3\\ 0 & 0 & -1 & -2 & 3 & a \end{array} \right] \quad \begin{array}{l} \\ \\ \\ -R_2 - R_3 \end{array} \\ \rightsquigarrow \left[ \begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 0 & 0 & -1 & 1 & -3 & 2 \\ 0 & 0 & 0 & -3 & 6 & -3\\ 0 & 0 & 0 & 0 & 0 & a+1 \end{array} \right] \quad \begin{array}{l} \\ \cdot (-1) \\ \cdot (-\frac{1}{3})\\ \\ \end{array} \\ \rightsquigarrow \left[ \begin{array}{rrrrr|r} 1 & -2 & 1 & -1 & 1 & 0 \\ 0 & 0 & 1 & -1 & 3 & -2 \\ 0 & 0 & 0 & 1 & -2 & 1\\ 0 & 0 & 0 & 0 & 0 & a+1 \end{array} \right] \]

这个(增广)矩阵现在变成一种简便的形式——行阶梯形式(row-echelon form,REF)。将这个紧凑的表示法还原为显式表示法,我们得到

\[ \begin{align*} x_1 &- 2x_2 + x_3 - x_4 + x_5 &=&\ 0 \\ &\quad\quad\quad x_3 - x_4 + 3x_5 &=&\ -2 \\ &\quad\quad\quad\quad\quad x_4 - 2x_5 &=&\ 1 \\ &\quad\quad\quad\quad\quad\quad\quad 0 &=&\ a + 1 \end{align*} \]

仅当 \(a-1\) 时方程组才有解。一个特解为

\[ \begin{bmatrix} x_1\\x_2\\x_3\\x_4\\x_5 \end{bmatrix} = \begin{bmatrix} 2\\0\\-1\\1\\0 \end{bmatrix} \]

通解

\[ \left\{ x \in \mathbb{R}: x = \begin{bmatrix} 2\\0\\-1\\1\\0 \end{bmatrix} + \lambda_1\begin{bmatrix} 2\\1\\0\\0\\0 \end{bmatrix} + \lambda_2\begin{bmatrix} 2\\0\\-1\\2\\1 \end{bmatrix}, \lambda_1,\lambda_2 \in \mathbb{R} \right\} \]

下面,我们将详细介绍一种获得线性方程组特解和通解的构造性方法

备注:主元和阶梯结构

行的 前导系数(leading coefficient,从左开始的第一个非零数)称为 主元(Pivots ),并且始终严格地位于上方行的主元的右侧。因此, 任何行阶梯型(row-echelon form)的方程组都具有“阶梯(staircase)”结构

定义 行阶梯型

一个矩阵为 行阶梯型(row-echelon form) 矩阵需满足:

  • 所有只包含零的行都位于矩阵的底部;相应地,所有至少包含一个非零元素的行都位于只包含零的行的顶部。
  • 只看非零行,从左边开始的第一个非零数字(也称为主元或前导系数)总是严格地位于它上面的行主元的右边。

备注:基本变量和自由变量

行阶梯型的主元对应的变量称为 基本变量(basic variables),其他变量称为 自由变量(free variables)

例如,对于

\[ \begin{align*} x_1 - 2x_2 + x_3 - x_4 + x_5 &= 0 \\ \quad\quad\quad x_3 - x_4 + 3x_5 &= -2 \\ \quad\quad\quad\quad\quad\quad x_4 - 2x_5 &= 1 \\ \quad\quad\quad\quad\quad\quad\quad\quad 0 &= a + 1 \end{align*} \]

其中

  • \(x_1,x_3,x_4\) 为基本变量
  • \(x_2,x_5\) 为自由变量

备注: (求特解)

当我们需要确定一个特解时,行阶梯型方便了我们求解。为了做到这一点,我们用 主元列 来表示方程组的右侧

\(b = \sum_{i=1}^P \lambda_i p_i\),其中\(p_i\) ,\(i=1,...,P\)为主元所在列,即主元列

\(\lambda_i\) 很容易确定,我们可以 从最右边的主元列开始,向左一 一确定

在上一个例子中,试图找到 \(\lambda_1,\lambda_2,\lambda_3\),使得

\[ \lambda_1 \begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix} + \lambda_2 \begin{bmatrix} 1 \\ 1 \\ 0 \\ 0 \end{bmatrix} + \lambda_3 \begin{bmatrix} -1 \\ -1 \\ 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ -2 \\ 1 \\ 0 \end{bmatrix} \]

从这里,我们相对直观地发现 \(\lambda_3=1,\lambda_2=-1,\lambda_1=2\)。而对于非主元列,我们隐式地将其系数设置为 0 。因此得到的特解为 \([2,0,-1,1,0]^{\mathrm{T}}\)

备注:行最简阶梯型

一个方程组为 行最简阶梯型 (Reduced Row Echelon Form,也称为 row-reduced echelon formrow canonical form)需要满足

  • 它是行阶梯型
  • 每个主元都为1
  • 主元所在列是唯一的非0项

备注:高斯消元法

高斯消元法(Gaussian elimination) 是一种通过初等变换将线性方程组转化为行最简阶梯型的算法。

例 2.7 行最简阶梯型

有以下行最简阶梯型矩阵(粗体 1 为主元):

\[ \boldsymbol{A} = \begin{bmatrix} \boldsymbol{1} & 3 & 0 & 0 & 3 \\ 0 & 0 & \boldsymbol{1} & 0 & 9 \\ 0 & 0 & 0 & \boldsymbol{1} & -4 \end{bmatrix} \]

\(\boldsymbol{A}x=\boldsymbol{0}\)的解的*关键是非主元列*,我们*需要将其表示为主元列的(线性)组合* ;而行最简阶梯型使这一点相对简单。我们用左边的主元列的倍数和来表示非主元列

第二列是第一列的 3 倍(我们可以忽略第二列右边的主元列)。因此,为了得到$ \boldsymbol{0}$,我们需要将第一列的三倍减去第二列。

现在,我们来看看第二个非主元列——第五列

第五列可以由第一个主元列的 3 倍、第二个主元列的 9 倍和第三个主元列的 −4 倍表示。我们需要根据主元列的索引,并将第五列转换为第一列的 3 倍、第二列(非主元列)的0倍、第三列(第二个非主元列)的 9 倍和第四列的 \(-4\) 倍(即第三主元列)之和,然后*减去* 第五列得到\(\boldsymbol{0}\)。最后,可以求解这个齐次方程组。

总之:\(\boldsymbol{A}x=\boldsymbol{0}, x \in \mathbb{R}^5\) 的所有解都由下式给出

\[ \left\{ \boldsymbol{x} \in \mathbb{R}^5 : \boldsymbol{x} = \lambda_1 \begin{bmatrix} 3 \\ -1 \\ 0 \\ 0 \\ 0 \end{bmatrix} + \lambda_2 \begin{bmatrix} 3 \\ 0 \\ 9 \\ -4 \\ -1 \end{bmatrix}, \quad \lambda_1, \lambda_2 \in \mathbb{R} \right\} \]

Minus-1技巧

下面,我们将介绍一个实用的技巧来求解齐次线性方程组\(\boldsymbol{A} \boldsymbol{x} = \boldsymbol{0}\) 的解 \(\boldsymbol{x}\)

其中 \(\boldsymbol{A} \in \mathbb{R}^{k \times n}\)\(x \in \mathbb{R}^n\)

首先,我们假设 \(\boldsymbol{A}\)行最简阶梯型,且没有只包含零的行,即:

\[ \boldsymbol{A} = \begin{bmatrix} 0 & \cdots & 0 & \boldsymbol{1} & * & \cdots & * & 0 & * & \cdots & * & 0 & * & \cdots & * \\ \vdots & & \vdots & 0 & 0 & \cdots & 0 & \boldsymbol{1} & * & \cdots & * & \vdots & \vdots & & \vdots \\ \vdots & & \vdots & \vdots & \vdots & & \vdots & 0 & \vdots & & \vdots & \vdots & \vdots & & \vdots \\ \vdots & & \vdots & \vdots & & & \vdots & \vdots & \vdots & & & \vdots & 0 & \vdots & \vdots \\ 0 & \cdots & 0 & 0 & 0 & \cdots & 0 & 0 & 0 & \cdots & 0 & 1 & * & \cdots & * \end{bmatrix} \]

其中\(*\)为随机的实数,\(\boldsymbol{A}\)每行的第一个非0项目必须为1,相应列中的其他项都为0

含主元的列 \(j_1,...,j_k\) (用粗体标记)是标准单位向量 \(\boldsymbol{e}_1,...,\boldsymbol{e}_k \in \mathbb{R}^k\)

通过添加 \(n - k\) 行将矩阵扩展成 \(n \times n\) -矩阵 \(\tilde{\boldsymbol{A}}\)

扩展所添加行的形式为

\[ [0 \quad \cdots \quad 0 \quad {-1} \quad 0 \quad \cdots \quad 0] \tag{2.52} \]

所以增广矩阵 \(\tilde{\boldsymbol{A}}\) 的对角线包含 \(-1\)\(1\)。然后,包含 \(-1\) 作为主元的列是齐次方程 \(\boldsymbol{A} \boldsymbol{x} = \boldsymbol{0}\) 的解。

更准确的说,这些列构成 \(\boldsymbol{A} \boldsymbol{x} = \boldsymbol{0}\) 的解空间的基,我们也将其称之为 核 或 零空间

例子

对于之前的矩阵

\[ \boldsymbol{A} = \begin{bmatrix} \boldsymbol{1} & 3 & 0 & 0 & 3 \\ 0 & 0 & \boldsymbol{1} & 0 & 9 \\ 0 & 0 & 0 & \boldsymbol{1} & -4 \end{bmatrix} \]

现在我们通过在对角线上的主元缺失的地方添加 $(2.52)形式的行,将矩阵扩展成 $ \(5 \times 5\) 的矩阵

\[ \tilde{\boldsymbol{A}} = \begin{bmatrix} 1 & 3 & 0 & 0 & 3 \\ \textcolor{blue}0 & \textcolor{blue}{-1} & \textcolor{blue}0 & \textcolor{blue}0 & \textcolor{blue}0 \\ 0 & 0 & 1 & 0 & 9 \\ 0 & 0 & 0 & 1 & -4 \\ \textcolor{blue}0 & \textcolor{blue}0 & \textcolor{blue}0 & \textcolor{blue}0 & \textcolor{blue}{-1} \end{bmatrix} \]

我们可以通过取 \(\tilde{\boldsymbol{A}}\) 对角线上包含 \(-1\) 的列,立即得到 \(\boldsymbol{A}(\boldsymbol{x})=\boldsymbol{0}\) 的解

\[ \left\{ x \in \mathbb{R}^5: \boldsymbol{x} = \lambda_1 \begin{bmatrix} 3\\-1\\0\\0\\0 \end{bmatrix} + \lambda_2 \begin{bmatrix} 3\\0\\9\\-4\\-1 \end{bmatrix}, \lambda_1,\lambda_1 \in \mathbb{R} \right\} \]
  • 与之前例子的结果相同

求逆

为了计算 $ \boldsymbol{A} \in \mathbb{R}^{n \times n}$ 的逆 \(\boldsymbol{A}^{-1}\) ,我们需要找到满足 \(\boldsymbol{AX} = \boldsymbol{I}_n\) 的矩阵 \(\boldsymbol{X}\)\(\boldsymbol{X} = \boldsymbol{A}^{-1}\)

我们可以把它写成一组线性方程组 \(\boldsymbol{AX} = \boldsymbol{I}_n\) 并求解 \(\boldsymbol{X} = [\boldsymbol{x_1}|\cdots|\boldsymbol{x}_n]\)。我们使用增广矩阵表示法来表示这组线性方程组,并对其做以下变换:

\[ [\boldsymbol{A}|\boldsymbol{I}_n] \rightsquigarrow \cdots \rightsquigarrow [\boldsymbol{I}_n|\boldsymbol{A}^{-1}] \]

这意味着,如果我们把增广方程组简化成行最简阶梯型,我们就可以在方程组的右手边读出改矩阵的逆。因此确定矩阵的逆,相当于求解线性方程组。

例2.9 利用高斯消元法求矩阵的逆

\[ \boldsymbol{A} = \begin{bmatrix} 1 & 0 & 2 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 2 & 0 & 1 \\ 1 & 1 & 1 & 1 \end{bmatrix} \]

的逆

解:

写出增广矩阵

\[ \left[ \begin{array}{cccc|cccc} 1 & 0 & 2 & 0 & 1 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \\ 1 & 2 & 0 & 1 & 0 & 0 & 1 & 0 \\ 1 & 1 & 1 & 1 & 0 & 0 & 0 & 1 \\ \end{array} \right] \]

并利用高斯消元法将其化为行最简阶梯型

\[ \left[ \begin{array}{cccc|cccc} 1 & 0 & 0 & 0 & -1 & 2 & -2 & 2 \\ 0 & 1 & 0 & 0 & 1 & -1 & 2 & -2 \\ 0 & 0 & 1 & 0 & 1 & -1 & 1 & -1 \\ 0 & 0 & 0 & 1 & -1 & 0 & -1 & 2 \\ \end{array} \right] \]

这样,所需的逆矩阵就在其右侧给出了

\[ \boldsymbol{A}^{-1} = \begin{bmatrix} -1 & 2 & -2 & 2 \\ 1 & -1 & 2 & -2 \\ 1 & -1 & 1 & -1 \\ -1 & 0 & -1 & 2 \end{bmatrix} \]

可以通过 \(\boldsymbol{A} \boldsymbol{A}^{-1} = \boldsymbol{I}_n\) 来验证是否正确

求解线性方程组的算法

在下文中,我们将简要讨论 \(Ax =b\) 形式的线性方程组的求解方法。

  • 这里我们假设存在解
  • 如果没有解,需要求助于近似的解的办法,后面的线性回归,这里不作介绍

如果我们可以确定 \(A^{-1}\) ,那么\(Ax =b\) 的解就可以表示为 \(x = A^{-1} b\)。然而,只有当A是一个方阵并且可逆时,这种方法才可行,但通常情况并非如此。不过,在适当的假设下 (即\(A\)需要有线性独立的列 ),我们可以使用以下变换:

\[ \boldsymbol{A} \boldsymbol{x}= \boldsymbol{b} \Leftrightarrow \boldsymbol{A}^\mathrm{T} \boldsymbol{A} \boldsymbol{x}= \boldsymbol{A}^\mathrm{T} \boldsymbol{b} \Leftrightarrow \boldsymbol{x}=(\boldsymbol{A}^\mathrm{T}\boldsymbol{A})^{-1}\boldsymbol{A}^\mathrm{T}\boldsymbol{b} \]

即使用 Moore-Penrose伪逆(Moore-Penrose pseudo-inverse)\((\boldsymbol{A}^\mathrm{T}\boldsymbol{A})^{-1}\boldsymbol{A}^\mathrm{T}\) 来确定 \(\boldsymbol{A x}=\boldsymbol{b}\)的Moore-Penrose伪逆解

\((\boldsymbol{A}^\mathrm{T}\boldsymbol{A})^{-1}\boldsymbol{A}^\mathrm{T}\boldsymbol{b}\),这也对应最小范数最小二乘法的解

这种方法的缺点是需要对矩阵的积和\(\boldsymbol{A}^\mathrm{T}\boldsymbol{A}\)的逆进行大量运算。 此外,出于数值精度的原因,通常不建议计算逆或伪逆。因此在下文中,我们将简要讨论求解线性方程组的其他方法。

高斯消元法在计算行列式、检查向量集是否线性独立、计算矩阵的逆、计算矩阵的秩和确定向量空间的基时起着重要的作用。高斯消元法是一种直观而有建设性的方法来解决一个含成千上万变量的线性方程组。然而,对于具有百万变量的方程组,这是不切实际的,因为所需的运算量是按联立方程的数量的立方增长的。

在实践中,许多线性方程组都是通过 定常迭代法(stationary iterative methods) 间接求解的,如Richardson方法、Jacobi方法、Gauß-Seidel方法和逐次超松弛方法,或Krylov子空间方法,如共轭梯度、广义最小残差或双共轭梯度。

\(\boldsymbol{x}_*\)\(\boldsymbol{A x} = \boldsymbol{b}\)的解。这些迭代方法的关键思想是建立一下形式的迭代

\[ \boldsymbol{x}^{k+1} = \boldsymbol{C}\boldsymbol{x}^k + d \]

通过寻找适当的\(\boldsymbol{C}\)\(\boldsymbol{d}\),在每次迭代中减小残差\(||\boldsymbol{x}^{k+1} - \boldsymbol{x}_*||\) 直至收敛到 \(\boldsymbol{x_*}\)

引入范数\(||\boldsymbol{\cdot}||\),它允许我们计算向量之间的相似性