1. 矩阵基础

1.1 将矩阵视为数字的数组

矩阵(Matrix)是数组的矩形数组,形式为

A=[a11a12a1na21a22a2nam1am2amn] \bm{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}

这个矩阵有mm行(rows)nn列(columns),若是元素为实数,我们可以说ARm,n\bm{A} \in \mathbb{R}^{m,n};若是元素为复数,我们可以说ACm,n\bm{A} \in \mathbb{C}^{m,n}。矩阵的每一行都是行向量,每一列都是列向量。矩阵的转置(transposition)操作是将矩阵的行列交换

[A]ij=[A]ji[\bm{A}^\top]_{ij} = [\bm{A}]_{ji}

符号[A]ij[\bm{A}]_{ij}(有时候简写为Aij\bm{A}_{ij})代表矩阵第iijj列的元素。Rm,n\mathbb{R}^{m,n}中的零矩阵表示为0m,n\bm{0}_{m,n},或者直接简写为0\bm{0}

矩阵的数乘(multiplication by a scalar)被定义为矩阵中的每个元素都与标量相乘;矩阵的加法(两个矩阵大小相同)被定义为矩阵对应位置的元素相加。定义了这些运算后,我们可以将Rm,n\mathbb{R}^{m,n}看作一个向量空间

1.2 矩阵乘积

如果两个矩阵的尺寸符合,他们才可以相乘。i.e. ARm,n,BRn,p\bm{A} \in \mathbb{R}^{m,n}, \bm{B} \in \mathbb{R}^{n,p},矩阵的乘法ABRm,p\bm{AB} \in \mathbb{R}^{m,p}被定义为

[AB]ij=k=1nAikBkj[\bm{AB}]_{ij} = \sum^n_{k=1}\bm{A}_{ik}\bm{B}_{kj}

矩阵乘法是非交换的(non-commutative),这意味着一般情况下ABBA\bm{AB} \neq \bm{BA}

n×nn \times n单位矩阵(identity matrix)表达为In\bm{I}_n(也可以简写为I\bm{I}),它是对角(diagonal)元素为11其他元素为00的矩阵。单位矩阵满足AIn=A\bm{AI}_n=\bm{A}A\bm{A}nn行;InB=B\bm{I}_n\bm{B}=\bm{B}B\bm{B}nn

矩阵可以看成一组行向量的组合,也可以看成一组列向量的组合

A=[a1a2an],or A=[α1α2αm]\bm{A} = [ \bm{a}_1 \quad \bm{a}_2 \quad \cdots \quad \bm{a}_n ],\text{or } \bm{A} = \left[ \begin{array}{c} \bm{\alpha}_{1}^\top \\ \bm{\alpha}_{2}^\top \\ \vdots \\ \bm{\alpha}_{m}^\top \end{array} \right]

其中a1,,anRm\bm{a}_1,\cdots,\bm{a}_n \in \mathbb{R}^m表示A\bm{A}的列,即列向量α1,,αnRn\bm{\alpha}_1^\top,\cdots,\bm{\alpha}_n^\top \in \mathbb{R}^n表示A\bm{A}的行,即行向量

因此矩阵乘积可以写为

AB=A[b1bp]=[Ab1Abp] \bm{AB} = \bm{A} [ \bm{b}_1 \quad \cdots \quad \bm{b}_p ] = [ \bm{Ab}_1 \quad \cdots \quad \bm{Ab}_p ]

AB=[α1αm]B=[α1BαmB] \bm{AB} = \left[ \begin{array}{c} \bm{\alpha}_{1}^\top \\ \vdots \\ \bm{\alpha}_{m}^\top \end{array} \right] \bm{B} = \left[ \begin{array}{c} \bm{\alpha}_{1}^\top \bm{B}\\ \vdots \\ \bm{\alpha}_{m}^\top\bm{B} \end{array} \right]

