复习与参考

2021-07-13 数学基础 线性代数

# 一、基础概念和符号

线性代数提供了一种紧奏地表示和操作线性方程组的方法。例如,以下方程组:

4x15x2=132x1+3x2=9 \begin{aligned} 4 x_{1}-5 x_{2}&=-13 \\ -2 x_{1}+3 x_{2}&=9 \end{aligned}

这是两个方程和两个变量,正如你从高中代数中所知,可以找到 x1x_{1}x2x_{2} 的唯一解(除非方程以某种方式退化,例如,如果第二个方程只是第一个的倍数,但在上面的情况下,实际上只有一个唯一解)。在矩阵表示法中,我们可以更紧凑地表达:

Ax=b Ax=b

其中:

A=[4523],b=[139] A=\left[\begin{array}{cc} 4 & -5 \\ -2 & 3 \end{array}\right], b=\left[\begin{array}{c} -13 \\ 9 \end{array}\right]

我们可以看到,这种形式的线性方程有许多优点(比如明显地节省空间)。

我们使用以下符号:

  • ARm×nA \in \mathbb{R}^{m \times n},表示 AA 为由实数组成具有 mm 行和 nn 列的矩阵。

  • xRnx \in \mathbb{R}^{n},表示具有 nn 个元素的向量。通常,向量 xx 将表示列向量:即,具有 nn 行和 11 列的矩阵。如果我们想要明确地表示行向量:具有 11 行和 nn 列的矩阵,我们通常写作 xTx^{\rm{T}} (这里 xTx^{\rm{T}} 表示 xx 的转置)。

  • xix_{i} 表示向量 xx 的第 ii 个元素:

    x=[x1x2xn] x=\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right]
  • 我们使用符号 aija_{i j} (或 Aij,Ai,jA_{i j}, A_{i, j} 等) 来表示第 ii 行和第 jj 列中的 AA 的元素:

    A=[a11a12a1na21a22a2nam1am2amn] A=\left[\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{array}\right]
  • 我们用 aja^{j} 或者 A:,jA_{:, j} 表示矩阵 AA 的第 jj 列:

    A=[a1a2an] A=\left[\begin{array}{llll} \mid & \mid & & \mid \\ a^{1} & a^{2} & \cdots & a^{n} \\ \mid & \mid & & \mid \end{array}\right]
  • 我们用 aiTa_{i}^{\rm{T}} 或者 Ai,:A_{i,:} 表示矩阵 AA 的第 ii 行:

    A=[a1Ta2TamT] A=\left[\begin{array}{c} -a_{1}^{\rm{T}}- \\ -a_{2}^{\rm{T}}- \\ \vdots \\ -a_{m}^{\rm{T}}- \end{array}\right]

在许多情况下,将矩阵视为列向量或行向量的集合非常重要且方便。

相比于标量,通常,在向量上操作在数学上(和概念上)更清晰。只要明确定义了符号,用于矩阵的列或行的表示方式并没有通用约定。

# 二、矩阵乘法

两个矩阵相乘,其中 ARm×nA \in \mathbb{R}^{m \times n}BRn×pB \in \mathbb{R}^{n \times p},则:

C=ABRm×p C=A B \in \mathbb{R}^{m \times p}

其中:

Cij=k=1nAikBkj C_{i j}=\sum_{k=1}^{n} A_{i k} B_{k j}

注意

为了使矩阵乘积存在,AA 中的列数必须等于 BB 中的行数。

# 2.1 向量-向量乘法

给定两个向量 x,yRnx, y \in \mathbb{R}^{n}xTyx^{\rm{T}} y 通常称为向量 内积 或者 点积,结果是个实数。

xTyR=[x1x2xn][y1y2yn]=i=1nxiyi x^{\rm{T}} y \in \mathbb{R}=\left[\begin{array}{llll} x_{1} & x_{2} & \cdots & x_{n} \end{array}\right]\left[\begin{array}{c} y_{1} \\ y_{2} \\ \vdots \\ y_{n} \end{array}\right]=\sum_{i=1}^{n} x_{i} y_{i}

注意

xTy=yTxx^{T} y=y^{T} x 始终成立。

给定向量 xRm,yRnx \in \mathbb{R}^{m}, y \in \mathbb{R}^{n}(它们的维度是否相同都没关系),xyTRm×nx y^{\rm{T}} \in \mathbb{R}^{m \times n} 叫做向量 外积,当 (xyT)ij=xiyj\left(x y^{\rm{T}}\right)_{i j}=x_{i} y_{j} 的时候,它是一个矩阵。

xyTRm×n=[x1x2xm][y1y2yn]=[x1y1x1y2x1ynx2y1x2y2x2ynxmy1xmy2xmyn] x y^{\rm{T}} \in \mathbb{R}^{m \times n}=\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{m} \end{array}\right]\left[\begin{array}{llll} y_{1} & y_{2} & \cdots & y_{n} \end{array}\right]=\left[\begin{array}{cccc} x_{1} y_{1} & x_{1} y_{2} & \cdots & x_{1} y_{n} \\ x_{2} y_{1} & x_{2} y_{2} & \cdots & x_{2} y_{n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m} y_{1} & x_{m} y_{2} & \cdots & x_{m} y_{n} \end{array}\right]

举一个外积如何使用的例子:让 1Rn\mathbf{1} \in \mathbb{R}^{n} 表示一个 nn 维向量,其元素都等于 11,此外,考虑矩阵 ARm×nA \in \mathbb{R}^{m \times n},其列全部等于某个向量 xRmx \in \mathbb{R}^{m} 。 我们可以使用外积紧凑地表示矩阵 AA

A=[xxx]=[x1x1x1x2x2x2xmxmxm]=[x1x2xm][111]=x1T A=\left[\begin{array}{cccc} \mid & \mid & & \mid \\ x & x & \cdots & x \\ \mid & \mid & & \mid \end{array}\right]=\left[\begin{array}{cccc} x_{1} & x_{1} & \cdots & x_{1} \\ x_{2} & x_{2} & \cdots & x_{2} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m} & x_{m} & \cdots & x_{m} \end{array}\right]=\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{m} \end{array}\right]\left[\begin{array}{llll} 1 & 1 & \ldots & 1 \end{array}\right]=x \mathbf{1}^{\rm{T}}

# 2.2 矩阵-向量乘法

给定矩阵 ARm×nA \in \mathbb{R}^{m \times n},向量 xRnx \in \mathbb{R}^{n},它们的积是一个向量 y=AxRmy=A x \in \mathbb{R}^{m}

如果我们按行写 AA,那么我们可以表示 AxA x 为:

y=Ax=[a1Ta2TamT]x=[a1Txa2TxamTx] y=A x=\left[\begin{array}{ccc} - & a_{1}^{\rm{T}} & - \\ - & a_{2}^{\rm{T}} & - \\ & \vdots & \\ - & a_{m}^{\rm{T}} & - \end{array}\right] x=\left[\begin{array}{c} a_{1}^{\rm{T}} x \\ a_{2}^{\rm{T}} x \\ \vdots \\ a_{m}^{\rm{T}} x \end{array}\right]

换句话说,第 iiyyAA 的第 ii 行和 xx 的内积,即:yi=aiTxy_{i}=a_{i}^{\rm{T}} x

同样的,可以把 AA 写成列的方式,则公式如下:

y=Ax=[a1a2an][x1x2xn]=[a1]x1+[a2]x2++[an]xn y=A x=\left[\begin{array}{cccc} \mid & \mid & & \mid \\ a^{1} & a^{2} & \cdots & a^{n} \\ \mid & \mid & & \mid \end{array}\right]\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right]=\left[a^{1}\right] x_{1}+\left[a^{2}\right] x_{2}+\cdots+\left[a^{n}\right] x_{n}

换句话说, yyAA 的列的线性组合,其中线性组合的系数由 xx 的元素给出。

到目前为止,我们一直在右侧乘以列向量,但也可以在左侧乘以行向量。如:给定矩阵 ARm×nA \in \mathbb{R}^{m \times n},向量 xRmx \in \mathbb{R}^{m},则 yT=xTARny^{\rm{T}}=x^{\rm{T}} A \in \mathbb{R}^{n} 。和之前一样,我们可以用两种方式表达 yTy^{\rm{T}},这取决于我们选择根据行或列表达 AA

第一种情况,我们把 AA 用列表示:

yT=xTA=xT[a1a2an]=[xTa1xTa2xTan] y^{\rm{T}}=x^{\rm{T}} A=x^{\rm{T}}\left[\begin{array}{cccc} \mid & \mid & & \mid \\ a^{1} & a^{2} & \cdots & a^{n} \\ \mid & \mid & & \mid \end{array}\right]=\left[\begin{array}{llll} x^{\rm{T}} a^{1} & x^{\rm{T}} a^{2} & \ldots & x^{\rm{T}} a^{n} \end{array}\right]

