贡献者: addis
1线性方程组(有 这 个未知量,所以也叫 元一次方程组)
可以写成矩阵和列矢量相乘的形式
其中 是维度 的矩阵,称为
系数矩阵。
是 维列矢量 。
是 维列矢量 ,称为
常数列。 和 通常看做已知的,而 看做未知的,即方程组待求的
解。下面我们介绍一种解线性方程组的简单的方法,
高斯消元法(Gauss elimination)。 先来看一个简单的例子。
例 1
我们先回顾一下初中阶段如何解线性方程组,例如
一种方法是将第一条等式两边除以 2 再移项得到
再代入第二个条式消去 得
解得 ,再代入第一条等式得 。
另一种更方便的解法是,将第一条等式(两边)乘以 ,加到第二条上消去 得
解得 ,再代入第一条等式得 。为什么可以这么做? 简单来说是因为如果两条等式都成立,将它们两边相加得到的新的等式同样成立。下面我们来详细讲解第二种方法。
为了书写简单,我们可以用所谓的增广矩阵(augmented matrix)来表示矩阵和常数列,即把式 4 记为
同样把第一行乘以 ,加到第二行上得
如果这个方程有多个未知数,且方程的数量和未知数相同(系数矩阵为方阵),理想情况下我们可以用第一行消去所有 行的第一个系数,再用第二行消去所有 行的第 2 个系数,以此类推,最后得到一个三角形系数矩阵。三角形系数矩阵的最后一行只有最后一个变量的系数不为零,我们求出这个变量后,再代入倒数第二行(只有两个未知量)求出另一个未知量,最后就可以得到所有未知量的值。这个过程叫做反向迭代(backward substitution)。
注意这只是一种理想的情况,如果在处理第 行的时候发现 ,则该方法无法进行下去。为此我们需要稍微复杂一些的方法,也就是高斯消元法的一般步骤。
1. 一般步骤
我们将式 1 形式的方程组用增广矩阵表示为
定义以下三种矩阵(或增广矩阵)变换为初等行变换。初等行变换不改变方程组的解2。
- 对调矩阵中的第 行与第 行,记作
- 将矩阵第 行的所有元素乘以一个非零数 ,记作
- 把矩阵第 行的所有元素乘以数 后加到第 行上,下文简记为
任何非零矩阵(或增广矩阵)经过有限次初等行变换后总可以使系数矩阵 转化为梯形矩阵(echelon form)。我们把梯形矩阵定义为满足该条件的矩阵:第 行的第一个非零系数3 的列标 总是大于第 行的第一个非零元 的列标 。与例 1 不同的是,当系数矩阵经过行变换化为梯形矩阵后,最后若干行有可能都为零,最后一个非零行也未必只有一个非零元。
高斯消元法的一般步骤如下:
- 先处理第 行,如果 但某 的行有 ,就先进行行变换4 。如果第一列全为 0,我们就无视第 1 列,从第 2 列重新开始,以此类推。记此时第 1 行第一个非零元的列标为 。接下来做若干次行变换 使所有第 行的 都为 0。
- 依次处理第 行5。要处理第 行,先令 ,如果此时矩阵元 ,但某 的行有 ,就先进行行变换 。若不存在这样的 ,我们就改令 并重新开始该步骤,以此类推。接下来做若干次行变换 使所有第 行的 都为 0。
完成后,系数矩阵就会变为梯形矩阵。
例 2 解线性方程组
解:
将该方程组写成增广矩阵形式
对第一列
发现此时,矩阵第二列自第二行以下全为零,所以需要依次向下一列寻找不为零的元素。继续消元
我们按照上面的方法用第 3 行求 ,代入第 2 行求得 。然而当我们想用第 1 行求 的时候却出发现我们还没求出 。解决办法是,我们令 且假设 可以取任意值,再把 用 表示。方程的解可以表示为
或者写成列矢量的形式
将该式代入方程组,可以验证 取任意值时方程组都成立。
如果多个 的值都未知,我们就分别假设它们等于不同的任意常数 即可。
2. 解的数量
根据以上步骤,当系数矩阵变为梯形矩阵后,可以用以下步骤判断解的数量:
- 若存在系数 全为零的行 ,但是对应的常数 却不为零,则方程组无解。
- 若存在 个系数 全为零的行 ,且对应的所有 也都为零,则方程有无穷个解,且需要 个任意常数来表示所有可能的解。
- 若不存在系数 全为零的行,则系数矩阵可以化为三角矩阵,使对角线上的元素全不为零。此时方程有唯一解。
3. 解的结构
按照高斯消元法的一般步骤,如果方程有解,我们总可以将解表示为一些常矢量的线性组合加上一个常矢量。
其中 是 个任意常数(当方程有唯一解时 ),无论这些常数取什么值, 都是方程的解。另一方面,给出方程的任意一个解,总能找到一些常数 与之对应。
式 18 叫做方程的
通解(general solution),通解中的任意一个就做方程的
特解(special solution)。
将式 18 代入方程组,使用矩阵乘法分配律(式 17 )得到
由于 是方程的一个特解,有 。所以
线性方程组 中,如果 (粗体的 表示零矢量,即每个元都是 ),则方程组被称为是
齐次(homogeneous)的。上式说明 就是齐次方程组 的通解。
综上所述,对于任意有解的非齐次(inhomogeneous)方程组 ,我们可以将通解(式 18 )从形式上理解为齐次方程组 的通解与非齐次方程组的任一特解相加。
1. ^ 参考 Wikipedia 相关页面。
2. ^ 这点我们留到以后证明
3. ^ 为了书写简单,我们将每次变换后的系数矩阵元仍然用 来表示,虽然它的值可能已经发生变化。若需要区分,可以将第 次变换后的矩阵元用 表示。
4. ^ 如果 则不需要
5. ^ 如果在处理 之前就得到了梯形矩阵,则可提前终止。