最终矩阵的乘积可以看成多个并矢的和(参考4.7节

AB=i=1naiβi\bm{AB} = \sum_{i=1}^n \bm{a}_i \bm{\beta}_i^\top

矩阵的乘积定义同样使用矩阵与向量的乘积

Ab=k=1nakbk\bm{Ab} = \sum_{k=1}^n \bm{a}_k b_k

Ab\bm{Ab}的结果是一个向量,可以看成是对矩阵A\bm{A}中的列向量进行线性组合,系数为b\bm{b}中的元素。同样地,我们可以定义向量左乘矩阵

cA=k=1mckαk\bm{c}^\top \bm{A} = \sum_{k=1}^m c_k \bm{\alpha}_k^\top

定义C=AB\bm{C}=\bm{AB},根据矩阵与向量乘积的定义,C=[Ab1Abp]\bm{C}=[\bm{Ab}_1 \quad \cdots \quad \bm{Ab}_p]可以进一步拆分

C=[Ab1Abp]=[k=1nakb1kk=1nakbpk]\bm{C}=[\bm{Ab}_1 \quad \cdots \quad \bm{Ab}_p] = [ \sum_{k=1}^n \bm{a}_k b_{1k} \quad \cdots \quad \sum_{k=1}^n \bm{a}_k b_{pk}]

其中bijb_{ij}为向量bi\bm{b}_i的第jj个元素,因此矩阵C\bm{C}的每一列都可以看成是对A\bm{A}的列向量进行线性组合得到的。同样地,C=[α1BαmB]\bm{C}=[\bm{\alpha}_{1}^\top \bm{B} \quad \cdots \quad \bm{\alpha}_{m}^\top\bm{B} ]^\top可以进一步拆分

C=[α1BαmB]=[k=1mα1kβkk=1mαmkβk] \bm{C} = \left[ \begin{array}{c} \bm{\alpha}_{1}^\top \bm{B}\\ \vdots \\ \bm{\alpha}_{m}^\top\bm{B} \end{array} \right] = \left[ \begin{array}{c} \sum_{k=1}^m \alpha_{1k} \bm{\beta}_k^\top\\ \vdots \\ \sum_{k=1}^m \alpha_{mk} \bm{\beta}_k^\top \end{array} \right]

其中αij\alpha_{ij}为向量αi\bm{\alpha}_{i}^\top的第jj个元素,因此矩阵C\bm{C}的每一行都可以看成是对B\bm{B}的行向量进行线性组合得到的

矩阵乘积的转置满足

(A1A2Ap)=ApA2A1( \bm{A}_1 \bm{A}_2 \cdots \bm{A}_p )^\top = \bm{A}_p^\top \cdots \bm{A}_2^\top \bm{A}_1^\top

1.3 块矩阵乘积

只要保证块(block)大小一致,矩阵代数可以推广到块。首先考虑矩阵A\bm{A}与向量x\bm{x}的乘积,其中矩阵和向量都是分块的

A=[A1A2],x=[x1x2]Ax=A1x1+A2x2\begin{gather*} \bm{A} = [ \bm{A}_1 \quad \bm{A}_2 ],\bm{x} = \left[ \begin{array}{c} \bm{x}_1 \\ \bm{x}_2 \end{array} \right] \\ \bm{Ax}= \bm{A}_1\bm{x}_1 + \bm{A}_2\bm{x}_2 \end{gather*}

从符号上看这就像是行向量与列向量的内积。矩阵与矩阵相乘也可以进行类似展开

AB=[A1A2][B1B2]=A1B1+A2B2 \bm{AB} = [ \bm{A}_1 \quad \bm{A}_2] \left[ \begin{array}{c} \bm{B}_1 \\ \bm{B}_2 \end{array} \right] = \bm{A}_1\bm{B}_1 + \bm{A}_2\bm{B}_2

1.4 矩阵空间和内积

对于向量空间Rm,n\mathbb{R}^{m,n},可以赋予一个标准内积

A,B=trace(AB)\langle \bm{A},\bm{B} \rangle = \text{trace} ( \bm{A}^\top \bm{B} )

其中trace(X)\text{trace}(\bm{X})是方阵的迹(trace),定义为方阵主对角线上元素的和。这个内积引出了所谓的Frobenius范数

A,A=traceAA=AFijaij2\sqrt{ \langle \bm{A} , \bm{A} \rangle} = \sqrt{ \text{trace}\bm{AA}^\top} = \lVert\bm{A}\rVert_F \coloneqq \sqrt{\sum_{ij} a_{ij}^2}

我们的选择与向量情况下的选择是一致的。实际上,上述内积表示的是通过将矩阵A,B\bm{A},\bm{B}的所有列依次首尾相连展开得到的两个向量之间的标量积;因此,Frobenius范数就是矩阵向量化形式的欧几里得范数。

迹运算符是一个线性运算符,同时还有许多性质

traceA=traceAtraceAB=traceBA\begin{gather*} \text{trace} \bm{A} = \text{trace} \bm{A}^\top \\ \text{trace} \bm{AB} = \text{trace} \bm{BA} \end{gather*}

2. 矩阵和线性映射

2.1 矩阵,线性和仿射映射

我们可以将矩阵解释为从输入空间到输出空间的作用的线性映射(向量值函数,即输出为向量)或者操作。我们回顾一下线性映射:当任意点x,zX\bm{x},\bm{z} \in \mathcal{X}和任意标量λ,μY\lambda,\mu \in \mathcal{Y}满足f(λx+μz)=λf(x)+μf(z)f( \lambda \bm{x} + \mu \bm{z} ) = \lambda f(\bm{x}) + \mu f(\bm{z})那么映射f:XYf:\mathcal{X}\rightarrow \mathcal{Y}为线性。任意线性映射f:RnRmf:\mathbb{R}^n\rightarrow \mathbb{R}^m都可以用一个矩阵ARm,n\bm{A}\in\mathbb{R}^{m,n}表示

3.3

放射映射就是简单地在线性方程上加一个常数项,因此任意放射映射f:RnRmf:\mathbb{R}^n\rightarrow \mathbb{R}^m都可以表示为

f(x)=Ax+bf( \bm{x} ) = \bm{A}\bm{x} + \bm{b}

其中ARm,n,bRm\bm{A} \in \mathbb{R}^{m,n},\bm{b} \in \mathbb{R}^{m}

将向量的每个元素按某个标量因子 进行缩放的线性映射,可以用对角矩阵来描述

2.2 非线性方程的近似

一个非线性映射(在该点可微)在给定点x0\bm{x}_0的邻域内(neighborhood)可以被近似为一个仿射映射

f(x)=f(x0)+Jf(x0)(xx0+o(xx0))f ( \bm{x} ) = f ( \bm{x}_0 ) + J_f ( \bm{x}_0 ) ( \bm{x}-\bm{x}_0 + o ( \lVert \bm{x} - \bm{x}_0 \rVert ) )

xx0\bm{x} \rightarrow \bm{x}_0o(xx0)o ( \lVert \bm{x} - \bm{x}_0 \rVert )比一阶(first order)收敛更快,JfJ_f是雅可比矩阵,定义为

Jf(x0)[f1x1f1xnfmx1fmxn]x=x0 J_f ( \bm{x}_0 ) \coloneqq \begin{bmatrix} \frac{\partial f_1 }{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m }{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}_{ \bm{x} = \bm{x}_0 }

因此对于接近x0\bm{x}_0x\bm{x},变分δf(x)f(x)f(x0)\delta_f ( \bm{x} ) \coloneqq f ( \bm{x} ) - f ( \bm{x}_0 )可以用雅可比矩阵定义的线性映射来一阶近似

一个在x0\bm{x}_0处二阶可微的标量值函数(即输出为标量)可以使用梯度和二阶导数矩阵(海森矩阵)进行二阶局部近似

ff(x0)+Δf(x0)(xx0)+12(xx0)Δ2f(x0)(xx0)f \approx f ( \bm{x}_0 ) + \Delta f ( \bm{x}_0 )^\top ( \bm{x} -\bm{x}_0 ) + \frac{1}{2} ( \bm{x} -\bm{x}_0 )^\top \Delta^2 f ( \bm{x}_0 ) ( \bm{x} -\bm{x}_0 )

其中Δ2f(x0)\Delta^2 f ( \bm{x}_0 )是海森矩阵(Hessian)定义为

Δ2f(x0)[2fx122fx1xn2fxnx12fxn2]x=x0 \Delta^2 f ( \bm{x}_0 ) \coloneqq \begin{bmatrix} \frac{\partial ^2 f}{\partial x_1^2} & \cdots & \frac{\partial ^2 f}{\partial x_1 \partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial ^2 f}{\partial x_n \partial x_1} & \cdots & \frac{\partial ^2 f}{\partial x_n^2} \end{bmatrix}_{\bm{x}= \bm{x}_0}

在这种情况下,ff在局部通过由Hessian矩阵定义的二次函数进行近似

2.3 值域,秩和零空间

考虑一个矩阵A\bm{A}对它的列向量进行线性组合,得到的集合称为A\bm{A}的值域(range)或者为列空间,被写为R(A)\mathcal{R} ( \bm{A} )

R(A)={AxxRn}\mathcal{R} ( \bm{A} ) = \{ \bm{A} \bm{x} \mid \bm{x} \in \mathbb{R}^n \}

列空间是一个子空间。R(A)\mathcal{R} ( \bm{A} )的维数称为A\bm{A}的秩(rank),记作rank(A)\text{rank}( \bm{A} )根据定义,秩表示A\bm{A}线性无关的列数量,根据证明秩也等于线性无关的行数量。因此矩阵的秩等于它转置的秩

rank(A)=rank(A)\text{rank} ( \bm{A} ) = \text{rank} ( \bm{A}^\top )

证明

假设ARm,n\bm{A} \in \mathbb{R}^{m,n}的列秩为cc,行秩为rr,尝试将它拆分为BC\bm{BC}两个矩阵,其中B\bm{B}矩阵由A\bm{A}中线性独立的列向量组成,因为A\bm{A}的每一列都可以通过B\bm{B}中的列向量线性组合得到,根据矩阵乘积的定义得知拆分是合理的。此时BRm,c,CRc,n\bm{B}\in\mathbb{R}^{m,c},\bm{C}\in\mathbb{R}^{c,n}。同时A\bm{A}的每一行都可以看成由C\bm{C}矩阵中的行向量线性组合得到的,因此A\bm{A}的行空间维数不大于C\bm{C}的行数,i.e. rcr \leq c

用同样的方式对A\bm{A}的转置进行推导,可以得到A\bm{A}转置的行空间维数cc不大于列空间维数rr,i.e. crc \leq r。将两个结论对比只能取r=cr=c。行秩等于列秩得到了证明

因此我们可以提出一个约束

0rank(A)min(m,n)0 \leq \text{rank} ( \bm{A} ) \leq \min ( m,n )

矩阵A\bm{A}的零空间(nullspace)是输入空间中被映射到0\bm{0}的向量组成的集合,记作N(A)\mathcal{N} ( \bm{A} )

N(A)={xAx=0}\mathcal{N} ( \bm{A} ) = \{ \bm{x} \mid \bm{A} \bm{x} = \bm{0} \}

零空间也是一个子空间

2.4 线性代数的基本理论

线性代数基本定理建立了矩阵的零空间与其转置的值域之间的重要联系。首先我们可以发现A\bm{A}^\top值域中的任意向量都和A\bm{A}零空间的任意向量正交,i.e. xz=0,xR(A),zN(A)\bm{x}^\top \bm{z} = 0,\forall \bm{x} \in \mathcal{R} ( \bm{A}^\top ), \forall \bm{z}\in \mathcal{N} ( \bm{A} )。根据值域的定义,R(A)\mathcal{R} ( \bm{A}^\top )中的所有向量都可以写为A\bm{A}中的行向量的线性组合,因此

xz=(Ay)z=yAz=(yA)z=0\bm{x}^\top \bm{z} = ( \bm{A}^\top \bm{y} )^\top \bm{z} = \bm{y}^\top \bm{A} \bm{z} = ( \bm{y}^\top \bm{A} ) \bm{z} = 0

因此R(A)\mathcal{R} ( \bm{A}^\top )N(A)\mathcal{N} ( \bm{A} )是正交子空间,i.e. N(A)R(A)\mathcal{N}(\bm{A}) \perp \mathcal{R}(\bm{A}^\top)或者写为N(A)=R(A)\mathcal{N}(\bm{A}) = \mathcal{R}(\bm{A}^\top)^\perp。回顾Section 2.2.3,子空间和其正交补的直和等于整个空间

Rn=N(A)N(A)=N(A)R(A)\mathbb{R}^n = \mathcal{N}(\bm{A}) \oplus \mathcal{N}(\bm{A})^\perp = \mathcal{N}(\bm{A}) \oplus \mathcal{R}(\bm{A}^\top)

同样的我们可以证明zx=0,xR(A),zN(A)\bm{z}^\top \bm{x} = 0,\forall \bm{x} \in \mathcal{R} (\bm{A}), \forall \bm{z}\in \mathcal{N} (\bm{A}^\top),因此N(A)R(A)\mathcal{N}(\bm{A}^\top) \perp \mathcal{R}(\bm{A}),输出空间可以分解为

Rm=R(A)R(A)=R(A)N(A)\mathbb{R}^m = \mathcal{R}(\bm{A}) \oplus \mathcal{R}(\bm{A})^\perp = \mathcal{R}(\bm{A}) \oplus \mathcal{N}(\bm{A}^\top)

定理3.1(线性代数基本定理):对于任意矩阵ARm,n\bm{A} \in \mathbb{R}^{m,n},有N(A)R(A),N(A)R(A)\mathcal{N}(\bm{A}^\top) \perp \mathcal{R}(\bm{A}),\mathcal{N}(\bm{A}) \perp \mathcal{R}(\bm{A}^\top),因此

R(A)N(A)=RnR(A)N(A)=Rm\begin{gather*} \mathcal{R}(\bm{A}^\top) \oplus \mathcal{N}(\bm{A}) = \mathbb{R}^n \\ \mathcal{R}(\bm{A}) \oplus \mathcal{N}(\bm{A}^\top) = \mathbb{R}^m \end{gather*}

并且

dimN(A)+rankA=ndimN(A)+rankA=m\begin{gather*} \dim\mathcal{N}(\bm{A}) + \text{rank}{A} = n \\ \dim\mathcal{N}(\bm{A}^\top) + \text{rank}{A} = m \end{gather*}

因此,我们可以将任意向量x\bm{x}分解为两个互相正交的向量的和,一个在A\bm{A}^\top的值域中,另一个在A\bm{A}的零空间中:

x=Ay+z,zN(A)\bm{x} = \bm{A}^\top\bm{y} + \bm{z},\bm{z} \in \mathcal{N}(\bm{A})

类似地,我们可以将任意向量x\bm{x}分解为两个互相正交的向量的和,一个在A\bm{A}的值域中,另一个在A\bm{A}^\top的零空间中:

x=Aϕ+ζ,ζN(A)\bm{x} = \bm{A}\bm{\phi } + \bm{\zeta},\bm{\zeta} \in \mathcal{N}(\bm{A}^\top)

3.4

3. 行列式、特征值和特征向量

3.1 矩阵对直线的作用

我们首先讨论,一个线性映射A\bm{A}如何作用于通过原点的直线(一维子空间)。考虑一个非零向量uRn\bm{u}\in \mathbb{R}^n以及从原点出发原点并经过u\bm{u}的直线,即集合L={xx=αu,αR}\mathcal{L} = \{ \bm{x}\mid \bm{x} = \alpha\bm{u}, \alpha \in \mathbb{R}\}。当矩阵作用于属于直线上的向量时,它会将该点旋转(rotate)一个固定角度θu\theta_u,并将它的长度按固定量γu\gamma_u放大或缩小(shrink/amplify)。旋转角度θu\theta_u和长度增益γu\gamma_u对于直线上的每个点都是恒定值

y2=Ax2=αAu2=Au2u2αu=Au2u2x2\lVert \bm{y} \rVert_2 = \lVert \bm{Ax} \rVert_2 = \lvert \alpha \rvert \lVert \bm{Au} \rVert_2 = \frac{\lVert\bm{Au} \rVert_2}{\lVert \bm{u} \rVert_2} \lvert \alpha \rvert \lVert \bm{u} \rVert = \frac{\lVert \bm{Au}\rVert_2}{\lVert \bm{u} \rVert_2} \lVert \bm{x} \rVert_2

长度增益为γu=Au2u2\gamma_u=\tfrac{\lVert \bm{Au}\rVert_2}{\lVert \bm{u} \rVert_2},对于旋转角度

cosθu=yxx2y2=xAxx2y2=α2uAuγuα2u22=uAuγuu22\cos \theta_u = \frac{\bm{y}^\top \bm{x}}{\lVert \bm{x} \rVert_2 \lVert \bm{y} \rVert_2} = \frac{\bm{x}^\top \bm{A}^\top \bm{x}}{\lVert \bm{x} \rVert_2 \lVert \bm{y} \rVert_2} = \frac{\alpha^2 \bm{u}^\top \bm{A}^\top \bm{u}}{\gamma_u \alpha^2 \lVert \bm{u} \rVert^2_2} = \frac{ \bm{u}^\top \bm{A}^\top \bm{u}}{\gamma_u \lVert \bm{u} \rVert^2_2}

这二者都仅仅取决于直线的方向u\bm{u},而不取决于直线上的实际点

x2\lVert \bm{x} \rVert_2保持不变且方向u\bm{u}扫描所有可能的方向时,x\bm{x}会沿圆周移动,而图中显示了相应的y\bm{y}的轨迹

3.5

通过数值实验可以发现,在这个例子中存在两个输入方向u(1)\bm{u}(1)u(2)\bm{u}(2),它们在由A\bm{A}定义的映射下是角度不变的即角度θu\theta_u为零(或 ±180\pm 180^\circ),此时A\bm{A}在这些直线上表现为标量乘法

3.6

3.2 行列式和单位立方体的变化

对于一个2×22 \times 2的矩阵

A=[a11a12a21a22] \bm{A} = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix}

