文章目录
前言
前文中介绍了线性方程组的矩阵表示,并从矩阵表示的角度分析了消元法的过程与结果。那么消元法过程中采取的换行,数乘,以及乘系数求和操作放在矩阵中,会是什么样呢?可以用矩阵运算的方式表示这些操作吗?本文将解答这个问题
一、行向量的线性组合
首先我们复习一下1.1中提到的,将线性方程组看作求解一组(列)向量的加权求和的系数,即线性组合系数。如下式所示
A x = ( a 1 a 2 a 3 ) x = b = x 1 a 1 + x 2 a 2 + x 3 a 3 \mathbf{Ax} = \left( \begin{array}{ccc} \bm{a}_1 & \bm{a}_2 & \bm{a}_3 \\ \end{array} \right)x=b=x_1\bm{a}_1+x_2\bm{a}_2+x_3\bm{a}_3 Ax=(a1a2a3)x=b=x1a1+x2a2+x3a3
其中 a i \bm{a}_i ai为矩阵中的列向量。那么通过对称性我们容易想到,如果我们把 x x x放在矩阵左边会怎样?为了保证矩阵乘法仍然可以进行(左矩阵的列数等于右矩阵的行数),也为了未知数的系数仍然与原线性方程组保持一致,我们需要对 A \bm{A} A和 x x x做转置,从而得到下列式子:
x T A T = x ( a 1 T a 2 T a 2 T ) = b = x 1 a 1 T + x 2 a 2 T + x 3 a 3 T \mathbf{x^TA^T} = \bm{x}\left( \begin{array}{c} \bm{a}_1^T \\ \bm{a}_2^T\\ \bm{a}_2^T \\ \end{array} \right)=b=x_1\bm{a}_1^T+x_2\bm{a}_2^T+x_3\bm{a}_3^T xTAT=x a1Ta2Ta2T =b=x1a1T+x2a2T+x3a3T
可以看到,虽然行列关系变了,但是得到方程仍然不变,只是原本对列向量做线性组合,变成了对行向量 a i \bm{a}_i ai做线性组合。
因此,一个线性方程组可以看成是对列向量进行线性组合,也可以看成是对行向量进行线性组合,这取决于在做矩阵表示时给系数矩阵 A A A和未知数矩阵 x x x安排的位置。左乘 x x x就是对矩阵做行处理,右乘 x x x就是对矩阵做列处理。
二、初等变换
现在,我们回顾一下在消元法中所作的三种操作:换行,数乘,乘系数求和(我们称为初等行变换)。有没有发现,所有这三种操作就是在对矩阵的行向量做线性组合。
通过矩阵乘法,我们知道矩阵运算得到的第 i i i行的结果,就是以左乘矩阵第 i i i行为线性组合系数,对行向量进行线性组合。那么如果我想交换矩阵的第 i i i行和第 j j j行,同时保持其他行不变。那么我们就需要左乘一个这样矩阵:
第 i i i行的第 j j j列要是1,其他列均为0;第 j j j行的第 i i i列为1,第 j j j列为0;其他行只有行列相等处元素(即主对角线)为1,其余为0。
例如一个交换第二行第三行的左乘矩阵如下:
E = ( 1 0 0 0 0 1 0 1 0 ) \mathbf{E} = \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0& 0&1 \\ 0 & 1 & 0 \\ \end{array} \right) E= 100001010
第一行对矩阵左线性组合,结果只有第一行向量被保留,其余向量系数均为零,因此计算结果第一行向量仍然不变。类似的,要交换的两行恰好错开,分别保留了交换对应的其他行的行向量,自己行的行向量系数为0丢弃。因此这样一个矩阵左乘另一个矩阵结果就会把原矩阵的第二第三行交换位置。
我们用同样的方法,可以得到数乘的变换矩阵:
E = ( 1 0 0 0 k 0 0 0 1 ) \mathbf{E} = \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0& k&0 \\ 0 & 0& 1 \\ \end{array} \right) E= 1000k0001
该数乘矩阵对第一行第三行保留不变,对第二行进行了数乘k的操作。
最后也能得到乘系数求和矩阵:
E = ( 1 0 0 k 1 0 0 0 1 ) \mathbf{E} = \left( \begin{array}{ccc} 1 & 0 & 0 \\ k& 1&0 \\ 0 & 0 & 1 \\ \end{array} \right) E= 1k0010001
该矩阵将第一第三行保持不变,但是第二行的结果是第一行乘上系数k后与第二行的和。
由此,我们知道,线性方程组做消去法的流程,其实就是对系数矩阵左乘这些变换矩阵,用矩阵去表达将一个线性方程组通过消去法变成上三角矩阵U的过程就是:
E n . . . E 3 E 2 E 1 A = U \bm{E_n}...\bm{E_3E_2E_1A}=\bm{U} En...E3E2E1A=U
其中,这些对应三种变换的矩阵 E E E称之为初等矩阵 。用一个初等矩阵去左乘另一个矩阵其实就是对该矩阵做初等行变换 ,又右乘它则为初等列变换 。特别的,对矩阵某行向量数乘上1的矩阵又被称为单位矩阵 I I I,它不会改变矩阵的数值。
I = ( 1 0 0 0 1 0 0 0 1 ) \mathbf{I} = \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0& 1&0 \\ 0 & 0 & 1 \\ \end{array} \right) I= 100010001
每个初等矩阵都可以看作是对单位阵做相同的初等变换得到,因为 E = E I = I E \bm{E}=\bm{EI}=\bm{IE} E=EI=IE。
总结
我们通过矩阵运算表示了线性方程组,又通过对消去法中用到的初等变换进行了矩阵表示,从而所有线性方程组的求解过程都可以用矩阵运算来表示了,即找到一系列的初等矩阵乘上系数矩阵与右边的向量 b b b,使其变成上三角矩阵,然后便能直观看出解。