我们讨论如何解线性方程组

    线性方程组1-求解 - 图1

    这里线性方程组1-求解 - 图2%5E%5Ctop#card=math&code=%5Cmathbf%7Bx%7D%3D%28x_1%2C%20%5Cldots%2C%20x_n%29%5E%5Ctop&id=sFA5L)是未知数,其它字母是已知常数(可以看成复数,虽然一般我们用实数为例子)。

    线性方程组1-求解 - 图3%7Bk%5Ctimes%20n%7D%2C%20%5C%3B%20%5Cmathbf%7Bb%7D%3D(b_1%2C%20%5Cldots%2C%20b_k)%5E%5Ctop#card=math&code=A%3D%28a%7Bij%7D%29_%7Bk%5Ctimes%20n%7D%2C%20%5C%3B%20%5Cmathbf%7Bb%7D%3D%28b_1%2C%20%5Cldots%2C%20b_k%29%5E%5Ctop&id=HH2i1), 原方程组用矩阵记号可以简洁地表示为线性方程组1-求解 - 图4. 这是”矩阵乘法为什么要像课本那样定义”的一个原因。矩阵线性方程组1-求解 - 图5#card=math&code=A%2C%20%5C%3B%20%28A%2C%20%5Cmathbf%7Bb%7D%29&id=j5DxO)分别称为原方程组的系数矩阵(coefficient matrix)增广矩阵(augmented matrix)

    最简单的情况当然是线性方程组1-求解 - 图6, 且方程组像下面的形式:

    线性方程组1-求解 - 图7

    这几乎是直接写出了解。此时系数矩阵是对角矩阵。

    稍微复杂一些,则是系数矩阵是上三角矩阵的形式:

    线性方程组1-求解 - 图8

    求解时从下向上,先解出线性方程组1-求解 - 图9, 然后代入倒数第二个方程线性方程组1-求解 - 图10求出线性方程组1-求解 - 图11. 如此类推 (back substitution).

    这时要注意几个问题:

    (i) 当且仅当线性方程组1-求解 - 图12时,方可解出线性方程组1-求解 - 图13, 否则无解(是整个方程组无解)!

    (ii) 进一步,Cramer’s rule告诉我们,方程组有唯一解的充要条件是所有的线性方程组1-求解 - 图14, 即系数矩阵的行列式线性方程组1-求解 - 图15不等于0.

    (iii) 如果线性方程组1-求解 - 图16,那么方程组有解当且仅当线性方程组1-求解 - 图17. 这时要注意,当方程组有解时,一定有多个解(因为一定有一些自变量可以取任意值).

    下面讨论一般情况(为简便,经常考虑3个未知数,线性方程组1-求解 - 图18个方程).

    例1:”百鸡百钱问题”:一只公鸡5文钱,一只母鸡3文钱,三只小鸡1文钱。用100文钱买100只鸡,有几种可能?

    解:设公鸡,母鸡,小鸡分别买线性方程组1-求解 - 图19只,则

    线性方程组1-求解 - 图20

    此外,对这个问题,还要假设线性方程组1-求解 - 图21都是非负整数。

    暂且不管线性方程组1-求解 - 图22是否整数,只看方程组(*). 它与下面的方程组同解:

    线性方程组1-求解 - 图23

    第一个方程乘以-15,加到第二个方程,得到新方程组

    线性方程组1-求解 - 图24

    这个方程组的第二个方程,两边乘以-1/6, 得 线性方程组1-求解 - 图25x_3%20%3D%20200#card=math&code=x_2%20%2B%20%287%2F3%29x_3%20%3D%20200&id=Hoac9). 这样,方程组(*)与下面的方程组

    线性方程组1-求解 - 图26x_3%20%26%3D%20200%2C%0A%5Cend%7Barray%7D%0A%20%5Cend%7Bcases%7D%0A#card=math&code=%5Cbegin%7Bcases%7D%5Ctag%7B%23%7D%0A%5Cbegin%7Barray%7D%7Bcccc%7D%0A%20x_1%20%2B%20%26%20x_2%20%2B%20%26x_3%20%26%3D%20100%2C%5C%5C%0A%20%26%20x_2%20%2B%20%26%287%2F3%29x_3%20%26%3D%20200%2C%0A%5Cend%7Barray%7D%0A%20%5Cend%7Bcases%7D%0A&id=uFntP)

    是同解方程组。

    方程组(线性方程组1-求解 - 图27)有3个未知数,但只有2个方程。此时可以选择任何一个未知数作为”常数”(自由变量),允许它取任意值,这样就化为2个未知数2个方程的情况,而且系数矩阵是上三角矩阵。即(3)的情形(不过线性方程组1-求解 - 图28)。我们选线性方程组1-求解 - 图29作为自由变量,则(线性方程组1-求解 - 图30)可以进一步化简为

    线性方程组1-求解 - 图31x_3%20%26%3D%20-100%2C%5C%5C%0A%20%26%20x_2%20%2B%20%26(7%2F3)x_3%20%26%3D%20200%2C%0A%5Cend%7Barray%7D%0A%20%5Cend%7Bcases%7D%0A#card=math&code=%5Cbegin%7Bcases%7D%5Ctag%7B%23%23%7D%0A%5Cbegin%7Barray%7D%7Bcccc%7D%0A%20x_1%20%2B%20%26%20%20%26%20%28-4%2F3%29x_3%20%26%3D%20-100%2C%5C%5C%0A%20%26%20x_2%20%2B%20%26%287%2F3%29x_3%20%26%3D%20200%2C%0A%5Cend%7Barray%7D%0A%20%5Cend%7Bcases%7D%0A&id=LiSQU)

    马上可以写出解:线性方程组1-求解 - 图32.

    我们把解写成列向量的形式:

    线性方程组1-求解 - 图33

    其中线性方程组1-求解 - 图34为任意常数。当然也可以写为

    线性方程组1-求解 - 图35

    线性方程组1-求解 - 图36是任意常数. 各位也可以选择线性方程组1-求解 - 图37线性方程组1-求解 - 图38作为自由变量,写出相应的解。

    注:百鸡百钱问题要求线性方程组1-求解 - 图39都是非负整数。这样线性方程组1-求解 - 图40必定要是3的倍数。最后求出百鸡百钱问题的解为

    线性方程组1-求解 - 图41%3D(0%2C%2025%2C%2075)%2C%5C%3B%20(4%2C%2018%2C%2078)%2C%5C%3B%20(8%2C%2011%2C%2081)%2C%5C%3B%20(12%2C%204%2C%2084).#card=math&code=%28x_1%2C%20x_2%2C%20x_3%29%3D%280%2C%2025%2C%2075%29%2C%5C%3B%20%284%2C%2018%2C%2078%29%2C%5C%3B%20%288%2C%2011%2C%2081%29%2C%5C%3B%20%2812%2C%204%2C%2084%29.&id=sVz26)

    例2:

    线性方程组1-求解 - 图42

    这个方程组无解,因为第2,3两个方程矛盾。具体而言,第二个方程乘以-3,加到第3个方程,得到线性方程组1-求解 - 图43这样的矛盾方程。用增广矩阵表示如下:

    线性方程组1-求解 - 图44


    我们看到,解线性方程组,是用消元法 (elimination),把方程组化简为系数矩阵是上三角的形状。为陈述解线性方程组的算法,我们引入下面的

    定义:所谓阶梯形(row echelon form)的矩阵,是指矩阵的形状满足下面两个条件:

    (i) 元素全部是零的行(如果有),要在非零行的下面;

    (ii) 矩阵的每一个非零行,从左向右数的第一个非零元素的下方,全部是零。

    例3:百鸡百钱问题中,我们最后得到的方程组线性方程组1-求解 - 图45#card=math&code=%28%5C%23%5C%23%29&id=H1mTI)的增广矩阵是

    线性方程组1-求解 - 图46

    这是阶梯形。

    例4:下面两个矩阵也是阶梯形:

    线性方程组1-求解 - 图47

    例5:下面这个矩阵不是阶梯形:

    线性方程组1-求解 - 图48


    现在指出解线性方程组(1)的算法——初等行变换!这个算法据说在Newton的笔记中就已经出现。现代通用的陈述一般认为是Gauss提出的。

    Step 0. 如果线性方程组1-求解 - 图49, 找一个非零的线性方程组1-求解 - 图50(最好线性方程组1-求解 - 图51),把原方程组第线性方程组1-求解 - 图52 行与第1行对调。以对调后的方程组为目标来求解。以下假设线性方程组1-求解 - 图53.

    Step 1. 第一行乘以线性方程组1-求解 - 图54, 这样第一个方程的线性方程组1-求解 - 图55的系数变成了线性方程组1-求解 - 图56

    Step 2. 第一行依次乘以线性方程组1-求解 - 图57, 加到其它各行(各个方程),把其它方程中的线性方程组1-求解 - 图58这一项消掉。这时系数矩阵变成了

    线性方程组1-求解 - 图59

    Step 3. 现在对线性方程组1-求解 - 图60这部分重复上面的步骤,我们的最后目标是把系数矩阵化为阶梯形.

    Step 4. 把增广矩阵化为阶梯形后,看系数矩阵的非零行数目,是否等于增广矩阵的非零行数目。如果相等,那么原方程组有解,如果不相等,那么无解。

    :这个判断准则看起来挺复杂,但只用一个最简单的例子就能解释:考虑线性方程组1-求解 - 图61的情形,即方程线性方程组1-求解 - 图62. 增广矩阵是线性方程组1-求解 - 图63#card=math&code=%28a~%5Cvdots~b%29&id=zRfHe), 系数矩阵是线性方程组1-求解 - 图64#card=math&code=%28a%29&id=NG3aR). 熟知线性方程组1-求解 - 图65有解只能是如下两种情况:线性方程组1-求解 - 图66 (唯一解线性方程组1-求解 - 图67, 或线性方程组1-求解 - 图68 (无数个解, 线性方程组1-求解 - 图69可以取任何数). 第一种情形即系数矩阵与增广矩阵的非零行数目都是1,第二种情形即系数矩阵与增广矩阵的非零行数目都是0.

    那么,有解时,如何能快速求出(写出)所有的解?这时要引入下面的:

    定义:简化行阶梯形(reduced row echelon form, RREF, 也称”行最简形”)是这样的矩阵:

    (i) 首先是阶梯形;

    (ii) 其次,阶梯形中每个非零行,从左往右数,第一个非零元要等于1;我们把这些1称为“主元”(pivot)

    (iii) 在(ii)中出现的那些主元”1”,它所在的列,其它元素都要是0.

    例6:百鸡百钱问题的矩阵(4’’)是简化阶梯形。

    例7:矩阵

    线性方程组1-求解 - 图70

    的简化行阶梯形是

    线性方程组1-求解 - 图71

    它的主元在第1,2,4列。

    继续解线性方程组的算法:

    Step 5. 观察主元在哪几列,用对应的未知数作为主要未知数,其它未知数作为自由变量,用自由变量表示出主要未知数,从而得到方程组的解。(求解的步骤是从最后一个非零行开始,往上逐个求解—back substituion)


    以上就是解线性方程组的算法。我们把上面的结论总结如下:

    定义:矩阵线性方程组1-求解 - 图72秩(rank)线性方程组1-求解 - 图73#card=math&code=r%28M%29&id=PYcfW)是指把这个矩阵化为阶梯形后,非零行的数目。

    定理:线性方程组(1) 线性方程组1-求解 - 图74 有解当且仅当线性方程组1-求解 - 图75%3Dr(A%2C%20%5Cmathbf%7Bb%7D)#card=math&code=r%28A%29%3Dr%28A%2C%20%5Cmathbf%7Bb%7D%29&id=RV2Of). 当它有解时,如果线性方程组1-求解 - 图76%3C#card=math&code=r%28A%29%3C&id=f9KfU)未知数的数目(即线性方程组1-求解 - 图77的列数),则有无穷个解,否则只有唯一的解。

    推论:当线性方程组1-求解 - 图78时,方程组线性方程组1-求解 - 图79称为齐次(homogeneous)线性的。它有唯一解当且仅当线性方程组1-求解 - 图80%3DA#card=math&code=r%28A%29%3DA&id=CGBjp)的列数。它的唯一解一定是线性方程组1-求解 - 图81.