这表明 yTy^{\rm{T}} 的第 ii 个元素等于 xTx^{\rm{T}}AA 的第 ii 列的内积。

最后,根据行表示 AA,我们得到了向量-矩阵乘积的最后一种表示:

yT=xTA=[x1x2xn][a1Ta2TamT]=x1[a1T]+x2[a2T]++xn[anT] y^{\rm{T}}=x^{\rm{T}} A=\left[\begin{array}{llll} x_{1} & x_{2} & \cdots & x_{n} \end{array}\right]\left[\begin{array}{c} - & a_{1}^{\rm{T}} & - \\ - & a_{2}^{\rm{T}} & - \\ & \vdots & \\ - & a_{m}^{\rm{T}} & - \end{array}\right]=x_{1}\left[a_{1}^{\rm{T}}\right]+x_{2}\left[a_{2}^{\rm{T}}\right]+\ldots+x_{n}\left[a_{n}^{\rm{T}}\right]

我们看到 yTy^{\rm{T}}AA 的行的线性组合,其中线性组合的系数由 xx 的元素给出。

# 2.3 矩阵-矩阵乘法

有了这些知识,我们现在可以看看四种不同的(形式不同,但结果是相同的)矩阵-矩阵乘法:也就是 本节开头所定义的 C=ABC=A B 的乘法。

首先,我们可以将矩阵-矩阵乘法视为一组向量-向量乘积。从定义中可以得出:CC(i,j)(i, j) 元素等于 AA 的第 ii 行和 BB 的第 jj 列的内积。如下面的公式所示:

C=AB=[a1Ta2TamT][b1b2bp]=[a1Tb1a1Tb2a1Tbpa2Tb1a2Tb2a2TbpamTb1amTb2amTbp] C=A B=\left[\begin{array}{ccc} - & a_{1}^{\rm{T}} & - \\ - & a_{2}^{\rm{T}} & - \\ & \vdots & \\ - & a_{m}^{\rm{T}} & - \end{array}\right]\left[\begin{array}{cccc} \mid & \mid & & \mid \\ b^{1} & b^{2} & \cdots & b^{p} \\ \mid & \mid & & \mid \end{array}\right]=\left[\begin{array}{cccc} a_{1}^{\rm{T}} b^{1} & a_{1}^{\rm{T}} b^{2} & \cdots & a_{1}^{\rm{T}} b^{p} \\ a_{2}^{\rm{T}} b^{1} & a_{2}^{\rm{T}} b^{2} & \cdots & a_{2}^{\rm{T}} b^{p} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m}^{\rm{T}} b^{1} & a_{m}^{\rm{T}} b^{2} & \cdots & a_{m}^{\rm{T}} b^{p} \end{array}\right]

这里的 ARm×n,BRn×p,aiRn,bjRnA \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p}, a_{i} \in \mathbb{R}^{n}, b^{j} \in \mathbb{R}^{n},所以它们可以计算内积。

我们用通常用行表示 AA 而用列表示 BB。或者,我们可以用列表示 AA,用行表示 BB,这时 ABA B 是求外积的和,公式如下:

C=AB=[a1a2an][b1Tb2TbnT]=i=1naibiT C=A B=\left[\begin{array}{cccc} \mid & \mid & & \mid \\ a^{1} & a^{2} & \cdots & a^{n} \\ \mid & \mid & & \mid \end{array}\right]\left[\begin{array}{ccc} - & b_{1}^{\rm{T}} & - \\ - & b_{2}^{\rm{T}} & - \\ & \vdots & \\ - & b_{n}^{\rm{T}} & - \end{array}\right]=\sum_{i=1}^{n} a^{i} b_{i}^{\rm{T}}

换句话说,ABA B 等于所有的 AA 的第 ii 列和 BBii 行的外积的和。因此,在这种情况下,aiRma^{i} \in \mathbb{R}^{m}biRpb_{i} \in \mathbb{R}^{p} 外积 aibiTa^{i} b_{i}^{T} 的维度是 m×pm \times p,与 CC 的维度一致。

其次,我们还可以将矩阵-矩阵乘法视为一组矩阵向量积。如果我们把 BB 用列表示,我们可以将 CC 的列视为 AABB 的列的矩阵向量积,公式如下:

C=AB=A[b1b2bp]=[Ab1Ab2Abp] C=A B=A\left[\begin{array}{cccc} \mid & \mid & & \mid \\ b^{1} & b^{2} & \cdots & b^{p} \\ \mid & \mid & & \mid \end{array}\right]=\left[\begin{array}{cccc} \mid & \mid & & \mid \\ A b^{1} & A b^{2} & \cdots & A b^{p} \\ \mid & \mid & & \mid \end{array}\right]

这里 CC 的第 ii 列由矩阵向量乘积给出,即 ci=Abic_{i}=A b^{i}。这些矩阵向量乘积可以使用前一小节中给出的两个结论来解释。

最后,我们用行表示 AA,那么可以将 CC 的行视为 AA 的行和 BB 之间的矩阵向量积,公式如下:

C=AB=[a1Ta2TamT]B=[a1TBa2TBamTB] C=A B=\left[\begin{array}{ccc} - & a_{1}^{\rm{T}} & - \\ - & a_{2}^{\rm{T}} & - \\ & \vdots & \\ - & a_{m}^{\rm{T}} & - \end{array}\right] B=\left[\begin{array}{ccc} - & a_{1}^{\rm{T}} B & - \\ - & a_{2}^{\rm{T}} B & - \\ & \vdots & \\ - & a_{m}^{\rm{T}} B & - \end{array}\right]

这里 CC 的第 ii 行由矩阵向量乘积给出,即:ciT=aiTBc_{i}^{\rm{T}}=a_{i}^{\rm{T}} B

说明

这些不同方法的直接优势在于它们允许你 在向量的级别 / 单位而不是标量上进行操作。为了完全理解线性代数而不会迷失在复杂的索引操作中,关键是要用尽可能多的概念进行操作。

实际上所有的线性代数都处理某种矩阵乘法,花一些时间对这里提出的观点进行直观的理解是非常必要的。

除此之外,了解一些更高级别的矩阵乘法的基本属性是很有必要的:

  • 矩阵乘法结合律:(AB)C=A(BC)(A B) C=A(B C)
  • 矩阵乘法分配律:A(B+C)=AB+ACA(B+C)=A B+A C
  • 矩阵乘法通常不是可交换的。也就是说,通常 ABBAA B \neq B A

如果您不熟悉这些属性,请花点时间自己验证它们。

例如,为了检查矩阵乘法的结合律,假设 ARm×n,BRn×p,CRp×qA \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p}, C \in \mathbb{R}^{p \times q}。由于 ABRm×pA B \in \mathbb{R}^{m \times p},所以 (AB)CRm×q(A B) C \in \mathbb{R}^{m \times q};类似地,由于 BCRn×qB C \in \mathbb{R}^{n \times q},所以 A(BC)Rm×qA(B C) \in \mathbb{R}^{m \times q}。因此,所得矩阵的维度一致。为了证明矩阵乘法满足结合律,需要检查 (AB)C(A B) C 的第 (i,j)(i, j) 个元素是否等于 A(BC)A(B C) 的第 (i,j)(i, j) 个元素。我们可以使用矩阵乘法的定义直接验证这一点:

((AB)C)ij=k=1p(AB)ikCkj=k=1p(l=1nAilBlk)Ckj=k=1p(l=1nAilBlkCkj)=l=1n(k=1pAilBlkCkj)=l=1nAil(k=1pBlkCkj)=l=1nAil(BC)lj=(A(BC))ij \begin{aligned} ((A B) C)_{i j} &=\sum_{k=1}^{p}(A B)_{i k} C_{k j}=\sum_{k=1}^{p}\left(\sum_{l=1}^{n} A_{i l} B_{l k}\right) C_{k j} \\ &=\sum_{k=1}^{p}\left(\sum_{l=1}^{n} A_{i l} B_{l k} C_{k j}\right)=\sum_{l=1}^{n}\left(\sum_{k=1}^{p} A_{i l} B_{l k} C_{k j}\right) \\ &=\sum_{l=1}^{n} A_{i l}\left(\sum_{k=1}^{p} B_{l k} C_{k j}\right)=\sum_{l=1}^{n} A_{i l}(B C)_{l j}=(A(B C))_{i j} \end{aligned}

# 三、运算和属性