这个矩阵的行列式(determinant)被定义为

detAa11a22a12a21\det \bm{A} \coloneqq a_{11}a_{22} - a_{12}a_{21}

要求解一般矩阵的行列式,首先要定义标量aa的行列式deta=a\det a = a,然后应用拉普拉斯行列式展开(Laplace’s determinant expansion)来计算

det(A)=j=1n(1)i+jaijdetA(i,j)\det (\bm{A}) = \sum_{j=1}^n(-1)^{i+j}a_{ij}\det \bm{A}_{(i,j)}

其中ii是任意一行,A(i,j)\bm{A}_{(i,j)}表示通过删除A\bm{A}的第ii行和第jj列得到的一个(n1)×(n1)(n−1) \times (n−1)子矩阵

假设我们将线性映射y=Ax\bm{y} = \bm{Ax}应用于R2\mathbb{R}^2中单位正方形顶点的四个向量,变换后的点构成一个平行四边形的顶点

3.6

单位正方形的面积为一。通过验证可以知道变换后的四边形(即平行四边形)的面积等于矩阵行列式的绝对值。可以证明,在一般维数nn中,矩阵A\bm{A}的行列式的绝对值仍然描述了单位超立方体通过A\bm{A}变换得到的平行多面体的体积

行列式是定义在方阵上的实值函数,矩阵的行列式有以下性质

  1. 交换矩阵的两行或者两列会改变行列式的符号
  2. 行列式在矩阵的每一行/列上都是线性的
  3. 单位矩阵的行列式为1

