本专栏第一章的文章【1.3】《矩阵和矢量的乘法》介绍了如何把线性方程组表示为矩阵和矢量乘法的形式:
![]()
,其中
![]()
是线性方程组的系数矩阵。在第二章中,我们将要深入研究线性方程组解的问题,这是MIT线性代数课程中的第一个问题。本文作为第二章开篇,我们再来温习一下线性方程组解的本质。
让我们看看这个MIT数学系本科生课程中讨论的线性方程组吧:
![]()
,是不是小学生都会解这个二元一次方程组?相加消去
![]()
,然后口算出
![]()
,
![]()
。(我刚刚微信问了一下正在读小学六年级的外甥女,她真的给出了正确解答(●'◡'●))
你可能还记得它的几何意义:x-y平面两条直线的交点。从行的观点来看,每个方程都是平面上的一条直线,两条直线的交点
![]()
就是方程组的解。
行的观点:二元一次方程组的解是两条直线的交点。
而今我们学习了矢量,线性方程组可以被表示成
![]()
的形式。方程组
![]()
的矩阵和矢量乘法形式为
![]()
,其中
![]()
叫做方程组的系数矩阵。还记得矩阵和矢量乘法
列的观点吧?矩阵和矢量相乘可以看作矩阵列向量的线性组合,即:
![]()
。相应的,求线性方程组解的问题就转化为找出线性组合的系数,也就是矢量的“分解”(decomposition)问题。矢量的分解就好像在一个“扭曲”的坐标系中找到“坐标”,即正确的线性组合系数。如下图所示,
![]()
就是上例中的线性方程组的解。不出所料,它和行的观点得到的解是一样的。
矢量的分解。
我们再来看一个三维空间的例子:
![]()
。以
行的观点来看,每个方程表示三维空间中的一个平面,所以方程的解就是三个平面的交点,很常见的情况就是三个平面交于一点,这点的坐标正是方程组的解。以
列的观点来看,
![]()
,就是找到列向量的线性组合系数,也就是矢量的分解。读者可以试着自己在x-y-z坐标系中画出行的观点和列的观点,细细体会一下从不同角度求解线性方程组。
当情况发展到n维空间,也就是n个方程n个未知数的时候,根据行的观点我们已经无法想象它的几何形式:高维空间的平面已经不能可视化;而列的观点依然是矢量的线性组合和分解问题。本章接下来的文章中,我将介绍系统的求解线性方程组的方法:高斯消元法,应用高斯消元法,无论n多大都可以求解方程组。
例:
![]()
试着解释一下这个线性方程组为什么没有解。
解:用第三个方程减去前两个方程:左边为0,也就是说无论
![]()
如何取值,第三个方程减去前两个方程后左边都只能是0;而右边等于-1。这就矛盾了,也就是无解。
另一方面,如果我们观察列矢量:
![]()
和
![]()
,可得:
![]()
。也就是说方程系数矩阵的第三个列向量可以由前两个列向量线性组合得到,即第三个列向量在前两个列向量线性组合的平面中。这就意味着三个列向量的线性组合是平面,而无法张成整个空间。那么如果方程右边的列向量
![]()
不在这个平面内,方程组就无解。
如果将方程组变为
![]()
,相应的列向量就变为
![]()
和
![]()
。这三个列向量的线性组合是整个
![]()
,它们构成
![]()
的一组
基(basis)。无论右边的矢量为何,方程组总有解,并且解是唯一的。
例:证明线性方程组不会只有2组解。
证明:如果
![]()
分别是线性方程组
![]()
的解,那么
![]()
,只要
![]()
,那么
![]()
,也就是说
![]()
都是方程组的解,有两组解的方程组必然有无数组解。
例:如果把
![]()
方程组中第一个方程加到第二个方程上,行的观点中三维空间中的平面会变化吗?方程的解会变化吗?
答案:将第一个方程加到第二个方程上,则第二个方程变为:
![]()
。所以行的观点中,第一个平面和第三个平面不变(下图中粉色和灰色平面),第二个平面(下图中蓝色平面)变成新的平面。但是,它们的交点是不变的,也就是方程组的解不变!这是重要的结论,是即将介绍的高斯消元法的基础。
行的观点:方程的解就是三个平面的交点。
例:第一个方程加第二个方程等于第三个方程:
![]()
,前两个方程分别表示三维空间中的两个平面,它们交于一条直线
,这条直线和第三个方程什么关系?方程组解的情况如何?
答:任取直线上的一点
![]()
,它必然满足
![]()
,相加可得:
![]()
,即这条直线上任一点都在第三个方程表示的平面内。因此,三个平面相交于一条直线,这意味着线性方程组有无穷多解。
如果将第三个方程变为
![]()
,则前两个平面相交线上的点不再在第三个平面上,这也意味着方程组无解。
例:找到合适的线性组合系数,使得
![]()
这四个矢量的线性组合为
![]()
。
解:我们可以重新表示一下这个问题:
![]()
,它的系数矩阵是一个
上三角矩阵。通过观察不难得出求解顺序为:
![]()
。顺便说一句,这组特殊的矢量也叫“boostrapping set”。