# 3.1 单位矩阵和对角矩阵

单位矩阵,IRn×nI \in \mathbb{R}^{n \times n},它是一个方阵,对角线的元素是 11,其余元素都是 00

Iij={1i=j0ij I_{i j}=\left\{\begin{array}{ll} 1 & i=j \\ 0 & i \neq j \end{array}\right.

对于所有 ARm×nA \in \mathbb{R}^{m \times n},有:

AI=A=IA A I=A=I A

注意

在某种意义上,单位矩阵的表示法是不明确的,因为它没有指定 II 的维数。通常,II 的维数是从上下文推断出来的,以便使矩阵乘法成为可能。

例如,在上面的等式中,AI=AA I=A 中的 IIn×nn \times n 矩阵,而 A=IAA=I A 中的 IIm×mm \times m 矩阵。

对角矩阵是一种这样的矩阵:对角线之外的元素全为 00。对角阵通常表示为:D=diag(d1,d2,,dn)D=\operatorname{diag}\left(d_{1}, d_{2}, \ldots, d_{n}\right),其中:

Dij={dii=j0ij D_{i j}=\left\{\begin{array}{ll} d_{i} & i=j \\ 0 & i \neq j \end{array}\right.

很明显:单位矩阵 I=diag(1,1,,1)I=\operatorname{diag}(1,1, \ldots, 1)

# 3.2 转置

矩阵的转置是指翻转矩阵的行和列。

给定一个矩阵:ARm×nA \in \mathbb{R}^{m \times n},它的转置为 n×mn \times m 的矩阵 ATRn×mA^{\rm{T}} \in \mathbb{R}^{n \times m},其中的元素为:

(AT)ij=Aji \left(A^{\rm{T}}\right)_{i j}=A_{j i}

事实上,我们在描述行向量时已经使用了转置,因为列向量的转置自然是行向量。

转置的以下属性很容易验证:

  • (AT)T=A\left(A^{\rm{T}}\right)^{\rm{T}}=A
  • (AB)T=BTAT(A B)^{\rm{T}}=B^{\rm{T}} A^{\rm{T}}
  • (A+B)T=AT+BT(A+B)^{\rm{T}}=A^{\rm{T}}+B^{\rm{T}}

# 3.3 对称矩阵

如果 A=ATA=A^{\rm{T}},则矩阵 ARn×nA \in \mathbb{R}^{n \times n} 是对称矩阵;如果 A=ATA=-A^{T},那么它是反对称的。

很容易证明,对于任何矩阵 ARn×nA \in \mathbb{R}^{n \times n},矩阵 A+ATA+A^{\rm{T}} 是对称的,矩阵 AATA-A^{T} 是反对称的。由此得出,任何方阵 ARn×nA \in \mathbb{R}^{n \times n} 可以表示为对称矩阵和反对称矩阵的和,即:

A=12(A+AT)+12(AAT) A=\frac{1}{2}\left(A+A^{\rm{T}}\right)+\frac{1}{2}\left(A-A^{\rm{T}}\right)

上面公式的右边的第一个矩阵是对称矩阵,而第二个矩阵是反对称矩阵。事实证明,对称矩阵在实践中用到很多,它们有很多很好的属性,我们很快就会看到它们。

通常将大小为 nn 的所有对称矩阵的集合表示为 Sn\mathbb{S}^{n},因此 ASnA \in \mathbb{S}^{n} 意味着 AA 是对称的 n×nn \times n 矩阵。

# 3.4 矩阵的迹

方阵 ARn×nA \in \mathbb{R}^{n \times n} 的迹,表示为 tr(A)\operatorname{tr}(A)(或者 trA\operatorname{tr} A),是矩阵中对角元素的总和:

trA=i=1nAii \operatorname{tr} A=\sum_{i=1}^{n} A_{i i}

迹具有以下性质:

  • 对于矩阵 ARn×nA \in \mathbb{R}^{n \times n},则:trA=trAT\operatorname{tr} A=\operatorname{tr} A^{\rm{T}}
  • 对于矩阵 A,BRn×nA, B \in \mathbb{R}^{n \times n},则:tr(A+B)=trA+trB\operatorname{tr}(A+B)=\operatorname{tr} A+\operatorname{tr} B
  • 对于矩阵 ARn×n,tRA \in \mathbb{R}^{n \times n}, t \in \mathbb{R},则:tr(tA)=ttrA\operatorname{tr}(t A)=t \operatorname{tr} A
  • 对于矩阵 A,BA, BABA B 为方阵,则:trAB=trBA\operatorname{tr} A B=\operatorname{tr} B A
  • 对于矩阵 A,B,CA, B, CABCA B C 为方阵,则:trABC=trBCA=trCAB\operatorname{tr} A B C=\operatorname{tr} B C A=\operatorname{tr} C A B,同理,更多矩阵的积也是有这个性质。

下面举例证明一下第四个性质。假设 ARm×nA \in \mathbb{R}^{m \times n}BRn×mB \in \mathbb{R}^{n \times m}(因此 ABRm×mA B \in \mathbb{R}^{m \times m} 是方阵),观察到 BARn×nB A \in \mathbb{R}^{n \times n} 也是一个方阵,因此对它们进行迹的运算是有意义的。要证明 trAB=trBA\operatorname{tr} A B=\operatorname{tr} B A,请注意:

trAB=i=1m(AB)ii=i=1m(j=1nAijBji)=i=1mj=1nAijBji=j=1ni=1mBjiAij=j=1n(i=1mBjiAij)=j=1n(BA)jj=trBA \begin{aligned} \operatorname{tr} A B &=\sum_{i=1}^{m}(A B)_{i i}=\sum_{i=1}^{m}\left(\sum_{j=1}^{n} A_{i j} B_{j i}\right) \\ &=\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j} B_{j i}=\sum_{j=1}^{n} \sum_{i=1}^{m} B_{j i} A_{i j} \\ &=\sum_{j=1}^{n}\left(\sum_{i=1}^{m} B_{j i} A_{i j}\right)=\sum_{j=1}^{n}(B A)_{j j}=\operatorname{tr} B A \end{aligned}

这里,第一个和最后两个等式使用迹运算符和矩阵乘法的定义,重点在第四个等式,使用标量乘法的可交换性来反转每个乘积中的项的顺序,以及标量加法的可交换性,以便重新排列求和的顺序。

# 3.5 范数

向量的范数 x\|x\| 是非正式度量的向量的“长度”。例如,我们有常用的欧几里德或 2\ell_{2} 范数:

x2=i=1nxi2 \|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}

注意:x22=xTx\|x\|_{2}^{2}=x^{\rm{T}} x

更正式地,范数是满足四个属性的函数 (f:RnR)\left(f: \mathbb{R}^{n} \rightarrow \mathbb{R}\right)

  1. 对于所有的 xRnx \in \mathbb{R}^{n}f(x)0f(x) \geq 0(非负);
  2. 当且仅当 x=0x=0 时, f(x)=0f(x)=0(明确性);
  3. 对于所有 xRn,tRx \in \mathbb{R}^{n}, t \in \mathbb{R},则 f(tx)=tf(x)f(t x)=|t| f(x)(正齐次性);
  4. 对于所有 x,yRnx, y \in \mathbb{R}^{n}f(x+y)f(x)+f(y)f(x+y) \leq f(x)+f(y)(三角不等式)。

其他范数的例子如 1\ell_{1} 范数:

x1=i=1nxi \|x\|_{1}=\sum_{i=1}^{n}\left|x_{i}\right|

\ell_{\infty} 范数:

x=maxixi \|x\|_{\infty}=\max _{i}\left|x_{i}\right|

事实上,上面所提出的这三个范数都是 p\ell_{p} 范数族的例子,它们由实数 p1p \geq 1 参数化,并定义为:

xp=(i=1nxip)1/p \|x\|_{p}=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{1 / p}

也可以为矩阵定义范数,例如 Frobenius 范数:

AF=i=1mj=1nAij2=tr(ATA) \|A\|_{F}=\sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j}^{2}}=\sqrt{\operatorname{tr}\left(A^{\rm{T}} A\right)}

还有许多其他更多的范数,这里不做过多介绍。

# 3.6 线性相关性和秩

一组向量 x1,x2,xnRx_{1}, x_{2}, \cdots x_{n} \in \mathbb{R},如果没有向量可以表示为其余向量的线性组合,则称该向量组是线性无相关的;相反,如果属于该组的一个向量可以表示为其余向量的线性组合,则称该向量组是线性相关的。也就是说,如果:

xn=i=1n1αixi x_{n}=\sum_{i=1}^{n-1} \alpha_{i} x_{i}

