线性方程组
高斯消元法
给出以下线性方程组:
我们对线性方程组做如下的三种变换(线性方程组的初等变换):
-
交换两个方程的位置。
-
用一个非零的数乘以某个方程的两边。
-
将一个方程的倍数加到另一个方程。
定理:
线性方程组的初等变换将一个线性方程组化为与之同解的线性方程组。
我们可以通过初等变换把方程组 \((\ast)\) 化为如下阶梯形的线性方程组:
具体来说,对于某一个变量 \(x_i\),选择一个 \(x_i\) 系数非零的行,用这一行和第三种初等变换即可把其他方程的 \(x_i\) 系数都消掉,剩下的方程可以递归处理。复杂度 \(O(n^3)\)。
如果是实数计算,为了保证精度,选择方程时,要选择 \(x_i\) 系数的绝对值最大的那个方程。
进一步,通过交换未知量的位置以及作第 \(2,3\) 种初等变换,方程组 \((\ast\ast)\) 可化为如下形式:
其中 \(i_1,i_2,\cdots,i_n\) 是 \(1,2,\cdots,n\) 的一个排列,\(r\) 称为这个方程组的秩。
-
若 \(r<m\) 且 \(d_{r+1},\cdots,d_m\) 不全为零,则 \((\ast\ast\ast)\) 无解(即 \((\ast)\) 无解)。
-
若 \(r=m\) 或 \(r<m\) 且 \(d_{r+1},\cdots,d_m\) 全为零, 则 \((\ast\ast\ast)\) 有解。
-
当 \(r=n\) 时,有唯一解 \(x_{i_k}=d_k\)。
-
当 \(r<n\) 时,\((\ast\ast\ast)\) 有无穷多解,\(x_{i_r}+1,\cdots,x_{i_n}\) 可以在数域中任选,剩下的 \(x_{i_1},\cdots,x_{i_r}\) 的值由 \(x_{i_r}+1,\cdots,x_{i_n}\) 的值确定。
-
向量的一些概念
向量
数域 \(\mathbb{F}\) 中的 \(n\) 个数 \(a_1,a_2,\cdots,a_n\) 构成的一个有序组 \((a_1,a_2,\cdots,a_n)=\alpha\) 称为 \(\mathbb{F}\) 上
的一个 \(n\) 维(行)向量。
加法与数乘运算
-
对于 \(\alpha=(a_1,a_2,\cdots,a_n),\beta=(b_1,b_2,\cdots,b_n),\alpha,\beta\in \mathbb{F}^n\),定义 \(\alpha+\beta=(a_1+b_1,a_2+b_2,\cdots,a_n+b_n)\)。
-
对于 \(k\in\mathbb{F},\alpha\in \mathbb{F}^n\),定义 \(k\alpha=(ka_1,ka_2,\cdots,ka_n)\)。
线性相关性
-
设 \(\alpha_1,\alpha_2,\cdots,\alpha_s\in\mathbb{F}^n\),给定 \(k_1,k_2,\cdots,k_s\in\mathbb{F}\),称 \(k_1\alpha_1+\cdots+k_s\alpha_s\) 是 \(\alpha_1,\cdots,\alpha_s\) 的一个线性组合。
-
设 \(\alpha_1,\cdots,\alpha_s,\beta\in\mathbb{F}^n\),若 \(\beta\) 可写为 \(\alpha_1,\cdots,\alpha_s\) 的一个线性组合,则称 \(\beta\) 可由 \(\alpha_1,\cdots,\alpha_s\) 线性表示。
-
设 \(\alpha_1,\cdots,\alpha_m\in \mathbb{F}^n\),若存在一组不全为零的数 \(a1,\cdots,am\in\mathbb{F}\) 使得 \(a_1\alpha_1 +\cdots+a_m\alpha_m=0\),则称 \(\alpha_1,\alpha_2,\cdots,\alpha_m\) 线性相关,否则称 \(\alpha_1,\alpha_2,\cdots,\alpha_m\) 线性无关,即对任意一组不全为零的的数 \(a_1,\cdots,a_m\),总有 \(a_1\alpha_1+\cdots+a_m\alpha_m\neq 0\)。
极大无关组
对于 \(\alpha_1,\cdots,\alpha_m\in\mathbb{F}^n\),如果 \(\alpha_1,\cdots,\alpha_m\) 中的部分向量 \(\alpha_{i_1},\cdots,\alpha_{i_r}\) 满足:
-
\(\alpha_{i_1},\cdots,\alpha_{i_r}\) 线性无关。
-
每个 \(\alpha_i(1\le i\le m)\) 均可由 \(\alpha_{i_1},\cdots,\alpha_{i_r}\) 线性表示。
那么称 \(\alpha_{i_1},\cdots,\alpha_{i_r}\) 是向量组 \(\alpha_1,\cdots, \alpha_m\) 的一个极大线性无关组(简称极大无关组)。
定理:
设 \(\alpha_1,\cdots,\alpha_m\) 是 \(\mathbb{F}^n\) 中含有非零向量的向量组,则它必有极大无关组。
设 \(\alpha_1,\cdots,\alpha_m\) 是 \(\mathbb{F}^n\) 中的一个向量组,称它的极大无关组所含向量个数为它的秩,记作 \(r(\alpha_1,\cdots,\alpha_m)\) 或 \(\operatorname{rank}(\alpha_1,\cdots,\alpha_m)\)。
向量空间
-
设 \(W\) 是 \(\mathbb{F}^n\) 的一个非空子集,若对任意 \(\alpha,\beta\in W\) 与任意 \(k\in\mathbb{F}\),总有 \(\alpha+\beta,k\alpha\in W\),则称 \(W\) 是 \(\mathbb{F}^n\) 的一个子空间。
-
记 \(\mathscr{L}(\alpha_1,\cdots,\alpha_m)=\{k_1\alpha_1+\cdots+k_m\alpha_m\mid k_1,\cdots,k_m\in\mathbb{F}\}\),称为由 \(\alpha_1,\cdots,\alpha_m\) 张成的子空间。
-
若两组向量 \(\alpha_1,\cdots,\alpha_n\) 和 \(\beta_1,\cdots,\beta_m\) 张成的子空间是相同的,即 \(\mathscr{L}(\alpha_1,\cdots,\alpha_n)=\mathscr{L}(\beta_1,\cdots,\beta_m)\),则称它们是等价的。
定理:
若 \(\alpha_1,\cdots,\alpha_s\) 与 \(\beta_1,\cdots,\beta_t\) 是等价的线性无关的向量组,则 \(s=t\)。
- 设 \(W\) 是 \(\mathbb{F}^n\) 的子空间,若存在线性无关的向量组 \(\epsilon_1,\cdots,\epsilon_s\in W\),使得 \(W\) 中每个向量都能由 \(\epsilon_1,\cdots,\epsilon_s\) 线性表示,则称 \(\epsilon_1,\cdots,\epsilon_s\) 是 \(W\) 的一个基,\(s\) 是 \(W\) 的维数,记作 \(\dim W=s\)。
注意:\(W\) 的任意两组基都是等价的,且所含向量的数量是相同的,于是 \(\dim\) 不依赖于基的选取。
线性方程组与矩阵
线性方程组:
可以写成矩阵:
由这个方程得到两个矩阵:
-
系数矩阵 \(\mathbf{A}=\begin{pmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n}\\a_{2,1}&a_{2,2}&\cdots&a_{2,n}\\\vdots&\vdots&&\vdots\\a_{n,1}&a_{n,2}&\cdots&a_{n,n}\end{pmatrix}\)。
-
增广矩阵 \(\widetilde{\mathbf{A}}=\begin{pmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n}&b_1\\a_{2,1}&a_{2,2}&\cdots&a_{2,n}&b_2\\\vdots&\vdots&&\vdots&\vdots\\a_{n,1}&a_{n,2}&\cdots&a_{n,n}&b_n\end{pmatrix}\)。
对 \((\ast)\) 作初等变换,相当于对其系数矩阵和增广矩阵作如下的变换(矩阵的初等行变换):
-
交换两行的位置。
-
用一个非零的数乘以某一行。
-
将某一行的倍数加到另一行。
类似地,可定义矩阵的初等列变换。
行空间、列空间
-
由矩阵 \(\mathbf{A}\) 的 \(m\) 个行向量生成的 \(\mathbb{F}^n\) 的子空间称为 \(\mathbf{A}\) 的行空间,其维数称为矩阵 \(\mathbf{A}\) 的行秩,记作 \(\operatorname{r}_r(\mathbf{A})\)。
-
由矩阵 \(\mathbf{A}\) 的 \(n\) 个列向量生成的 \(\mathbb{F}^m\) 的子空间称为 \(\mathbf{A}\) 的列空间,其维数称为矩阵 \(\mathbf{A}\) 的列秩,记作 \(\operatorname{r}_c(\mathbf{A})\)。
定理:
矩阵的初等行、列变换不改变矩阵的行秩和列秩。
矩阵的秩
对于矩阵 \(\mathbf{A}\),必有 \(\operatorname{r}_r(\mathbf{A})=\operatorname{r}_c(\mathbf{A})\)。
于是可以定义 \(\mathbf{A}\) 的行秩与列秩为矩阵 \(\mathbf{A}\) 的秩,记作 \(\operatorname{r}(\mathbf{A})\) 或 \(\operatorname{rank}(\mathbf{A})\)。
定理:
\(\operatorname{r}(\mathbf{A}\mathbf{B})\le\min(\operatorname{r}(\mathbf{A}),\operatorname{r}(\mathbf{B}))\)。
线性方程组的解
定理(Kronecker-Catelli):
方程组 \((\ast)\) 有解的充要条件是:
\[\operatorname{r}(\mathbf{A})=\operatorname{r}(\widetilde{\mathbf{A}}) \]进一步,若 \(\operatorname{r}(\mathbf{A})=\operatorname{r}(\widetilde{\mathbf{A}})=r\),即 \((\ast)\) 有解时,则:
当 \(r=n\) 时,方程组 \((\ast)\) 有唯一解。
当 \(r<n\) 时,\((\ast)\) 有无穷多解。
线性方程组解的结构
- 齐次线性方程组
其系数矩阵 \(A=(a_{i,j})_{m\times n}=(\alpha_1,\alpha_2,\cdots,\alpha_n)\)。
设 \(x_1=c_1,x_2=c_2,\cdots,x_n=c_n\) 是该方程组的解,即 \(c_1\alpha_1+c_2\alpha_2+\cdots+c_n\alpha_n=\mathbf{0}\)。
将这个解写成列向量的形式 \(\begin{pmatrix}c_1\\\vdots\\c_n\end{pmatrix}=(c_1,\cdots,c_n)^{T}\in\mathbb{F}^n\)。
令 \(W=\left\{\begin{pmatrix}c_1\\\vdots\\c_n\end{pmatrix}\in\mathbb{F}^n\mid\sum\limits_{i=1}^nc_i\alpha_i=\mathbf{0}\right\}\),即 \(W\) 是该方程组的所有解构成的集合。
直接验证,\(W\) 是 \(\mathbb{F}^n\) 的一个子空间,称其为方程组的解空间。
方程组的解空间 \(W\) 的一个基 \({\eta_1,\cdots, \eta_s}\),称为方程组的一个基础解系,此时方程组的每一个解都可表示为 \(\lambda_1\eta_1+\cdots+\lambda_s\eta_s\),其中 \(\lambda_1,\cdots,\lambda_s\in\mathbb{F}\)。
定理:
设 \(r=\operatorname{r}(\mathbf{A})\),则 \(\dim W=n-r\),即方程组的基础解系恰好含有 \(n-r\) 个向量。
- 一般线性方程组
其系数矩阵 \(\mathbf{A}=(\alpha_1,\alpha_2,\cdots,\alpha_n)\),增广矩阵 \(\widetilde{\mathbf{A}}=(\alpha_1,\alpha_2,\cdots,\alpha_n,\beta)\)。
令 \(W\) 是该方程组的导出组的解空间,设 \(\operatorname{r}(\mathbf{A})=\operatorname{r}(\widetilde{\mathbf{A}})=r\),即方程组有解,并且设 \(\gamma\) 是方程组的一个特解。
则 \(\gamma+W=\{\gamma+\eta\mid\eta\in W\}\) 是方程组的所有解的集合。
换句话说,如果 \(\eta_1,\eta_2,\cdots,\eta_{n−r}\) 是方程组的导出组的一个基础解系,则方程组的所有解为 \(\gamma+\lambda_1\eta_1+\cdots+\lambda_{n−r}\eta_{n−r}\),其中 \(\lambda_1,\cdots,\lambda_{n−r}\in\mathbb{F}\)。
例题
- 游走
给定一个 \(n\) 个点 \(m\) 条边的无向连通图,顶点从 \(1\) 编号到 \(n\),边从 \(1\) 编号到 \(m\),一开始边的编号还没有确定。
在该图上进行随机游走,初始时在 \(1\) 号顶点,每一步以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。到达 \(n\)
号顶点时游走结束,总分为所有获得的分数之和。
请你对这 \(m\) 条边进行编号,使得获得的总分的期望值最小。
sol:
考虑对于每条边 \((u,v)\) 求出它的期望经过次数,再贪心编号。但是边的期望不好求,考虑求出 \(u,v\) 的期望经过次数 \(f_u,f_v\),则 \((u,v)\) 的期望经过次数为:
再求 \(f_i\),列出方程:
高斯消元解出这个方程组即可。
- 硬币游戏
有 \(n\) 个玩家,每个玩家给一个长度为 \(m\) 的串 \(T_i\)。任何两个玩家的串不同。
现在有一个字符串 \(S\),初始为 \(\varnothing\),每一次以一定概率随机一个字符接上去。如果某个时刻某个玩家发现自己的字符串在 \(S\) 中作为子串出现了,那么我们称这个玩家获胜,游戏结束。
对每个玩家,求它获胜的概率。
sol:
令 \(f_i\) 表示第 \(i\) 个同学获胜的概率,\(f_0\) 表示任意一个长度的串不包含同学的串的概率,我们有第一个方程:
我们知道,在任意的合法串后面加上 \(T_i\),\(i\) 就获胜了。这种情况出现的概率是 \(\frac{f_0}{2^m}\)。
但是此时可能有一个 \(T_i\) 的前缀和原来的合法串的后缀拼出来一个 \(T_j\),为了计算 \(f_i\),我们需要把出现这种情况的概率减去。于是方程为:
这样是 \(n+1\) 个变量 \(n+1\) 个方程,高斯消元,复杂度 \(O(n^3)\)。

浙公网安备 33010602011771号