解方程

线性方程组mnm*n 的系数矩阵 AA ,长度为 nn 的解向量 xx ,和长度为 mm 的偏置为 bb 。需要解 Ax=bAx=b

矩阵初等变换

  1. 交换两行

  2. 某行倍加到另一行上

  3. 某行乘非 00 倍数

增广矩阵:把 AAbb 拼到一起

阶梯型矩阵:从上到下,00 个数逐行严格增加,直到下方的全 00

最简阶梯型:在阶梯型的基础上,有两个条件:

  1. 每行第一个非 00 元是 11

  2. 每行第一个非 00 元所在的列,其他行全 00

(让我想到高斯-约旦消元法)

在最简阶梯型的基础上,可以调整列的位置关系。使得非全 00 行的个数为 rr ,且对于 iri\le r ,第 ii 行的 00 只存在于长度为 i1i-1 的前缀。

然后讨论解的状态,先看最后的全 00 行,如果存在一行的偏置非 00 ,则无解。

否则一定有解。设 rr 是非全 00 行的行数,如果 r=nr=n ,通过回代可以确定唯一解。如果 r<nr<n ,则解无限。

具体的,可以发现确定 xr+1,xr+2,,xnx_{r+1},x_{r+2},\dots,x_n 之后,x1rx_{1\sim r} 都可以回代得到。我们称之为,有 nrn-r 个自由变量。

齐次线性方程组: 不存在无解情况,其余讨论基本相同。

我们的讨论都是在数域 FF 上进行的,即可以进行加减乘除运算的代数结构。

向量空间

向量空间:包括向量的集合 AA 和域 BB ,它需要满足:

  1. AA 上的加法构成了阿贝尔群。

  2. AABB 之间需要定义数乘运算 :B×AA\cdot:B×A\rightarrow A ,需要满足以下性质:

封闭性:bB,aA,baA\forall b\in B,a\in A,ba\in A