对于某些标量值 α1,αn1R\alpha_{1}, \cdots \alpha_{n-1} \in \mathbb{R} 等式成立,那么向量 x1,x2,xnx_{1}, x_{2}, \cdots x_{n} 是线性相关的;否则,向量组是线性无关的。例如,向量:

x1=[123]x2=[415]x3=[231] x_{1}=\left[\begin{array}{l} 1 \\ 2 \\ 3 \end{array}\right] \quad x_{2}=\left[\begin{array}{l} 4 \\ 1 \\ 5 \end{array}\right] \quad x_{3}=\left[\begin{array}{c} 2 \\ -3 \\ -1 \end{array}\right]

是线性相关的,因为:x3=2x1+x2x_{3}=-2 x_{1}+x_{2}

矩阵 ARm×nA \in \mathbb{R}^{m \times n}列秩 是构成线性无关集合的 AA 的最大列子集的大小。由于术语的多样性,这通常简称为 AA 的线性无关列的数量。同样,行秩是构成线性无关集合的 AA 的最大行数。对于任何矩阵 ARm×nA \in \mathbb{R}^{m \times n},事实证明 AA 的列秩等于 AA 的行秩(尽管我们不会证明这一点),因此两个量统称为 AA 的秩,用 rank(A)\operatorname{rank}(A) 表示。

以下是秩的一些基本性质:

  • 对于 ARm×nA \in \mathbb{R}^{m \times n}rank(A)min(m,n)\operatorname{rank}(A) \leq \min (m, n),如果 (A)=min(m,n)(A)=\min (m, n),则 AA 被称作 满秩
  • 对于 ARm×nA \in \mathbb{R}^{m \times n}rank(A)=rank(AT)\operatorname{rank}(A)=\operatorname{rank}\left(A^{T}\right)
  • 对于 ARm×n,BRn×pA \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p}rank(AB)min(rank(A),rank(B))\operatorname{rank}(A B) \leq \min (\operatorname{rank}(A), \operatorname{rank}(B))
  • 对于 A,BRm×nA, B \in \mathbb{R}^{m \times n}rank(A+B)rank(A)+rank(B)\operatorname{rank}(A+B) \leq \operatorname{rank}(A)+\operatorname{rank}(B)

# 3.7 方阵的逆

方阵 ARn×nA \in \mathbb{R}^{n \times n} 的倒数表示为 A1A^{-1},并且是这样的独特矩阵:

A1A=I=AA1 A^{-1} A=I=A A^{-1}

请注意,并非所有矩阵都具有逆。例如,非方形矩阵根据定义没有逆。然而,对于一些方形矩阵 AA, 可能仍然存在 A1A^{-1} 可能不存在的情况。

特别是,如果 A1A^{-1} 存在,我们说 AA可逆 的或 非奇异 的,否则就是 不可逆奇异 的。为了使方阵 AA 具有逆 A1A^{-1} ,则 AA 必须是满秩。我们很快就会发现,除了满秩之外, 还有许多其它的充分必要条件。

以下是逆的性质,假设 A,BRn×nA, B \in \mathbb{R}^{n \times n},并且是非奇异的:

  • (A1)1=A(A^{-1})^{-1}=A
  • (AB)1=B1A1(AB)^{-1}=B^{-1}A^{-1}
  • (A1)T=(AT)1(A^{-1})^{\rm{T}}=(A^{\rm{T}})^{-1},因此,该矩阵通常表示为 ATA^{-\rm{T}}

下面举一个逆的应用示例,考虑线性方程组,Ax=bA x=b,其中 ARn×n,x,bRA \in \mathbb{R}^{n \times n}, x, b \in \mathbb{R},如果 AA 是非奇异的(即可逆的),那么 x=A1bx=A^{-1} b(如果 ARm×nA \in \mathbb{R}^{m \times n} 不是方阵,则此公式不适用)。

# 3.8 正交阵

如果 xTy=0x^{\rm{T}} y=0,则两个向量 x,yRnx, y \in \mathbb{R}^{n}正交 的。

如果 x2=1\|x\|_{2}=1,则向量 xRnx \in \mathbb{R}^{n}归一化

如果一个方阵 URn×nU \in \mathbb{R}^{n \times n} 的所有列向量彼此正交并被归一化,则方阵 UU 是正交阵(注意与在讨论向量时的意义不一样)。

它可以从正交性和正态性的定义中得出:

UTU=I=UUT U^{\rm{T}} U=I=U U^{\rm{T}}

换句话说,正交矩阵的逆是其转置。注意,如果 UU 不是方阵,即:URm×n,n<mU \in \mathbb{R}^{m \times n}, n<m,但其列仍然是正交的,则 UTU=IU^{\rm{T}} U=I,但是 UUTIU U^{\rm{T}} \neq I

# 3.9 矩阵的值域和零空间

一组向量 {x1,,xn}\left\{x_{1}, \ldots ,x_{n}\right\} 可以表示为 {x1,,xn}\left\{x_{1}, \ldots ,x_{n}\right\} 的线性组合的所有向量的集合。即:

span({x1,xn})={v:v=i=1nαixi,αiR} \operatorname{span}\left(\left\{x_{1}, \ldots x_{n}\right\}\right)=\left\{v: v=\sum_{i=1}^{n} \alpha_{i} x_{i}, \quad \alpha_{i} \in \mathbb{R}\right\}

可以证明,如果 {x1,,xn}\left\{x_{1}, \ldots ,x_{n}\right\} 是一组 nn 个线性无关的向量,其中每个 xiRnx_{i} \in \mathbb{R}^{n},则 span({x1,,xn})=Rn\operatorname{span}\left(\left\{x_{1}, \ldots ,x_{n}\right\}\right)=\mathbb{R}^{n}。换句话说,任何向量 vRnv \in \mathbb{R}^{n} 都可以写成 x1x_{1}xnx_{n} 的线性组合。

向量 yRmy \in \mathbb{R}^{m} 投影到 {x1,xn}\left\{x_{1}, \ldots x_{n}\right\}(这里我们假设 xiRmx_{i} \in \mathbb{R}^{m})得到向量 vspan({x1,,xn})v \in \operatorname{span}\left(\left\{x_{1}, \ldots, x_{n}\right\}\right),由欧几里德范数 vy2\|v-y\|_{2} 可以使得 vv 尽可能接近 yy

我们将投影表示为 Proj(y;{x1,xn})\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right),并且可以将其正式定义为:

Proj(y;{x1,xn})=argminvspan({x1,,xn})yv2 \operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right)=\operatorname{argmin}_{v \in \operatorname{span}\left(\left\{x_{1}, \ldots, x_{n}\right\}\right)}\|y-v\|_{2}

矩阵 ARm×nA \in \mathbb{R}^{m \times n} 的值域(有时也称为列空间),表示为 R(A)\mathcal{R}(A),是 AA 列的跨度。换句话说,

R(A)={vRm:v=Ax,xRn} \mathcal{R}(A)=\left\{v \in \mathbb{R}^{m}: v=A x, x \in \mathbb{R}^{n}\right\}

做一些技术性的假设(即 AA 是满秩且 n<mn<m),向量 yRmy \in \mathbb{R}^{m}AA 的范围的投影由下式给出:

Proj(y;A)=argminvR(A)vy2=A(ATA)1ATy \operatorname{Proj}(y ; A)=\operatorname{argmin}_{v \in \mathcal{R}(A)}\|v-y\|_{2}=A\left(A^{\rm{T}} A\right)^{-1} A^{\rm{T}} y

看一下投影的定义,显而易见,这实际上是我们在最小二乘问题中最小化的目标(除了范数的平方这里有点不一样,但这不会影响找到最优解),所以这些问题自然是非常相关的。

AA 只包含一列时,aRma \in \mathbb{R}^{m},这里给出了向量投影到一条线上的特殊情况:

Proj(y;a)=aaTaTay \operatorname{Proj}(y ; a)=\frac{a a^{\rm{T}}}{a^{\rm{T}} a} y

一个矩阵 ARm×nA \in \mathbb{R}^{m \times n} 的零空间 N(A)\mathcal{N}(A) 是所有乘以 AA 时等于 00 向量的集合,即:

N(A)={xRn:Ax=0} \mathcal{N}(A)=\left\{x \in \mathbb{R}^{n}: A x=0\right\}

注意

R(A)\mathcal{R}(A) 中的向量的大小为 mm,而 N(A)\mathcal{N}(A) 中的向量的大小为 nn,因此 R(AT)\mathcal{R}\left(A^{\rm{T}}\right)N(A)\mathcal{N}(A) 中的向量的大小均为 Rn\mathbb{R}^{n}