当变换后的立方体体积为零时,也就是行列式为零时,此时矩阵为奇异矩阵(singular)。此时矩阵某一行(或某一列)是另一行(或另一列)的倍数,列(和行)不再是线性无关的,并且矩阵具有非平凡的零空间(零空间不只有原点)。这意味着存在输入空间中的方向,沿着这些方向所有输入向量都被A\bm{A}映射为零,可以证明

ARn,n is singular detA=0N(A) is not equal to {0}.\bm{A} \in \mathbb{R}^{n,n}\text{ is singular }\Leftrightarrow\det \bm{A}=0\boldsymbol{\Leftrightarrow}\mathcal{N}(\bm{A})\text{ is not equal to }\{0\}.

对于任意方阵A,BRn,n\bm{A},\bm{B}\in \mathbb{R}^{n,n}有如下性质

detA=detAdetAB=detBA=detAdetBdetαA=αndetA \begin{gather*} \det \bm{A} = \det \bm{A}^\top \\ \det \bm{AB} = \det \bm{BA} = \det \bm{A} \det \bm{B} \\ \det \alpha\bm{A} = \alpha^n\det \bm{A} \end{gather*}

对于分块上三角(upper block-triangular)矩阵

X=[X11X12X21X22] \bm{X} =\begin{bmatrix} \bm{X}_{11} & \bm{X}_{12} \\ \bm{X}_{21} & \bm{X}_{22} \end{bmatrix}

