本章我们研究方程个数和未知数个数相等的情况,也就是线性方程组
的系数矩阵
为方阵时的情况,让我们先看看3个方程3个未知数的例子:
对比上面两个方程组:第一个方程组的系数矩阵较为“复杂”,使得
"纠缠”在一起不能求解;第二个方程组的系数矩阵是一个上三角阵(upper triangular matrix,记为
U),我们可以从最后一个方程开始求解未知数
,然后从下往上继续求解
,最后
。其实,上面两个方程组是等价同解的,高斯消元法(elimination)就是将
转换为同解的
,再通过回代法(back substitution)自下而上求解线性方程组的算法。
现在我们就来仔细讨论一下高斯消元法。首先处理第一列,也就是消去第二个和第三个方程中
的系数,它们在矩阵中的位置为(2,1)(3,1),也就是第一列中(1,1)“下方”的元素。消元的过程如下:利用第一个方程中
的系数,也叫
第一个“主元”(pivot),找到合适的
“乘数”(multiplier)乘以主元所在的行,再整行相减。例如,为了消除(2,1)位置
的系数4,我们得到乘数为
,用第二个方程减去第一个方程乘以2,这样(2,1)位置的4就变成0了:
。继续利用第一个“主元”消去第三行中的
,即(3,1)位置的-2,乘数为
,用第三个方程减去-1倍的第一个方程:
,(3,1)位置的-2也变成0了。至此,消
这个元的任务就完成了,第一列中主元以下元素都变成了
。
注意:右边
的元素也要相应改变,方程整行相减才能保证解不变。
接下来消元法要继续对付
,这时要利用第二个方程中
的系数,也就是第二个“主元”
来消元。消元的过程依旧是找到“乘数”和相减,以此将第二列中主元以下的元素变为
:
,同时得到第三个主元是
。
主元就是每一行中第一个不为0的数,我们利用主元消去它所在列“下方”所有元素,如果 我们把消去(i, j)位置元素的乘数记为
,消元的步骤就是从第i行减去
乘第j行,其中
中“隐藏”,而在化简后的上三角阵
中“显现”在对角线上。
高斯消元法将
化为
的目的是使得方程组可以自下而上求解,换句话说,我们可以通过消元之后的方程组的最后一个方程解得最后一个未知数,然后
“回代“到上一个方程,就又可以解得倒数第二个未知数,自下而上直到第一个方程,所有未知数就都求解出来了。上例中
,容易解得
。
例1:下面是矩阵A通过消元法变为上三角矩阵U的过程:
。求A的主元和乘数
。
解:第1个主元从A中就可以看出,它就是
,即1。
是消除(2,1)位置元素的乘数,它等于被消除元素1除以该列的主元1:
。第2行减去
倍的第1行之后,得到第2个主元1,它在A中是隐藏的。
,因为(3,1)位置没有元素需要消元。最后,
是消除(3,2)位置元素的乘数(注意是中间那个矩阵的(3,2)位置元素而不是A(3,2),之前的消元步骤改变了那个位置的元素),它等于1除以第二个主元1:
。第3行减去
倍的第2行之后,得到第3个主元1。
仔细观察,A是一个带状矩阵,非零元素在主对角线和相邻的两条对角线上,这使得A的左下角和右上角都是0。我们可以断定,右上角的0原封不动的出现在了消元后的上三角矩阵U中,左下角的0使得相应的乘数
为0。读者可以思考一下,如果0在A矩阵的“内部”,是没有这样的性质的。
例2:如果
是下三角矩阵,那么
呢?比如:
,那么
,
是一个对角阵,并且