可以证明:

{w:w=u+v,uR(AT),vN(A)}=Rn and R(AT)N(A)={0} \left\{w: w=u+v, u \in \mathcal{R}\left(A^{\rm{T}}\right), v \in \mathcal{N}(A)\right\}=\mathbb{R}^{n} \text { and } \mathcal{R}\left(A^{\rm{T}}\right) \cap \mathcal{N}(A)=\{\mathbf{0}\}

换句话说,R(AT)\mathcal{R}\left(A^{\rm{T}}\right)N(A)\mathcal{N}(A) 是不相交的子集,它们一起跨越 Rn\mathbb{R}^{n} 的整个空间。这种类型的集合称为正交补,我们用 R(AT)=N(A)\mathcal{R}\left(A^{\rm{T}}\right)=\mathcal{N}(A)^{\perp} 表示。

# 3.10 行列式

一个方阵 ARn×nA \in \mathbb{R}^{n \times n} 的行列式表示为 A|A| 或者 detA\operatorname{det} A(有点像迹运算符,我们通常省略括号)。从代数的角度来说,我们可以写出一个关于 AA 行列式的显式公式。因此,我们首先提供行列式的几何解释,然后探讨它的一些特定的代数性质。

给定一个矩阵:

[a1Ta2TanT] \left[\begin{array}{ccc} - & a_{1}^{\rm{T}} & - \\ - & a_{2}^{\rm{T}} & - \\ & \vdots & \\ - & a_{n}^{\rm{T}} & - \end{array}\right]

考虑通过采用 AA 行向量 a1,anRna_{1}, \ldots a_{n} \in \mathbb{R}^{n} 的所有可能线性组合形成的向量 SRnS \subset \mathbb{R}^{n} 的集合,其中线性组合的系数都在 0 到 1 之间;也就是说,集合 SSspan({a1,an})\operatorname{span}\left(\left\{a_{1}, \ldots a_{n}\right\}\right) 受到系数 α1,,αn\alpha_{1}, \cdots, \alpha_{n} 的限制的线性组合,α1,,αn\alpha_{1}, \cdots, \alpha_{n} 满足 0αi1,i=1,,n0 \leq \alpha_{i} \leq 1, i=1, \ldots, n。从形式上看,

S={vRn:v=i=1nαiai where 0αi1,i=1,,n} S=\left\{v \in \mathbb{R}^{n}: v=\sum_{i=1}^{n} \alpha_{i} a_{i} \text { where } 0 \leq \alpha_{i} \leq 1, i=1, \ldots, n\right\}

事实证明,AA 的行列式的绝对值是对集合 SS 的“体积"的度量

  • 当它是二维矩阵的时候,行列式对应平行四边形的面积;
  • 当它是三维矩阵的时候,行列式对应平行六面体的体积;
  • 当它是 n 维矩阵的时候,行列式是一个 n 维平行切面体的 n 维体积。

在代数上,行列式满足以下三个性质:

  1. 单位矩阵的行列式等于 1(几何上,单位超立方体的体积为 1);
  2. 行列式中某一行乘以一个常数,可以将该常数提出来(几何上,将一个边乘以系数 tt,体积也会增加一个系数 tt);
  3. 交换行列式的任意两行,行列式变为负号。

可以证明,满足上面三个性质的函数有且仅有一个。

从上述三个性质中得出的几个性质包括:

  • 对于 ARn×nA \in \mathbb{R}^{n \times n}A=AT|A|=\left|A^{ \rm{T} } \right|
  • 对于 A,BRn×nA, B \in \mathbb{R}^{n \times n}AB=AB|A B|=|A||B|
  • 对于 ARn×nA \in \mathbb{R}^{n \times n},有且只有当 AA 是奇异的(不可逆)时,A=0|A|=0
  • 对于 ARn×nA \in \mathbb{R}^{n \times n} 同时 AA 为非奇异的(可逆)时,A1=1A\left|A^{-1}\right|=\frac{1}{|A|}

在给出行列式的一般定义之前,我们定义,对于 ARn×n,A\i,\jR(n1)×(n1)A \in \mathbb{R}^{n \times n}, A_{\backslash i, \backslash j} \in \mathbb{R}^{(n-1) \times(n-1)} 是由于删除第 ii 行和第 jj 列而产生的矩阵。行列式的一般(递归)公式是:

A=i=1n(1)i+jaijA\i,\j( for any j1,,n)=j=1n(1)i+jaijA\i,\j( for any i1,,n) \begin{aligned} |A| &=\sum_{i=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } j \in 1, \ldots, n) \\ &=\sum_{j=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } i \in 1, \ldots, n) \end{aligned}

对于 AR1×1A \in \mathbb{R}^{1 \times 1},初始情况为 A=a11|A|=a_{11}。如果我们把这个公式完全展开为 ARn×nA \in \mathbb{R}^{n \times n},就等于 n!n !(n 的阶乘)个不同的项。因此,对于大于 3×33 \times 3 的矩阵,我们几乎没有明确地写出完整的行列式方程。然而,3×33 \times 3 大小的矩阵的行列式方程是相当常见的,建议好好地了解它们:

a11=a11a11a12a21a22=a11a22a12a21a11a12a13a21a22a23a31a32a33=a11a22a33+a12a23a31+a13a21a32a11a23a32a12a21a33a13a22a31 \begin{aligned} \left|a_{11}\right|&=a_{11} \\ \left|\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array}\right|&=a_{11} a_{22}-a_{12} a_{21} \\ \left|\begin{array}{ccc} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{array}\right|&=\begin{array}{c} a_{11} a_{22} a_{33}+a_{12} a_{23} a_{31}+a_{13} a_{21} a_{32} \\ -a_{11} a_{23} a_{32}-a_{12} a_{21} a_{33}-a_{13} a_{22} a_{31} \end{array} \end{aligned}

矩阵 ARn×nA \in \mathbb{R}^{n \times n} 的伴随矩阵表示为 adj(A)\operatorname{adj}(A),并定义为:

adj(A)Rn×n,(adj(A))ij=(1)i+jA\j,\i \operatorname{adj}(A) \in \mathbb{R}^{n \times n}, \quad(\operatorname{adj}(A))_{i j}=(-1)^{i+j}\left|A_{\backslash j, \backslash i}\right|

注意索引 A\j,\iA_{\backslash j, \backslash i} 中的变化。可以看出,对于任何非奇异 ARn×nA \in \mathbb{R}^{n \times n},都有

A1=1Aadj(A) A^{-1}=\frac{1}{|A|} \operatorname{adj}(A)

虽然这是一个很好的“显式”的逆矩阵公式,但我们应该注意,还有很多更有效的方法来计算逆矩阵。

# 3.11 二次型和半正定矩阵

给定方矩阵 ARn×nA \in \mathbb{R}^{n \times n} 和向量 xRnx \in \mathbb{R}^{n},则标量值 xTAxx^{\rm{T}} A x 被称为二次型。写得清楚些,我们可以看到:

xTAx=i=1nxi(Ax)i=i=1nxi(j=1nAijxj)=i=1nj=1nAijxixj x^{\rm{T}} A x=\sum_{i=1}^{n} x_{i}(A x)_{i}=\sum_{i=1}^{n} x_{i}\left(\sum_{j=1}^{n} A_{i j} x_{j}\right)=\sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j}

注意:

xTAx=(xTAx)T=xTATx=xT(12A+12AT)x x^{\rm{T}} A x=\left(x^{\rm{T}} A x\right)^{\rm{T}}=x^{\rm{T}} A^{\rm{T}} x=x^{T}\left(\frac{1}{2} A+\frac{1}{2} A^{\rm{T}}\right) x