有如下结论

detX=detX11+detX22\det \bm{X} = \det \bm{X}_{11} + \det \bm{X}_{22}

对于分块下三角(lower block-triangular)矩阵也有类似结论

3.3 矩阵的逆

对于一个非奇异矩阵A\bm{A},我们定义它的逆矩阵(inverse matrix)A1\bm{A}^{-1}定义为满足以下条件的唯一矩阵

AA1=A1A=In\bm{AA}^{-1} = \bm{A}^{-1}\bm{A} = \bm{I}_n

矩阵求逆有以下性质

(AB)1=B1A1(A)1=(A1)detA=detA=1detA1 \begin{gather*} (\bm{AB})^{-1}=\bm{B}^{-1}\bm{A}^{-1} \\ (\bm{A}^\top)^{-1} = (\bm{A}^{-1})^\top \\ \det \bm{A} = \det \bm{A}^\top = \frac{1}{\det \bm{A}^{-1}} \end{gather*}

对于非方阵或是奇异方阵不存在常规意义的逆矩阵,但是可以定义广义逆矩阵(generalized inverse)/伪逆矩阵(pseudoinverse)。对于一般矩阵ARm,n\bm{A}\in \mathbb{R}^{m,n},如果满足

AliA=In,mnAAri=Im,nm\begin{gather*} \bm{A}^{li}\bm{A} = \bm{I}_n,m \geq n \\ \bm{A}\bm{A}^{ri} = \bm{I}_m,n \geq m \\ \end{gather*}

Ali\bm{A}^{li}被称为A\bm{A}的左逆,Ari\bm{A}^{ri}被称为A\bm{A}的右逆

如果AApiA=A\bm{AA}^{pi} \bm{A} = \bm{A},则称矩阵Api\bm{A}^{pi}A\bm{A}的伪逆。左逆、右逆和伪逆将在Chapter 5中进一步讨论

3.4 相似矩阵

如果存在一个非奇异矩阵PRn,n\bm{P}\in \mathbb{R}^{n,n},使得两个矩阵A,BRn,n\bm{A},\bm{B}\in \mathbb{R}^{n,n}满足如下条件,则称它们是相似(similar)的

B=P1AP\bm{B} = \bm{P}^{-1}\bm{AP}

相似矩阵是同一线性映射在不同空间基的不同表现。考虑原空间的线性映射

y=Ax\bm{y} = \bm{Ax}

由于P\bm{P}是非奇异的,其列向量是线性无关的,因此它们代表了Rn,n\mathbb{R}^{n,n}的一组基。向量y\bm{y}x\bm{x}可以在该基下表示为P\bm{P}列向量的线性组合

Ay~=yAx~=x \begin{gather*} \bm{A}\tilde{\bm{y}} = \bm{y} \\ \bm{A}\tilde{\bm{x}} = \bm{x} \end{gather*}

线性映射在新基下表达为

y=Axy~=P1APx~=Bx~\bm{y} = \bm{Ax} \quad \Rightarrow \quad \tilde{\bm{y}}= \bm{P}^{-1}\bm{AP} \tilde{\bm{x}} = \bm{B} \tilde{\bm{x}}

3.5 特征向量和特征值

我们前面在研究矩阵对直线的作用时提到过,矩阵会对对直线上的点(向量)进行旋转和放缩,我们现在将视角从Rn\mathbb{R}^n扩大到Cn\mathbb{C}^n。特征向量(eigenvector)只是Cn\mathbb{C}^n中在矩阵作用下角度不变的方向,特征值(eigenvalue)是对点放缩的系数。更准确地说,如果存在λC\lambda \in \mathbb{C}是矩阵ARn,n\bm{A} \in \mathbb{R}^{n,n}的特征值,且uCn\bm{u} \in \mathbb{C}^n是对应的特征向量,则下式成立

Au=λu,u0\bm{Au} = \lambda \bm{u}, \bm{u} \neq \bm{0}

或者等价形式

(λInA)u=0,u0(\lambda \bm{I}_n - \bm{A}) \bm{u} = \bm{0}, \bm{u} \neq \bm{0}

方程表明为了使(λ,u)(\lambda , \bm{u})成为特征值/特征向量对,必须满足以下条件:

  1. λ\lambda的取值要使矩阵λInA\lambda \bm{I}_n - \bm{A}奇异
  2. u\bm{u}位于λInA\lambda \bm{I}_n - \bm{A}的零空间中

由于λInA\lambda \bm{I}_n - \bm{A}当且仅当其行列式为零时是奇异的,因此特征值可以很容易地被描述为满足下述方程的实数或复数

det(λInA)=0\det (\lambda \bm{I}_n - \bm{A}) = 0

p(λ)det(λInA)p(\lambda ) \coloneqq \det (\lambda \bm{I}_n - \bm{A})是关于λ\lambdann次多项式,被称为矩阵A\bm{A}的特征多项式(characteristic polynomial)。因此,矩阵的特征值就是特征多项式的根。其中一些特征值确实可以是特征多项式的“重根”。此外,一些特征值可能是复数,具有非零的虚部,在这种情况下,它们成共轭复数对出现。下列定理成立

定理3.2(代数学基本定理):任意矩阵ARn,n\bm{A} \in \mathbb{R}^{n,n}都有nn个特征值,按重数计算。

我们称不考虑重数的特征值为互异特征值(distinct eigenvalues),每个互异特征值都有一个对应的代数重数(algebraic multiplicity)μi1\mu_i \geq 1,定义为该特征值作为特征多项式根出现的次数。因此i=1kμi=n\sum_{i=1}^{k} \mu_i = n