结合律:b,bB,aA\forall b,b'\in B,a\in A ,有 bba=b(ba)bb'a=b(b'a)

分配律:bB,a,aA\forall b\in B,a,a'\in A ,有 b(a+a)=ba+bab(a+a')=ba+ba'b,bB,aA\forall b,b'\in B,a\in A ,有 (b+b)a=ba+ba(b+b')a=ba+b'a

单位元作用:aA,1Ba=a\forall a\in A,1_B\cdot a=a

一些记号:设系数矩阵为 AFmnA\in F^{m*n} ,解向量为 xFnx\in F^{n} ,我们要解 Ax=βAx=\beta

AA 的每一列是 α1,α2,,αnFm\alpha_1,\alpha_2,\dots,\alpha_n\in F^m

可以把 AA 记作 (α1,α2,,αn)(\alpha_1,\alpha_2,\dots,\alpha_n)

方程组可以看做 x1α1+x2α2++xnαn=βx_1\alpha_1+x_2\alpha_2+\dots+x_n\alpha_n=\beta

x1=k1,x2=k2,,xn=knx_1=k_1,x_2=k_2,\dots,x_n=k_n 为解,则 β=k1α1+k2α2++knαn\beta=k_1\alpha_1+k_2\alpha_2+\dots+k_n\alpha_n

线性表述

βFm\beta\in F^m 可由 α1,α2,αsFm\alpha_1,\alpha_2,\dots\alpha_s\in F^m 线性表述 \leftrightarrow β=x1α1+x2α2++xsαs\beta=x_1\alpha_1+x_2\alpha_2+\dots+x_s\alpha_s 有解

线性子空间

对于线性空间 (A,B,+,)(A,B,+,\cdot) ,若 AAA'\subseteq A 且满足以下条件:

α,βA,αβA\forall \alpha,\beta\in A',\alpha\beta\in A'

αA,kB,kαA\forall \alpha \in A',k\in B,k\alpha\in A'

AA'AA 的子空间。

例子:齐次方程的解空间就是一个子空间。我们称一般方程的解空间为仿射空间。

线性无关

一组向量 α1,α2,,αn\alpha_1,\alpha_2,\dots,\alpha_n 线性相关,当且仅当 α1x1++αnxn=0\alpha_1x_1+\dots +\alpha_nx_n=0 存在非 00 解。

不是线性相关,那就是线性无关。

注:α1,α2,,αn\alpha_1,\alpha_2,\dots,\alpha_n 能表出 β\beta 只是 α1,α2,,αn,β\alpha_1,\alpha_2,\dots,\alpha_n,\beta 线性相关的充分条件。

例子:α1=(1,0,0),α2=(0,0,0),β=(0,1,0)\alpha_1=(1,0,0),\alpha_2=(0,0,0),\beta =(0,1,0)

性质:

  1. 如果这些向量的一个子集线性相关,则所有向量都线性相关

  2. s>ns>n ,则 α1,α2,,αsFn\alpha_1,\alpha_2,\dots,\alpha_s\in F^n 必线性相关

  3. 向量组相关,则其缩短组相关,向量组无关,则其延伸组无关

极大无关组

对于向量组 {α1,α2,,αm}\{\alpha_1,\alpha_2,\dots,\alpha_m\} ,它的一个极大无关组 αi1,αi2,,αir\alpha_{i_1},\alpha_{i_2},\dots,\alpha_{i_r} 满足:

  1. αi1,αi2,,αir\alpha_{i_1},\alpha_{i_2},\dots,\alpha_{i_r} 无关

  2. 1im\forall 1\le i\le mαi1,αi2,,αir,αi\alpha_{i_1},\alpha_{i_2},\dots,\alpha_{i_r},\alpha_i 线性相关

条件 22α1,α2,,αm\alpha_1,\alpha_2,\dots,\alpha_{m} 均可被 αi1,αi2,,αir\alpha_{i_1},\alpha_{i_2},\dots,\alpha_{i_r} 线性表出等价。

性质:含有非 00 的向量组,极大无关组必存在

向量组的等价关系

对于向量组 I1,I2I_1,I_2 ,称 I1I_1 能被 I2I_2 线性表出,当且仅当 αI1\forall \alpha\in I_1α\alpha 能被 I2I_2 线性表出。

I1,I2I_1,I_2 能互相表出,则称 I1,I2I_1,I_2 等价。显然这个关系满足自反性,传递性,对称性。

性质:一个向量组和它的任意极大无关组等价

性质:若 I1I_1 能表出 I2I_2I1<I2|I_1|<|I_2| ,则 I2I_2 线性相关(逆否:若 I1I_1 能表出 I2I_2I2I_2 线性无关,则 I1I2|I_1|\geq |I_2|

性质:一个向量组的所有极大无关组包含的向量数目都是相等的。

向量组的秩

一个向量组的极大无关组包含的向量数目称为该向量组的秩。特例: r(0,0,,0)=0r(0,0,\dots,0)=0

若两个向量组等价,则它们的秩相等。

性质:若 I1I_1 能表出 I2I_2 ,则 rank(I1)rank(I2)rank(I_1)\le rank(I_2)

矩阵的秩

A=(α1,,αm)A=(\alpha_1,\dots,\alpha_m) ,则 α1,,αm\alpha_1,\dots,\alpha_m 的秩即为 AA 的列秩,其中 AFn×mA\in F^{n×m} ,同理可以定义行秩。

性质:行秩等于列秩。因为初等变换不会改变行秩列秩,消成最简阶梯型后又易得行秩=列秩。

所以我们将行秩列秩统称为矩阵的秩。

满秩:r(Am,n)=min(m,n)r(A_{m,n})=\min(m,n) 。若 m=nm=n ,则称为满秩方阵。

我们可以通过化成最简阶梯型找到极大无关组。

向量组生成的子空间

对向量组 α1,,αsFn\alpha_1,\dots,\alpha_s\in F^n{k1α1++ksαsk1,k2,,ksF}Fn\{k_1\alpha_1+\dots+k_s\alpha_s|k_1,k_2,\dots,k_s\in F\}\subseteq F^n 满足数乘,加法封闭,它是 FnF^n 的子空间。

我们将其称为该向量组生成的子空间,记作 L(α1,,αs)L(\alpha_1,\dots,\alpha_s) 性质:它的极大无关组生成的子空间是相同的。

子空间的基

UUKnK^n 的一个子空间,若向量组 I=(α1,α2,,αr)I=(\alpha_1,\alpha_2,\dots,\alpha_r) 满足以下条件:

  1. II 线性无关

  2. UU 中每一个向量都能由 II 表出

IIUU 的一个基。

性质:任意两个基都是等价的,我们把一个向量空间的基的大小记为 dimFU\dim_F U .

βU\forall \beta\in U ,可以把 β\beta 表示成 k1α1++krαrk_1\alpha_1+\dots+k_r\alpha_r ,且表示方式唯一。

(k1,,kr)(k_1,\dots,k_r)β\beta 在基 α1,,αr\alpha_1,\dots,\alpha_r 下的坐标

性质:U=L(α1,,αr)U=L(\alpha_1,\dots,\alpha_r) 。显然 dimL(α1,,αr)=rank(α1,,αr)\dim L(\alpha_1,\dots,\alpha_r)=rank(\alpha_1,\dots,\alpha_r)

性质:dd 维空间中大小 >d>d 的向量组必相关

性质:dd 维空间中任意 dd 个无关的向量都构成一组基

性质:若 UVU\subseteq VdimU=dimV\dim U=\dim V ,则 U=VU=V

方程解空间

现在我们来分析一下齐次方程 Ax=0Ax=0 的解空间 UU,令 AFm×n,xFnA\in F^{m×n},x\in F^n 。定理: dimU=nr(A)dim_U=n-r(A)

原因是你发现把 AA 消元之后自由变量的个数就是 nr(A)n-r(A) ,它们的任意一个取法就对应了 UU 中的一个元素。

写出齐次方程的解空间:求出通解,找到 nrn-r 个基(取一个自由变量为 11 ,其他自由变量为 00),从而确定基

非齐次方程怎么分析呢?

对于非齐次方程 α1x1+α2x2++αnxn=β\alpha_1x_1+\alpha_2x_2+\dots+\alpha_nx_n=\beta ,考虑 α\alpha 构成的矩阵 AA 和增广矩阵 AA'

性质:有解 \leftrightarrow r(A)=r(A)r(A)=r(A')

定理:该方程的解集是 r0+Ur_0+U ,其中 r0r_0 为任一特解,UUβ=0\beta=0 时的解空间。

行列式

首先我们阐释一下映射中的像和原像:对于 f:ABf:A\to BSAS\subseteq A ,称 SS 的像是 f(S)f(S) ,即 {f(x)xS}\{f(x)|x\in S\}

对于 TBT\subseteq B ,称 TT 的原像是 f1(T)f^{-1}(T) ,即 {xf(x)T}\{x|f(x)\in T\}

定义线性函数 f:FnFf:F^n\to F 满足 f(kα+lβ)=kf(α)+lf(β)f(k\alpha+l\beta)=kf(\alpha)+lf(\beta)

然后我们称 f:Fn×Fn×FnFf:F^n×F^n\dots×F^n\to FkkFnF^n)为 FnF^n 上的 kk 重线性函数,若固定其他 k1k-1 个向量,剩下的 FnFF^n\to F 是线性的。

k=1k=1 时即线性函数,k=2k=2 时称为双线性函数。

例:设 fi,j(α,β)=αiβjf_{i,j}(\alpha,\beta)=\alpha_i\beta_j ,那么 fi,jf_{i,j} 是双线性函数。

我们记 Lk(Fn)L^k(F^n)FnF^n 上的 kk 重线性函数集,这个集合关于函数 +,+,\cdot 构成了向量空间,且 fi1,i2,,ikf_{i_1,i_2,\dots,i_k}nkn^k 个函数是它的一组基,

因为能发现 f(α1,,αk)=i1,i2,,iknf(ϵi1,ϵi2,,ϵik)j=1kαj,ijf(\alpha_1,\dots,\alpha_k)=\sum\limits_{i_1,i_2,\dots,i_k\le n}f(\epsilon_{i_1},\epsilon_{i_2},\dots,\epsilon_{i_k})\prod\limits_{j=1}^k\alpha_{j,i_j} ,这个性质后面有用。

反对称: fLk(Fn)f\in L^k(F^n) 满足若 αi=αj(ij)\alpha_i=\alpha_j(i\neq j) ,则 f(α1αiαjαk)=0f(\alpha_1\dots\alpha_i\dots\alpha_j\dots\alpha_k)=0

其实这等价于 f(α1αiαjαk)+f(α1αjαiαk)=0f(\alpha_1\dots\alpha_i\dots\alpha_j\dots\alpha_k)+f(\alpha_1\dots\alpha_j\dots\alpha_i\dots\alpha_k)=0

怎么证明呢?先证条件 11 \to 条件 22。考察 f(αi+αjαi+αj)=f(αjαi)+f(αiαj)+f(αiαi)+f(αjαj)f(\dots \alpha_i+\alpha_j\dots\alpha_i+\alpha_j\dots)=f(\dots\alpha_j\dots\alpha_i\dots)+f(\dots\alpha_i\dots\alpha_j\dots)+f(\dots\alpha_i\dots\alpha_i\dots)+f(\dots\alpha_j\dots\alpha_j\dots)

把等于 00 的部分代入即可。条件 22 \to 条件 11 是容易的。

定义 D:Mn(F)FD:M_n(F)\to FFnF^n 上的 nn 阶行列式函数,当且仅当: 它是 n-重线性函数,它反对称,且 D(En)=1D(E_n)=1

显然 DD 是唯一确定的,但我们尝试严谨的说明这个事情。

MijM_{ij} 是去掉 ai,ja_{i,j} 所在的行和列之后构成的 n1n-1 阶方阵,称 Aij=(1)i+jDn1(Mij)A_{ij}=(-1)^{i+j}D_{n-1}(M_{ij})aija_{ij}代数余子式

接下来归纳构造行列式函数,任取 1jn1\le j\le n ,令 Dn(A)=i=1nai,jAi,jD_n(A)=\sum\limits_{i=1}^n a_{i,j}A_{i,j} 可以证明它确实满足行列式函数的三个条件。

我们换一个方式写出来这个函数。考虑 f(α1,,αn)=i1,i2,,innf(ϵi1,ϵi2,,ϵin)j=1nαj,ijf(\alpha_1,\dots,\alpha_n)=\sum\limits_{i_1,i_2,\dots,i_n\le n}f(\epsilon_{i_1},\epsilon_{i_2},\dots,\epsilon_{i_n})\prod\limits_{j=1}^n\alpha_{j,i_j} ,而如果 ij=iki_j=i_k 则根据反对称 f(ϵi1,ϵi2,,ϵin)=0f(\epsilon_{i_1},\epsilon_{i_2},\dots,\epsilon_{i_n})=0 。看来 {in}\{i_n\} 一定是一个排列。而且 f(ϵi1,ϵi2,,ϵin)f(\epsilon_{i_1},\epsilon_{i_2},\dots,\epsilon_{i_n}) 也容易计算出来,因为它可以从 {1,2,,n}\{1,2,\dots,n\} 开始不断交换相邻项得到,根据反对称性,我们直接看它的逆序数的奇偶性即可。

所以 f(α1,,αn)=pSymn(1)τ(p)i=1nαi,pif(\alpha_1,\dots,\alpha_n)=\sum\limits_{p\in Sym_n}(-1)^{\tau(p)}\prod\limits_{i=1}^n \alpha_{i,p_i} ,其中 τ(p)\tau(p) 表示逆序对数。

求解行列式

最朴素的方法是用高斯消元消成上三角矩阵。

然后对于一些特殊的行列式,我们可以进行一些手玩以进行消元。

另一个方法是用代数余子式。我们称 A|A| 按第 ii 行展开为 A=j=1nai,jAi,j|A|=\sum\limits_{j=1}^n a_{i,j}A_{i,j} (对于一些特殊的稀疏矩阵很有效)

另一个 trick 是把原矩阵在最后添加一行一列,使得 in,ai,n+1=0\forall i\le n,a_{i,n+1}=0 ,而 an+1,n+1=1a_{n+1,n+1}=1

还有一个事情:det(α1,,αk+β,,αn)=det(α1,,αk,,αn)+det(α1,,β,,αn)\det(\alpha_1,\dots,\alpha_k+\beta,\dots,\alpha_n)=\det(\alpha_1,\dots,\alpha_k,\dots,\alpha_n)+\det(\alpha_1,\dots,\beta,\dots,\alpha_n)

Laplace 展开

我们先定义 kk 阶子式的代数余子式:

设这个子式下标是 i1,i2,,ik,j1,j2,,jki_1,i_2,\dots,i_k,j_1,j_2,\dots,j_k ,那么它的代数余子式就是 (1)i1+i2++ik+j1+j2++jk(-1)^{i_1+i_2+\dots+i_k+j_1+j_2+\dots+j_k} 乘以余下的矩阵的行列式。

Laplace 展开(多行/多列展开):

考虑 A=(ai,j)nA=(a_{i,j})_n 中的 kk 个行 i1<i2<<iki_1<i_2<\dots<i_k ,这 kk 个行对应了 t=(nk)t=\tbinom{n}{k}kk 阶子式,我们记为 D1,D2,,DtD_1,D_2,\dots,D_t ,对应的代数余子式为 A1,A2,,AtA_1,A_2,\dots,A_t ,则 A=i=1tDiAi|A|=\sum\limits_{i=1}^t D_iA_i

例:我们可以证明 A0BC=AC\left|\begin{array}{}A&0\\B&C\end{array}\right|=|A|\cdot |C| ,其中 A,CA,C 都是方阵。理由就是设 AA 的行数为 nn ,对前 nn 行展开即可。

范德蒙德行列式

D(a1,a2,,an)D(a_1,a_2,\dots,a_n) 是满足 Ai,j=aij1A_{i,j}=a_i^{j-1} 的矩阵的行列式。

考虑以下消元:从第 n1n-1 列到第 11 列 ,依次把第 ii 行乘上 a1-a_1 加到第 i+1i+1 行上。那除了 a1,1a_{1,1}11 列变成全 00 ,而 i2,j2\forall i\geq 2,j\geq 2ai,j=aija1aij1=ai,hj1(aia1)a'_{i,j}=a_i^{j}-a_1a_i^{j-1}=a_i^{ ,hj-1}(a_i-a_1)

于是按第 11 列展开,并对每一行提取公因子 aia1a_i-a_1 ,可得 D(a1,a2,,an)i=2n(aia1)D(a2,,an)D(a_1,a_2,\dots,a_n)\prod\limits_{i=2}^n (a_i-a_1)D(a_2,\dots,a_n)

于是有 D(a1,a2,,an)=1i<jn(ajai)D(a_1,a_2,\dots,a_n)=\prod\limits_{1\le i<j\le n}(a_j-a_i)

克莱姆法则

考虑方程 x1α1+x2α2++xnαn=βx_1\alpha_1+x_2\alpha_2+\dots+x_n\alpha_n=\beta ,矩阵 A=(α1,α2,,αn)Fn×nA=(\alpha_1,\alpha_2,\dots,\alpha_n)\in F^{n×n} ,则方程组有唯一解 det(A)0rank(A)=n\leftrightarrow \det(A)\neq 0\leftrightarrow rank(A)=n ,且这个解为 xi=AiAx_i=\frac{|A_i|}{|A|} ,其中 Ai=(α1,,αi1,β,αi+1,,αn)A_i=(\alpha_1,\dots,\alpha_{i-1},\beta,\alpha_{i+1},\dots,\alpha_n)

这个东西是能直接解出来的,考虑 det(Ai)=det(α1,,αi1,xjαj,αi+1,,αn)=jxjdet(α1,,αi1,αj,αi+1,,αn)=xidet(A)\det(A_i)=\det(\alpha_1,\dots,\alpha_{i-1},\sum x_j\alpha_j,\alpha_{i+1},\dots,\alpha_n)=\sum\limits_{j}x_j\det(\alpha_1,\dots,\alpha_{i-1},\alpha_{j},\alpha_{i+1},\dots,\alpha_n)=x_i\det(A) 。于是 xi=AiAx_i=\frac{|A_i|}{|A|}

这里可以再讨论一下行列式和秩的联系。

引理:若 AA 有一个 kk 阶子式非 00 ,则 rank(A)krank(A)\geq k

定理:r(A)=kr(A)=k\leftrightarrow 存在一个非 00kk 阶子式且所有 k+1k+1 阶子式皆为 00

一个记号:A(i1,,ikj1,,jk)A\begin{pmatrix}i_1,\dots,i_k\\j_1,\dots,j_k\end{pmatrix} 表示 AA 的一个 kk 阶子式

矩阵运算

加法,数乘,零元,负元,乘法皆显然

还可以对矩阵做分块,比如写成行/列向量的拼接,这样往往方便我们分析乘法的性质。比如说有 (α1αn)B=(α1BαnB)\begin{pmatrix}\alpha_1\\\vdots \\\alpha_n\end{pmatrix}B=\begin{pmatrix}\alpha_1B\\\vdots \\\alpha_nB\end{pmatrix}

性质:r(A+B)r(A)+r(B),r(AB)min(r(A),r(B))r(A+B)\le r(A)+r(B),r(AB)\le \min(r(A),r(B))。若 AnmBmp=0A_{n*m}B_{m*p}=0 ,则 r(A)+r(B)mr(A)+r(B)\le mr(ATA)=r(AAT)=r(A)r(A^TA)=r(AA^T)=r(A)

我们来证为何 r(AAT)=r(A)r(AA^T)=r(A) ,只需要证 AATX=0AA^TX=0AX=0AX=0 同解。

一个方向显然。另一个方向:AATX=0XTAATX=0ATX2=0ATX=0AA^TX=0\to X^TAA^TX=0\to ||A^TX||^2=0\to A^TX=0

同理还有 r(AATA)=r(A)r(AA^TA)=r(A)

一个趣题:ATAx=ATbA^TAx=A^Tb 必有解

即证 r(ATA)=r(ATA,ATb)r(A^TA)=r(A^TA,A^Tb)

r(ATA)r(ATA,ATb)r(A^TA)\le r(A^TA,A^Tb)

另一方面,$$

向量 α1,α2,,αn\alpha_1,\alpha_2,\dots,\alpha_n 能表出 β1,β2,,βm\beta_1,\beta_2,\dots,\beta_m 当且仅当存在矩阵 XnmX_{n*m} 使得 (α1,α2,,αn)X=(β1,β2,,βm)(\alpha_1,\alpha_2,\dots,\alpha_n)X=(\beta_1,\beta_2,\dots,\beta_m) 。因为 βj=iαiXi,j\beta_j=\sum\limits_{i} \alpha_i X_{i,j}

观察:对矩阵的行初等变换全部可以看做左乘了一个方阵,同理列变换是右乘一个方阵。

第一类变换:交换两行 第二类变换:一行乘 kk 倍 第三类变换:一行乘 kk 倍加到另一行

只用第三类变换就能把矩阵消成:一个子矩阵是 rrr*r 的对角矩阵,其余位置全 00 。而且第三类变换不改变矩阵行列式。

这样就能证明 AB=AB|A||B|=|AB| :

A=x1x2xpDy1y2yqA=x_1x_2\dots x_pDy_1y_2\dots y_q 。则 AB=x1x2xpDy1y2yqB=Dy1y2yqB|AB|=|x_1x_2\dots x_pDy_1y_2\dots y_qB|=|Dy_1y_2\dots y_qB| 。注意到对角矩阵乘上 y1y2yqBy_1y_2\dots y_qB 其实是在做第二类变换,于是它就等于 Dy1y2yqB=DB=AB|D|\cdot |y_1y_2\dots y_qB|=|D|\cdot |B|=|A||B|

现在考虑矩阵的逆 A1A^{-1} 。我们有 AA 可逆当且仅当 A0|A|\neq 0 。且逆元唯一:如果 B,CB,C 都是 AA 的逆,那么 B=BE=BAC=(BA)C=CB=BE=BAC=(BA)C=C

A1A^{-1} 怎么计算:考虑伴随矩阵 AA^{*} 满足 Ai,j=Aj,iA^{*}_{i,j}=A_{j,i} ,其中 Ai,jA_{i,j} 表示代数余子式。则根据行列式的展开/异行展开,可得 AA=AA=AIA^{*}A=AA^{*}=|A|I ,于是 A1=AAA^{-1}=\frac{A^{*}}{|A|}

更高效的方法:对 (AI)\begin{pmatrix}A&I\end{pmatrix} 做行初等变换得到 (IB)\begin{pmatrix}I&B\end{pmatrix} ,有 B=A1B=A^{-1} ,因为初等变换可以看做乘初等矩阵。

性质:(AB)1=B1A1(AB)^{-1}=B^{-1}A^{-1}