第一个等号的是因为是标量的转置与自身相等,第二个等号是因为转置的性质,而第三个等号是因为是我们平均两个本身相等的量。由此,我们可以得出结论,只有 AA 的对称部分有助于形成二次型。出于这个原因,我们经常隐含地假设以二次型出现的矩阵是对称阵。我们给出以下定义:

  • 对于所有非零向量 xRn,xTAx>0x \in \mathbb{R}^{n}, x^{\rm{T}} A x>0,则对称矩阵 ASnA \in \mathbb{S}^{n} 为正定(positive definite, PD)。这通常表示为 A0A \succ 0(或 A>0A>0),并且通常将所有正定矩阵的集合表示为 S++n\mathbb{S}_{++}^{n}
  • 对于所有向量 xRn,xTAx0x \in \mathbb{R}^{n}, x^{\rm{T}} A x \geq 0,则对称矩阵 ASnA \in \mathbb{S}^{n} 为半正定(positive semidefinite, PSD)。这通常表示为 A0A \succeq 0(或 A0A \geq 0),并且所有半正定矩阵的集合通常表示为 S+n\mathbb{S}_{+}^{n}
  • 同样,对称矩阵 ASnA \in \mathbb{S}^{n} 是负定(negative definite, ND),如果对于所有非零向量 xRnx \in \mathbb{R}^{n},则 xTAx<0x^{\rm{T}} A x<0 表示为 A0A \prec 0(或 A<0A<0)。
  • 类似地,对称矩阵 ASnA \in \mathbb{S}^{n} 是半负定(negative semidefinite, NSD),如果对于所有向量 xRnx \in \mathbb{R}^{n},则 xTAx0x^{\rm{T}} A x \leq 0 表示为 A0A \preceq 0(或 A0A \leq 0)。
  • 最后,对称矩阵 ASnA \in \mathbb{S}^{n} 是不定的,如果它既不是半正定也不是半负定,即:存在 x1,x2Rnx_{1}, x_{2} \in \mathbb{R}^{n},使得 x1TAx1>0x_{1}^{\rm{T}} A x_{1}>0x2TAx2<0x_{2}^{\rm{T}} A x_{2}<0

很明显,如果 AA 是正定的,那么 A-A 一定是负定的,反之亦然。同样,如果 AA 是半正定的,那么 A-A 一定是半负定的,反之亦然。如果 AA 是不定的,那么 A-A 一定也是不定的。

正定矩阵和负定矩阵的一个重要性质是它们总是满秩,因此是可逆的。下面简单证明一下这个性质,假设某个矩阵 ASnA \in \mathbb{S}^{n} 不是满秩。然后,假设 AA 的第 jj 列可以表示为其他 n1n-1 列的线性组合:

aj=ijxiai a_{j}=\sum_{i \neq j} x_{i} a_{i}

对于某些 x1,xj1,xj+1,,xnRx_{1}, \cdots x_{j-1}, x_{j+1}, \cdots, x_{n} \in \mathbb{R},设 xj=1x_{j}=-1,则:

Ax=ijxiai=0 A x=\sum_{i \neq j} x_{i} a_{i}=0

但这意味着对于某些非零向量 xxxTAx=0x^{\rm{T}} A x=0,因此 AA 必须既不是正定也不是负定。如果 AA 是正定或负定,则必须是满秩。

最后,有一种类型的正定矩阵经常出现,因此值得特别提及。给定矩阵 ARm×nA \in \mathbb{R}^{m \times n},则矩阵 G=ATAG=A^{\rm{T}} A(有时称为 Gram 矩阵)总是半正定的;此外,如果 mnm \geq n(同时为了方便起见,我们假设 AA 是满秩),则 G=ATAG=A^{\rm{T}} A 是正定的。

# 3.12 特征值和特征向量

给定一个方阵 ARn×nA \in \mathbb{R}^{n \times n},我们认为在以下条件下,λC\lambda \in \mathbb{C}AA 的特征值,xCnx \in \mathbb{C}^{n} 是相应的特征向量:

Ax=λx,x0 A x=\lambda x, x \neq 0

直观地说,这个定义意味着将 AA 乘以向量 xx 会得到一个新的向量,该向量指向与 xx 相同的方向,但按系数 λ\lambda 缩放。值得注意的是,对于任何特征向量 xCnx \in \mathbb{C}^{n} 和标量 tCt \in \mathbb{C},都有 A(cx)=cAx=cλx=λ(cx)A(c x)=c A x=c \lambda x=\lambda(c x),即 cxc x 也是一个特征向量。因此,当我们讨论与 λ\lambda 相关的特征向量时,我们通常假设特征向量被标准化为长度 1(这仍然会造成一些歧义,因为 xxx-x 都是特征向量,但我们必须接受这一点)。

我们可以重写上面的等式来说明 (λ,x)(\lambda, x)AA 的特征值和特征向量的组合:

(λIA)x=0,x0 (\lambda I-A) x=0, x \neq 0

但是 (λIA)x=0(\lambda I-A) x=0 只有当 (λIA)(\lambda I-A) 有一个非空零空间,同时 (λIA)(\lambda I-A) 是奇异的,xx 才具有非零解,即:

(λIA)=0 |(\lambda I-A)|=0

现在,我们可以使用行列式的定义将表达式 (λIA)|(\lambda I-A)| 扩展为 λ\lambda 中的(非常大的)多项式,其中,λ\lambda 的度为 nn。它通常被称为矩阵 AA 的特征多项式。

然后我们找到这个特征多项式的 nn(可能是复数)个根,并用 λ1,,λn\lambda_{1}, \cdots, \lambda_{n} 表示。这些都是矩阵 AA 的特征值,但我们注意到它们可能不明显。为了找到特征值 λi\lambda_{i} 对应的特征向量,我们只需解线性方程 (λIA)x=0(\lambda I-A) x=0 即可,因为 (λIA)(\lambda I-A) 是奇异的,所以保证有一个非零解(但也可能有多个或无穷多个解)。

应该注意的是,这不是实际用于数值计算特征值和特征向量的方法(行列式的完全展开式有 n!n ! 项)。

以下是特征值和特征向量的性质(在 ARn×nA \in \mathbb{R}^{n \times n} 具有特征值 λ1,,λn\lambda_{1}, \cdots, \lambda_{n} 的前提下):

  • AA 的迹等于其特征值之和。
trA=i=1nλi \operatorname{tr} A=\sum_{i=1}^{n} \lambda_{i}
  • AA 的行列式等于其特征值的乘积。
A=i=1nλi |A|=\prod_{i=1}^{n} \lambda_{i}
  • AA 的秩等于 AA 的非零特征值的个数。
  • 假设 AA 非奇异,其特征值为 λ\lambda,特征向量为 xx,那么 1/λ1 / \lambda 是具有相关特征向量 xxA1A^{-1} 的特征值,即 A1x=(1/λ)xA^{-1} x=(1 / \lambda) x(要证明这一点,取特征向量方程,Ax=λxA x=\lambda x,两边都左乘 A1A^{-1})。
  • 对角阵的特征值 d=diag(d1,,dn)d=\operatorname{diag}\left(d_{1}, \cdots, d_{n}\right) 实际上就是对角元素 d1,,dnd_{1}, \ldots, d_{n}

# 3.13 对称矩阵的特征值和特征向量

在本节中,我们假设 AA 是实对称矩阵,具有以下性质:

  1. AA 的所有特征值都是实数,我们用 λ1,,λn\lambda_{1}, \cdots, \lambda_{n} 表示;
  2. 存在一组特征向量 u1,unu_{1}, \cdots u_{n},其中 uiu_{i} 是具有特征值 λi\lambda_{i} 的特征向量,u1,unu_{1}, \cdots u_{n} 是单位向量并且彼此正交。

UU 是包含 uiu_{i} 作为列的正交矩阵:

U=[u1u2un] U=\left[\begin{array}{cccc} \mid & \mid & & \mid \\ u_{1} & u_{2} & \cdots & u_{n} \\ \mid & \mid & & \mid \end{array}\right]

Λ=diag(λ1,,λn)\Lambda=\operatorname{diag}\left(\lambda_{1}, \cdots, \lambda_{n}\right) 是包含 λ1,,λn\lambda_{1}, \cdots, \lambda_{n} 作为对角线上的元素的对角矩阵。使用 2.3节 中矩阵-矩阵乘法的方法,我们可以验证:

AU=[Au1Au2Aun]=[λ1u1λ2u2λnun]=Udiag(λ1,,λn)=UΛ A U=\left[\begin{array}{cccc} \mid & \mid & & \mid \\ A u_{1} & A u_{2} & \cdots & A u_{n} \\ \mid & \mid & & \mid \end{array}\right]=\left[\begin{array}{cccc} \mid & \mid & \mid & \mid \\ \lambda_{1} u_{1} & \lambda_{2} u_{2} & \cdots & \lambda_{n} u_{n} \\ \mid & \mid & \mid & \mid \end{array}\right]=U \operatorname{diag}\left(\lambda_{1}, \ldots, \lambda_{n}\right)=U \Lambda

考虑到正交矩阵 UU 满足 UUT=IU U^{\rm{T}}=I,利用上面的方程,我们得到:

A=AUUT=UΛUT A=A U U^{\rm{T}}=U \Lambda U^{\rm{T}}

这种 AA 的新的表示形式为 UΛUTU \Lambda U^{T},通常称为矩阵 AA对角化。术语对角化是这样来的:通过这种表示,我们通常可以有效地将对称矩阵 AA 视为对角矩阵,这样更容易理解。