对于每个互异特征值都对应一个由与该特征值相关的特征向量组成的整个子空间ViN(λiInA)\mathcal{V}_i \coloneqq \mathcal{N}(\lambda_i \bm{I}_n − \bm{A}),称为特征空间。属于不同特征空间的特征向量是线性无关的

定理3.3:设λi\lambda_i是矩阵A\bm{A}的互异特征值。设Vi=N(λiInA)\mathcal{V}_i = \mathcal{N}(\lambda_i \bm{I}_n − \bm{A}),并且令u(i)\bm{u}^{(i)}为任意非零向量,使得u(i)Vi\bm{u}^{(i)} \in \mathcal{V}_i。则这些u(i)\bm{u}^{(i)}线性无关

证明

首先证明两个向量是线性无关的

假设最初u(i)Vj,ji\bm{u}^{(i)} \in \mathcal{V}_j,j \neq i。这意味着Au(i)=λju(i)=λiu(i)\bm{Au}^{(i)} = \lambda _j \bm{u}^{(i)} = \lambda _i \bm{u}^{(i)},因此λi=λj\lambda_i = \lambda_j,但这是不可能的,因为这些λ\lambda是互异的。假设矛盾,所以任意两个向量是线性无关的

但是向量组中任意两个向量线性无关,向量组不一定线性无关,因此还需要证明整个特征向量组是线性无关的