背景知识

任何正交矩阵 U=[u1u2un]U=\left[\begin{array}{cccc}\mid & \mid & & \mid \\ u_{1} & u_{2} & \cdots & u_{n} \\ \mid & \mid & & \mid\end{array}\right] 都定义了一个新的属于 Rn\mathbb{R}^{n} 的基(坐标系),意义如下:对于任何向量 xRnx \in \mathbb{R}^{n} 都可以表示为 u1,unu_{1}, \ldots u_{n} 的线性组合,其系数为 x1,xnx_{1}, \cdots x_{n}

x=x^1u1++x^nun=Ux^ x=\hat{x}_{1} u_{1}+\cdots+\cdots \hat{x}_{n} u_{n}=U \hat{x}

在第二个等式中,我们使用矩阵和向量相乘的方法。实际上,这种 x^\hat{x} 是唯一存在的:

x=Ux^UTx=x^ x=U \hat{x} \Leftrightarrow U^{\rm{T}} x=\hat{x}

换句话说,向量 x^=UTx\hat{x}=U^{\rm{T}} x 可以作为向量 xx 的另一种表示,与 UU 定义的基有关。

“对角化”矩阵向量乘法

通过上面的设置,我们看到左乘矩阵 AA 可以被视为左乘对角矩阵关于特征向量的基。假设 xx 是一个向量,x^\hat{x} 表示 UU 的基,设 z=Axz=A x 为矩阵向量积。现在让我们计算关于 UU 的基 zz;然后,再利用 UUT=UT=IU U^{\rm{T}}=U^{\rm{T}}=I 和方程 A=AUUT=UΛUTA=A U U^{\rm{T}}=U \Lambda U^{\rm{T}},我们得到:

z^=UTz=UTAx=UTUΛUTx=Λx^=[λ1x^1λ2x^2λnx^n] \hat{z}=U^{\rm{T}} z=U^{\rm{T}} A x=U^{\rm{T}} U \Lambda U^{\rm{T}} x=\Lambda \hat{x}=\left[\begin{array}{c} \lambda_{1} \hat{x}_{1} \\ \lambda_{2} \hat{x}_{2} \\ \vdots \\ \lambda_{n} \hat{x}_{n} \end{array}\right]

我们可以看到,原始空间中的左乘矩阵 AA 等于左乘对角矩阵 Λ\Lambda,相对于新的基,即仅将每个坐标缩放相应的特征值。在新的基上,矩阵多次相乘也变得简单多了。例如,假设 q=AAAxq=A A A x,根据 AA 的元素导出 qq 的分析形式,使用原始的基可能是一场噩梦,但使用新的基就容易多了:

q^=UTq=UTAAAx=UTUΛUTUΛUTTUΛUTx=Λ3x^=[λ13x^1λ23x^2λn3x^n] \hat{q}=U^{\rm{T}} q=U^{\rm{T}} A A A x=U^{\rm{T}} U \Lambda U^{\rm{T}} U \Lambda U^{\rm{T}T} U \Lambda U^{\rm{T}} x=\Lambda^{3} \hat{x}=\left[\begin{array}{c} \lambda_{1}^{3} \hat{x}_{1} \\ \lambda_{2}^{3} \hat{x}_{2} \\ \vdots \\ \lambda_{n}^{3} \hat{x}_{n} \end{array}\right]

“对角化”二次型

作为直接的推论,二次型 xTAxx^{\rm{T}} A x 也可以在新的基上简化。

xTAx=xTUΛUTx=x^Λx^=i=1nλix^i2 x^{\rm{T}} A x=x^{\rm{T}} U \Lambda U^{\rm{T}} x=\hat{x} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}

回想一下,在旧的表示法中,xTAx=i=1,j=1nxixjAijx^{\rm{T}} A x=\sum_{i=1, j=1}^{n} x_{i} x_{j} A_{i j} 涉及一个 n2n^{2} 项的和,而不是上面等式中的 nn 项。

利用这个观点,我们还可以证明矩阵 AA 的正定性完全取决于其特征值的符号:

  1. 如果所有的 λi>0\lambda_{i}>0,则矩阵 AA 为正定,因为对于任意的 x^0\hat{x} \neq 0xTAx=i=1nλix^i2>0x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}>0
  2. 如果所有的 λi0\lambda_{i} \geq 0,则矩阵 AA 为半正定,因为对于任意的 x^\hat{x}xTAx=i=1nλix^i20x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \geq 0
  3. 同样,如果所有 λi<0\lambda_{i}<0λi0\lambda_{i} \leq 0,则矩阵 AA 分别为负定或半负定。
  4. 最后,如果 AA 同时具有正特征值和负特征值,比如 λi>0\lambda_{i}>0 并且 λj<0\lambda_{j}<0,那么它是不定的。

特征值和特征向量经常出现的应用是最大化矩阵的某些函数。特别是对于矩阵 ASnA \in \mathbb{S}^{n},考虑以下最大化问题:

maxxRnxTAx=i=1nλix^i2 subject to x22=1 \max _{x \in \mathbb{R}^{n}} x^{\rm{T}} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \quad \text { subject to }\|x\|_{2}^{2}=1

也就是说,我们要找到(范数 1)的向量,它使二次型最大化。假设特征值的阶数为 λ1λ2λn\lambda_{1} \geq \lambda_{2} \geq \cdots \lambda_{n},则此优化问题的最优值为 λ1\lambda_{1},且与 λ1\lambda_{1} 对应的任何特征向量 u1u_{1} 都是最大值之一。(如果 λ1>λ2\lambda_{1}>\lambda_{2},那么有一个与特征值 λ1\lambda_{1} 对应的唯一特征向量,它是上面那个优化问题的唯一最大值。)我们可以通过使用对角化技术来证明这一点:注意,通过公式 Ux2=x2\|U x\|_{2}=\|x\|_{2} 推出 x2=x^2\|x\|_{2}=\|\hat{x}\|_{2},并利用公式:

xTAx=xTUΛUTx=x^Λx^=i=1nλix^i2x^{\rm{T}} A x=x^{\rm{T}} U \Lambda U^{\rm{T}} x=\hat{x} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2}

我们可以将上面那个优化问题改写为:

maxx^Rnx^TΛx^=i=1nλix^i2 subject to x^22=1 \max _{\hat{x} \in \mathbb{R}^{n}} \hat{x}^{\rm{T}} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \quad \text { subject to }\|\hat{x}\|_{2}^{2}=1

然后,我们得到目标的上界为 λ1\lambda_{1}

x^TΛx^=i=1nλix^i2i=1nλ1x^i2=λ1 \hat{x}^{\rm{T}} \Lambda \hat{x}=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \leq \sum_{i=1}^{n} \lambda_{1} \hat{x}_{i}^{2}=\lambda_{1}

此外,设置 x^=[100]\hat{x}=\left[\begin{array}{c}1 \\ 0 \\ \vdots \\ 0\end{array}\right] 可让上述等式成立,这与设置 x=u1x=u_{1} 相对应。

# 四、矩阵微积分

# 4.1 梯度

假设 f:Rm×nRf: \mathbb{R}^{m \times n} \rightarrow \mathbb{R} 是将维度为 m×nm \times n 的矩阵 ARm×nA \in \mathbb{R}^{m \times n} 作为输入并返回实数值的函数。然后 ff 的梯度 (相对于 ARm×nA \in \mathbb{R}^{m \times n} ) 是偏导数矩阵,定义如下:

Af(A)Rm×n=[f(A)A11f(A)A12f(A)A1nf(A)A21f(A)A22f(A)A2nf(A)Am1f(A)Am2f(A)Amn] \nabla_{A} f(A) \in \mathbb{R}^{m \times n}=\left[\begin{array}{cccc} \frac{\partial f(A)}{\partial A_{11}} & \frac{\partial f(A)}{\partial A_{12}} & \cdots & \frac{\partial f(A)}{\partial A_{1 n}} \\ \frac{\partial f(A)}{\partial A_{21}} & \frac{\partial f(A)}{\partial A_{22}} & \cdots & \frac{\partial f(A)}{\partial A_{2 n}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f(A)}{\partial A_{m 1}} & \frac{\partial f(A)}{\partial A_{m 2}} & \cdots & \frac{\partial f(A)}{\partial A_{m n}} \end{array}\right]

即,m×nm \times n 矩阵:

(Af(A))ij=f(A)Aij \left(\nabla_{A} f(A)\right)_{i j}=\frac{\partial f(A)}{\partial A_{i j}}

请注意,Af(A)\nabla_{A} f(A) 的维度始终与 AA 的维度相同。从偏导数的等价性质可以得出:

  • x(f(x)+g(x))=xf(x)+xg(x)\nabla_{x}(f(x)+g(x))=\nabla_{x} f(x)+\nabla_{x} g(x)
  • 对于 tR,x(tf(x))=txf(x)t \in \mathbb{R}, \nabla_{x}(t f(x))=t \nabla_{x} f(x)

# 4.2 海森矩阵

假设 f:RnRf: \mathbb{R}^{n} \rightarrow \mathbb{R} 是一个函数,它接受 Rn\mathbb{R}^{n} 中的向量并返回实数。那么关于 xx 的海森矩阵,写做:x2f(x)\nabla_{x}^{2} f(x),简单地说,HHn×nn \times n 矩阵的偏导数:

x2f(x)Rn×n=[2f(x)x122f(x)x1x22f(x)x1xn2f(x)x2x12f(x)x222f(x)x2xn2f(x)xnx12f(x)xnx22f(x)xn2] \nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n}=\left[\begin{array}{cccc} \frac{\partial^{2} f(x)}{\partial x_{1}^{2}} & \frac{\partial^{2} f(x)}{\partial x_{1} \partial x_{2}} & \cdots & \frac{\partial^{2} f(x)}{\partial x_{1} \partial x_{n}} \\ \frac{\partial^{2} f(x)}{\partial x_{2} \partial x_{1}} & \frac{\partial^{2} f(x)}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f(x)}{\partial x_{2} \partial x_{n}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^{2} f(x)}{\partial x_{n} \partial x_{1}} & \frac{\partial^{2} f(x)}{\partial x_{n} \partial x_{2}} & \cdots & \frac{\partial^{2} f(x)}{\partial x_{n}^{2}} \end{array}\right]

换句话说, x2f(x)Rn×n\nabla_{x}^{2} f(x) \in \mathbb{R}^{n \times n}, 其:

(x2f(x))ij=2f(x)xixj \left(\nabla_{x}^{2} f(x)\right)_{i j}=\frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}

注意:海森矩阵通常是对称阵:

2f(x)xixj=2f(x)xjxi \frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{j}}=\frac{\partial^{2} f(x)}{\partial x_{j} \partial x_{i}}

与梯度相似,只有当 f(x)f(x) 为实值时才定义海森矩阵。

很自然地认为梯度与向量函数的一阶导数的相似,而海森矩阵与二阶导数的相似(我们使用的符号也暗示了这种关系)。这种直觉通常是正确的,但需要记住以下几个注意事项:首先,对于一个变量 f:RnRf: \mathbb{R}^{n} \rightarrow \mathbb{R} 的实值函数,它的基本定义:二阶导数是一阶导数的导数,即:

2f(x)x2=xxf(x) \frac{\partial^{2} f(x)}{\partial x^{2}}=\frac{\partial}{\partial x} \frac{\partial}{\partial x} f(x)

然而,对于向量的函数,函数的梯度是一个向量,我们不能取向量的梯度,即:

xxf(x)=x[f(x)x1f(x)x2f(x)xn] \nabla_{x} \nabla_{x} f(x)=\nabla_{x}\left[\begin{array}{c} \frac{\partial f(x)}{\partial x_{1}} \\ \frac{\partial f(x)}{\partial x_{2}} \\ \vdots \\ \frac{\partial f(x)}{\partial x_{n}} \end{array}\right]

上面这个表达式没有意义。因此,海森矩阵不是梯度的梯度。然而,下面这种情况却这几乎是正确的:如果我们看一下梯度 (xf(x))i=f(x)/xi\left(\nabla_{x} f(x)\right)_{i}=\partial f(x) / \partial x_{i} 的第 ii 个元素,并取关于 xx 的梯度我们得到:

xf(x)xi=[2f(x)xix12f(x)xix2f(x)xixn] \nabla_{x} \frac{\partial f(x)}{\partial x_{i}}=\left[\begin{array}{c} \frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{1}} \\ \frac{\partial^{2} f(x)}{\partial x_{i} \partial x_{2}} \\ \vdots \\ \frac{\partial f(x)}{\partial x_{i} \partial x_{n}} \end{array}\right]

这是海森矩阵第 ii 行(列),所以:

x2f(x)=[x(xf(x))1x(xf(x))2x(xf(x))n] \nabla_{x}^{2} f(x)=\left[\nabla_{x}\left(\nabla_{x} f(x)\right)_{1} \quad \nabla_{x}\left(\nabla_{x} f(x)\right)_{2} \quad \cdots \quad \nabla_{x}\left(\nabla_{x} f(x)\right)_{n}\right]

简单地说:由于 x2f(x)=x(xf(x))T\nabla_{x}^{2} f(x)=\nabla_{x}\left(\nabla_{x} f(x)\right)^{T},可以看出,这实际上是取 xf(x)\nabla_{x} f(x) 的每个元素的梯度,而不是整个向量的梯度。

# 4.3 行列式的梯度

现在我们考虑一种情况,找到一个函数相对于矩阵的梯度,也就是说,对于 ARn×nA \in \mathbb{R}^{n \times n},我们要找到 AA\nabla_{A}|A|。回想一下我们对行列式的讨论:

A=i=1n(1)i+jAijA\i,\j( for any j1,,n) |A|=\sum_{i=1}^{n}(-1)^{i+j} A_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } j \in 1, \ldots, n)

所以:

AkA=Aki=1n(1)i+jAijA\i,\j=(1)k+A\k,\=(adj(A))k \frac{\partial}{\partial A_{k \ell}}|A|=\frac{\partial}{\partial A_{k \ell}} \sum_{i=1}^{n}(-1)^{i+j} A_{i j}\left|A_{\backslash i, \backslash j}\right|=(-1)^{k+\ell}\left|A_{\backslash k, \backslash \ell}\right|=(\operatorname{adj}(A))_{\ell k}

从伴随矩阵的性质得出:

AA=(adj(A))T=AAT \nabla_{A}|A|=(\operatorname{adj}(A))^{\rm{T}}=|A| A^{-\rm{T}}

现在我们来考虑函数 f:S++nR,f(A)=logAf: \mathbb{S}_{++}^{n} \rightarrow \mathbb{R}, f(A)=\log |A|。注意,我们必须将 ff 的域限制为正定矩阵,因为这确保了 A>0|A|>0,因此 A|A| 的对数是实数。在这种情况下,我们可以使用链式法则来看看:

logAAij=logAAAAij=1AAAij \frac{\partial \log |A|}{\partial A_{i j}}=\frac{\partial \log |A|}{\partial|A|} \frac{\partial|A|}{\partial A_{i j}}=\frac{1}{|A|} \frac{\partial|A|}{\partial A_{i j}}

从这一点可以明显看出:

AlogA=1AAA=A1 \nabla_{A} \log |A|=\frac{1}{|A|} \nabla_{A}|A|=A^{-1}

我们可以在最后一个表达式中删除转置,因为 AA 是对称的。注意与单值情况的相似性,其中 /(x)logx=1/x\partial /(\partial x) \log x=1 / x

# 4.4 特征值优化

最后,我们使用矩阵演算通过特征值 / 特征向量分析的方式求解优化问题。考虑以下等式约束优化问题:

maxxRnxTAx subject to x22=1 \max _{x \in \mathbb{R}^{n}} x^{\rm{T}} A x \quad \text { subject to }\|x\|_{2}^{2}=1

对于对称矩阵 ASnA \in \mathbb{S}^{n},求解等式约束优化问题的标准方法是采用 拉格朗日 形式(一种包含等式约束的目标函数),在这种情况下,拉格朗日函数可由以下公式给出:

L(x,λ)=xTAxλxTx \mathcal{L}(x, \lambda)=x^{\rm{T}} A x-\lambda x^{\rm{T}} x

其中,λ\lambda 被称为与等式约束关联的拉格朗日乘子。可以确定,要使 xx^{*} 成为问题的最佳点,拉格朗日的梯度必须在 xx^{*} 处为零(必要非充分条件)。也就是说,

xL(x,λ)=x(xTAxλxTx)=2ATx2λx=0 \nabla_{x} \mathcal{L}(x, \lambda)=\nabla_{x}\left(x^{\rm{T}} A x-\lambda x^{\rm{T}} x\right)=2 A^{\rm{T}} x-2 \lambda x=0

最后求得线性方程 Ax=λxA x=\lambda x,这表明假设 xTx=1x^{\rm{T}} x=1,可能最大化(或最小化)xTAxx^{\rm{T}} A x 的唯一点是 AA 的特征向量。

# 五、参考资料

Last Updated: 2023-01-28 4:31:25