为了反证法的目的,假设存在一个u(i)\bm{u}^{(i)}(例如不失一般性,取第一个,u(1)\bm{u}^{(1)}可以表示为其他特征向量的线性组合:

u(1)=i=2kαiu(i)\bm{u}^{(1)} = \sum_{i=2}^{k} \alpha_i \bm{u}^{(i)}

然后我们有两个恒等式

λ1u(1)=i=2kαiλ1u(i)λ1u(1)=Au(1)=i=2kαiAu(i)=i=2kαiλiu(i) \begin{gather*} \lambda_1\bm{u}^{(1)} = \sum_{i=2}^{k} \alpha_i \lambda_1\bm{u}^{(i)} \\ \lambda_1\bm{u}^{(1)} = \bm{A}\bm{u}^{(1)} = \sum_{i=2}^{k} \alpha_i \bm{A}\bm{u}^{(i)} = \sum_{i=2}^{k} \alpha_i \lambda_i\bm{u}^{(i)} \end{gather*}

比较两个方程可以得到

i=2kαi(λiλ1)u(i)=0\sum_{i=2}^{k} \alpha_i (\lambda_i- \lambda_1)\bm{u}^{(i)} = \bm{0}

其中λiλ10\lambda_i - \lambda _1 \neq 0,因为根据假设,特征值是互异的。这意味着i=2kαiu(i)\sum_{i=2}^{k}\alpha _i \bm{u}^{(i)}为零,所以u(2),,u(k)\bm{u}^{(2)},\cdots , \bm{u}^{(k)}是线性相关的。因此至少有一个向量,比如说不失一般性,u(2)\bm{u}^{(2)},可以表示为其他向量u(3),,u(k)\bm{u}^{(3)},\cdots , \bm{u}^{(k)}的线性组合。在此基础上,通过重复最初的推理,我们也会得出u(3),,u(k)\bm{u}^{(3)},\cdots , \bm{u}^{(k)}是线性相关的。以此类推,我们最终会得出u(k1),u(k)\bm{u}^{(k-1)}, \bm{u}^{(k)}是线性相关的结论。根据我们前面的证明,这是不可能的。因此,我们得出假设与事实矛盾,从而该命题得证

这部分将整个特征向量组是线性无关的证明推导成任意两个向量是线性无关的

得益于特征值和特征向量,一个方阵可以被表示为与一个分块三角矩阵相似,即具有以下形式的矩阵

[A11A12A1p0A22A2p00App]\begin{bmatrix} \bm{A}_{11} & \bm{A}_{12} & \cdots & \bm{A}_{1p} \\ \bm{0} & \bm{A}_{22} & \cdots & \bm{A}_{2p} \\ \vdots & \ddots & \ddots & \vdots \\ \bm{0} & \cdots & \bm{0} & \bm{A}_{pp} \\ \end{bmatrix}

其中对角线上的矩阵为方阵

viv_iVi\mathcal{V}_i的维数,并设一个矩阵U(i)=[u1(i)uvi(i)]\bm{U}^{(i)}=[\bm{u}_1^{(i)}\quad \dots \quad \bm{u}_{v_i}^{(i)}],其列为Vi\mathcal{V}_i的一组基。在不失一般性的情况下,该矩阵可以选择为列正交归一的矩阵。实际上,可以先选任意一组基,并对该基应用Gram–Schmidt正交化过程(见Section2.3.3),即可得到标准正交基。通过这种选择,有U(i)U(i)=Ivi\bm{U}^{(i)\top} \bm{U}^{(i)} = \bm{I}_{v_i}。进一步设Q(i)\bm{Q}^{(i)}为一个n×(nvi)n \times (n − v_i)矩阵,其列标准正交并张成与R(U(i))\mathcal{R}(\bm{U}^{(i)}) 正交的子空间

推论3.1:任意矩阵ARn,n\bm{A} \in \mathbb{R}^{n,n}都与一个分块三角矩阵相似,该矩阵在对角线上具有块λiIvi\lambda _i \bm{I}_{v_i},其中λi\lambda _iA\bm{A}的一个互异特征值,viv_i是对应特征空间的维数

证明

符合矩阵Pi[U(i)Q(i)]\bm{P}_i \coloneqq [\bm{U}^{(i)} \quad \bm{Q}^{(i)}]是一个正交矩阵(Pi\bm{P}_i的列向量形成一个覆盖整个Cn\mathbb{C}^n空间的标准正交(orthonormal)基,参考Section3.4.64.6节),因此它是可逆(invertible)的,并且Pi1=Pi\bm{P}_i^{-1} = \bm{P}_i^\top,参考Section3.4.64.6节。因为AU(i)=λiU(i)\bm{AU}^{(i)}=\lambda_i \bm{U}^{(i)},可以得到

U(i)AU(i)=λiU(i)U(i)=λiIviQ(i)AU(i)=λiQ(i)U(i)=0\begin{gather*} \bm{U}^{(i)\top}\bm{AU}^{(i)}=\lambda_i \bm{U}^{(i)\top}\bm{U}^{(i)} = \lambda_i \bm{I}_{v_i}\\ \bm{Q}^{(i)\top}\bm{AU}^{(i)}=\lambda_i \bm{Q}^{(i)\top}\bm{U}^{(i)} = \bm{0} \end{gather*}

因此可以得到

Pi1APi=PiAPi=[λiIviU(i)AQ(i)0Q(i)AU(i)] \bm{P}_i^{-1} \bm{A} \bm{P}_i = \bm{P}_i^\top \bm{A} \bm{P}_i = \begin{bmatrix} \lambda_i \bm{I}_{v_i} & \bm{U}^{(i)\top}\bm{AQ}^{(i)} \\ \bm{0} & \bm{Q}^{(i)\top}\bm{AU}^{(i)} \end{bmatrix}

证明完成

由于相似矩阵具有相同的特征值集合(包括重数),并且分块上三角矩阵的特征值集合是对角块特征值的并集,观察上式可以发现左上角矩阵特征值的重数为viv_i,因此总体的特征值重数μi\mu_i必须总是满足viμiv_i \leq \mu_i,最终可以得出结论:互异特征值对应的特征空间维数总是小于等于特征值重数

3.6 可对角化矩阵

在某些假设下,ARn,n\bm{A} \in \mathbb{R} ^{n,n}与一个对角矩阵相似,即A\bm{A}是可对角化的(diagonalizable)。(并非所有方阵都是可对角化的。但是可以证明,总存在一个任意小的加法扰动使其可对角化)

定理3.4: 设λi\lambda_i是矩阵ARn,n\bm{A} \in \mathbb{R} ^{n,n}的互异特征值,设μi\mu _i为对应的代数重数,定义Vi=N(λiInA)\mathcal{V}_i = \mathcal{N}(\lambda_i \bm{I}_n − \bm{A}),定义U(i)=[u1(i)uvi(i)]\bm{U}^{(i)}=[\bm{u}_1^{(i)}\quad \dots \quad \bm{u}_{v_i}^{(i)}]的列为Vi\mathcal{V}_i的一组基,那么vidimViv_i \coloneqq \dim \mathcal{V}_i,可以得到viμiv_i \leq \mu_i。如果vi=μiv_i = \mu_i那么U=[U(1)U(k)]\bm{U}=[\bm{U}^{(1)}\quad \dots \quad \bm{U}^{(k)}]是可逆的,并且A=UΛU1\bm{A} = \bm{U} \bm{\Lambda} \bm{U}^{-1},其中

Λ=[λ1Iμ1000λ2Iμ2000λkIμk] \Lambda = \begin{bmatrix} \lambda _1 \bm{I}_{\mu _1} & \bm{0} & \cdots & \bm{0} \\ \bm{0} & \lambda _2 \bm{I}_{\mu _2} & \cdots & \bm{0} \\ \vdots & \vdots & \ddots & \vdots \\ \bm{0} & \cdots & \bm{0} & \lambda _k \bm{I}_{\mu _k} \end{bmatrix}

证明

vidimViv_i \coloneqq \dim \mathcal{V}_i已经在前文证明了。现在令vi=μiv_i = \mu_i。因为向量u1(i),,uvi(i)\bm{u}_1^{(i)},\dots,\bm{u}_{v_i}^{(i)}是特征空间的基,因此它们是线性无关的。此外,根据定理3.3,不同特征值对应的特征空间中的基是线性无关的。这意味着整个集合{uj(i)}i=1,,k;j=1,,vi\{ \bm{u}_j^{(i)} \}_{i=1,\dots,k;j=1,\dots,v_i}是线性无关的。那么矩阵U\bm{U}是满秩的。由于对所有iivi=μiv_i = \mu_i,那么i=1kvi=i=1kμi\sum_{i=1}^{k}v_i =\sum_{i=1}^{k}\mu_i,此时URn,n\bm{U} \in \mathbb{R}^{n,n}是方阵,且是满秩故而可逆

对于每个i=1,,ki = 1,\dots, k,我们有Auj(i)=λiuj(i)\bm{Au}_j^{(i)}=\lambda _i \bm{u}_j^{(i)},可以将同一个特征值下的等式写进一个矩阵

AUj(i)=λiuj(i)\bm{AU}_j^{(i)}=\lambda _i \bm{u}_j^{(i)}

再将不同特征值的等式写进一个矩阵

AU=UΛ\bm{AU} = \bm{U \Lambda }

将等式两边同时右乘U1\bm{U}^{-1},可得到所证

4. 具有特殊结构和性质的矩阵

4.1 方阵

方阵(square matrix)是指行数和列数相同的矩阵

4.2 稀疏矩阵

非正式地说,如果矩阵中的大多数元素为零,则称其为稀疏矩阵(sparse matrix)。在处理稀疏矩阵时,可以获得若干计算效率的提高。例如,可以仅存储其非零元素。此外,通过仅处理矩阵的非零元素,像加法和乘法这样的操作也可以高效地进行

4.3 对称矩阵

对称矩阵(symmetric matirx)是满足A=A\bm{A} = \bm{A}^\top的方阵。一个对称的n×nn \times n矩阵由主对角线及其上方的元素决定,对角线下方的元素是上方元素的对称副本。因此,对称矩阵的“自由”元素的数量是

n+(n1)++1=n(n+1)2n+(n-1)+\cdots+1 = \frac{n(n+1)}{2}

对称矩阵在Chapter4进一步讨论

4.4 对角矩阵

对角矩阵(diagonal matrices)是指除对角线上以外的元素全为0的方阵。一个n×nn \times n的对角矩阵可以表示为A=diag(a)\bm{A} = \text{diag}(\bm{a}),其中a\bm{a}是一个包含A\bm{A}对角元素的nn维向量

A=diag(a1,,an)=[a1an] \bm{A} = \text{diag}(a_1,\cdots,a_n) = \begin{bmatrix} a_1&&\\ &\ddots&\\ &&a_n \end{bmatrix}

通常对角线以外的零元素省略不写。易证,对角矩阵的特征值就是对角线上的元素。此外,对角矩阵的行列式值为对角线上的元素乘积,因此当且仅当对角线上元素全不为00时矩阵是非奇异的。非奇异对角矩阵的逆矩阵非常简单,是

A1=[1a11an] \bm{A}^{-1} = \begin{bmatrix} \tfrac{1}{a_1} &&\\ &\ddots&\\ &&\tfrac{1}{a_n} \end{bmatrix}

4.5 三角矩阵

三角矩阵(triangular matrix)是指所有在对角线之上或之下的元素都为零的方阵。特别地,上三角矩阵(upper-triangular matrix)为

A=[a11a1nann] A= \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ & \ddots & \vdots \\ & & a_{nn} \end{bmatrix}

下三角矩阵(lower-triangular matrix)为

A=[a11an1ann] A=\begin{bmatrix} a_{11}&& \\ \vdots & \ddots & \\ a_{n1} & \cdots & a_{nn} \end{bmatrix}

与对角矩阵类似,三角矩阵的特征值是对角线上的元素,并且行列式值为对角线上的元素乘积。两个上(resp. 下)三角矩阵的乘积仍然是上(resp. 下)三角矩阵。非奇异上(resp. 下)三角矩阵的逆矩阵仍然是上(resp. 下)三角矩阵

4.6 正交矩阵

正交矩阵(orthogonal matrix)是列向量能够组成Rn\mathbb{R} ^n空间中的标准正交基的方阵,所以对正交矩阵U=[u1un]\bm{U}=[\bm{u}_1\cdots \bm{u}_n]

uiuj={1ifi=j,0otherwise. \bm{u}_i^\top \bm{u}_j = \left\{ \begin{array} {ll}1 & \mathrm{if}\quad i=j, \\ 0 & \mathrm{otherwise}. \end{array}\right.

因此UU=UU=In\bm{U}^\top \bm{U} = \bm{U} \bm{U}^\top = \bm{I}_n,还可以得到U=U1\bm{U}^\top = \bm{U}^{-1}。正交矩阵保持长度和角度。对于任意向量x\bm{x}

Ux22=(Ux)(Ux)=xUUx=xx=x22\lVert \bm{Ux} \rVert_2^2 = (\bm{Ux})^\top(\bm{Ux}) = \bm{x}^\top \bm{U}^\top \bm{Ux} = \bm{x}^\top \bm{x} = \lVert \bm{x} \rVert_2^2

因此,xUx\bm{x} \rightarrow \bm{Ux}保持长度不变。此外,正交映射还保持角度不变:如果x,y\bm{x},\bm{y}是两个单位范数向量,则它们之间的角度θ\theta满足cosθ=xy\cos \theta = \bm{x}^\top \bm{y},而旋转后的向量x=Ux\bm{x}^\prime=\bm{Ux}y=Uy\bm{y}^\prime=\bm{Uy}之间的角度θ\theta ^\prime满足cosθ=(x)y=xy\cos \theta ^\prime=(\bm{x}^\prime )^\top y^\prime = \bm{x}^\top \bm{y},因此旋转前后两个向量的夹角是相同的。反之亦然:任何保持长度和夹角不变的方阵都是正交的。此外,一个矩阵在前后分别乘以正交矩阵不会改变Frobenius范数(以及在Section 3.6.3正式定义的L2L_2诱导范数)

UAVF=AF\lVert \bm{UAV} \rVert_F = \lVert \bm{A} \rVert_F

矩阵可以看成对直线的旋转,而正交矩阵可以写成三角函数形式

U(θ)=[cosθsinθsinθcosθ] \bm{U}(\theta) = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}

这个矩阵看成角度θ\theta的逆时针旋转

4.7 并矢

如果矩阵ARm,n\bm{A} \in \mathbb{R} ^{m,n}可以表示为A=uv\bm{A} = \bm{uv}^\top的形式,其中uRm\bm{u} \in \mathbb{R} ^mvRn\bm{v} \in \mathbb{R} ^n,则称A\bm{A}为并矢(dyad)。如果u\bm{u}v\bm{v}的维度相同,则A\bm{A}是方阵。二次型作用于输入向量 x ∈ Rn 的方式如下:

并矢的每一行(resp. 每一列)都是v\bm{v}(resp. u\bm{u})的缩放版本,缩放的系数由向量u\bm{u}(resp. v\bm{v})给出。而矩阵与向量的乘积可以看成对矩阵列元素的线性组合。综上,并矢与向量的乘积可以看成对u\bm{u}的缩放

Ax=(uv)x=(vx)u\bm{Ax} = (\bm{uv}^\top )\bm{x}=(\bm{v}^\top \bm{x})\bm{u}

并矢与向量的乘积输出总是指向相同的方向u\bm{u},无论输入x\bm{x}是什么。因此输出总是u\bm{u}的一个简单缩放版本。缩放的量取决于vx\bm{v}^\top \bm{x}

如果u\bm{u}v\bm{v}都非零,则并矢的秩为一,因为它的值域是由u\bm{u}生成的直线。一个方形并矢只有一个非零特征值λ=vu\lambda = \bm{v}^\top\bm{u},对应的特征向量为u\bm{u}。我们总可以对并矢进行归一化:

A=uv=(u2v2)uu2vv2=σu~v~\bm{A} = \bm{uv}^\top = (\lVert \bm{u} \rVert_2 \lVert \bm{v} \rVert_2) \frac{\bm{u}}{\lVert \bm{u} \rVert_2} \frac{\bm{v}^\top }{\lVert \bm{v} \rVert_2} = \sigma \tilde{\bm{u}} \tilde{\bm{v}}^\top

其中σ\sigma为两个向量的范数乘积,u~2=v~2=1\lVert \tilde{\bm{u}} \rVert_2 = \lVert \tilde{\bm{v}} \rVert_2 = 1

4.8 块结构矩阵

任何矩阵都能被划分为块或子矩阵

A=[A11A12A21A22] \bm{A} = \begin{bmatrix} \bm{A}_{11} & \bm{A}_{12}\\ \bm{A}_{21} & \bm{A}_{22} \end{bmatrix}


未完待续