線性代數講義05 | 什樣的方程組才有解?兼談行列式的來源

線性代數講義05 | 什樣的方程組才有解?兼談行列式的來源

來自專欄數學 | 學清楚,講明白7 人贊了文章

在上一講【點擊回顧】中我們講清楚了線性方程組解的「存在性」,還提到,當方程組有解的前提下,解的「唯一性」可以從「解線性方程組」角度給出一個直觀解釋——但我們同樣提到,對於多元方程組而言,計算係數矩陣秩有時候並不是那麼容易。

這一講我們將要引入一個新的重要概念——通過計算它的結果,我們可以直接判斷線性方程組解的唯一性,我們本講的核心是:

Q | 在什麼樣的情況下一個線性方程組的解是唯一的?

  • 這是《線性代數》系列講義的第05篇,本文整理自以下課程:

線性代數入門:從方程到映射?

www.zhihu.com圖標


在本系列講義的第4講【點擊回顧】中,我們講清楚了線性方程組解的「存在性」——即一個方程組在什麼情況下有解、在什麼情況下沒有解;我們在上一講的開篇還提到,當方程組有解的前提下,解的「唯一性」可以從「解線性方程組」的角度被直觀地解釋為:

如果一個線性方程組中有價值的方程數量等於未知量的個數,那麼方程組就會有唯一的一個解;如果一個線性方程組中有價值的方程數量小於未知量的個數,那麼方程組中就一定會有一些被稱作「自由變數」的未知數,這樣的線性方程組會有無窮多個解。

我們在第4講【點擊回顧】中已經通過引入「極大線性無關組」的概念、詳細地解釋了怎樣定義一個方程組中「有價值的方程」——從而知道的結論是:在已知方程組有解的前提下,如果一個n元線性方程組的增廣矩陣拆分為行向量後,所有的行向量極大線性無關組中有n個向量,那麼這個方程組有唯一解;如果極大線性無關組中向量的個數小於未知元個數,那麼它有無窮多個解。

行列式:線性方程組解的唯一性判別

這個結論如果從「矩陣的秩」的角度重述,就是:在方程組增廣矩陣和係數矩陣秩相等的前提下,如果係數矩陣的秩等於未知元的個數、那麼方程組的解是唯一的;如果係數矩陣的秩小於未知元的個數,那麼方程組的解是無窮多的。

但是、矩陣秩的計算有時候並不是那麼容易。

而且、從上文的表述中我們可以看出:判斷一個方程組解是不是唯一,其實並不需要我們精確地計算出係數矩陣的秩——事實上、我們只需要判斷一下這個係數矩陣的秩和未知元個數間的大小關係就可以了。

下面我們引入一個新的量:「行列式」——通過計算它的結果,我們可以直接判斷線性方程組解的唯一性。

行列式是怎麼來的:二維示例

在這一部分,我們嘗試換一種角度來解線性方程組,這個方法的思想同樣也是消元,但是不同於Gauss消元法。

先以最簡單的二元線性方程組為例:

left{ egin{array}{l} a_{11}x_{1}+a_{12}x_{2}=b_{1}\ a_{21}x_{1}+a_{22}x_{2}=b_{2}\ end{array} 
ight.

我們可以在第一個方程兩側乘 a_{22} ,在第二方程兩側乘上 a_{12} ,原式變為:

left{ egin{array}{l} a_{11}a_{22}x_{1}+a_{12}a_{22}x_{2}=a_{22}b_{1}\ a_{12}a_{21}x_{1}+a_{12}a_{22}x_{2}=a_{12}b_{2}\ end{array} 
ight.

兩式相減,含有 x_{2} 的項就被消掉了,得到的結果是:

(a_{11}a_{22}-a_{12}a_{21})x_{1}=b_{1}a_{22}-b_{2}a_{12} ,

同樣地、在第一個方程兩側乘 a_{21} ,在第二方程兩側乘上 a_{11} ,兩式相減,得到 x_{2} 的結果是:

(a_{11}a_{22}-a_{12}a_{21})x_{2}=b_{2}a_{1}-b_{1}a_{21} .

請你注意觀察:這兩個解的係數都是 a_{11}a_{22}-a_{12}a_{21} ,——它們都與該方程組係數矩陣:

left( egin{array}{cc} a_{11} & a_{12} \ a_{21} & a_{22} \ end{array} 
ight) 中的元素有關。

進一步地、仔細觀察這個係數矩陣和分母之間的運算規則,再把這個關係對應到兩個解的常數項部分: x_{1}x_{2} 的常數項部分 a_{11}a_{22}-a_{12}a_{21}b_{2}a_{1}-b_{1}a_{21} 實際上分別對應了以下兩個矩陣:

left( egin{array}{cc} b_{1} & a_{12} \ b_{2} & a_{22} \ end{array} 
ight) quad , quad left( egin{array}{cc} a_{11} & b_{1} \ a_{21} & b_{2} \ end{array} 
ight)

我們給這種「運算規則」一個新的名字:行列式,它的運算規則如下定義:

left| egin{array}{cc} a_{11} & a_{12} \ a_{21} & a_{22} \ end{array} 
ight| =a_{11}a_{22}-a_{12}a_{21}

——這就是一個行列式的二階形式。

至此、我們可以將這個二元方程組的解改寫成更為好看的形式:

left{ egin{array}{cc} left| egin{array}{cc} a_{11} & a_{12} \ a_{21} & a_{22} \ end{array} 
ight| x_{1}= left| egin{array}{cc} b_{1} & a_{12} \ b_{2} & a_{22} \ end{array} 
ight| \ \ left| egin{array}{cc} a_{11} & a_{12} \ a_{21} & a_{22} \ end{array} 
ight| x_{2}= left| egin{array}{cc} a_{11} & b_{1} \ a_{21} & b_{2} \ end{array} 
ight| \ end{array} 
ight.

如果 left| egin{array}{cc} a_{11} & b_{1} \ a_{21} & b_{2} \ end{array} 
ight| 
eq 0 ,我們可以直接將它移項到等號右側,這時整個方程組的解是唯一的.

行列式是怎麼來的:三維擴展

進一步地、我們用同樣的方式考慮一個稍微複雜一點的三元線性方程組:

left{ egin{array}{l} a_{11}x_{1}+a_{12}x_{2}+a_{13}x_{3}=b_{1} qquad cdots cdots quad E_{1} \ a_{21}x_{1}+a_{22}x_{2}+a_{23}x_{3}=b_{2} qquad cdots cdots quad E_{2} \ a_{31}x_{1}+a_{32}x_{2}+a_{33}x_{3}=b_{3} qquad cdots cdots quad E_{3} \ end{array} 
ight.

它的處理方法與二維情形是類似的,但是計算難度要複雜許多,我們以計算$x_{1}$為例:整個計算的核心是依次消掉式子中含有 x_{2}x_{3} 的項,方法如下:

  • 第一步:消掉含有 x_{2} 的項 | 我們的方法是:在方程 E_{1} 兩側同時乘以 a_{22} 、在方程 E_{2} 兩側同時乘以 a_{12},兩式相減得到 widetilde{E_{1}} ;在 E_{3} 兩側同時乘以 a_{12} 、在 E_{1} 兩側同時乘以 a_{32} ,兩式相減得到 widetilde{E_{2}} ;在 E_{2} 兩側同時乘以 a_{32} 、在 E_{3} 兩側同時乘以 a_{22} ,兩式相減得到 widetilde{E_{3}} ——至此,你會發現整個方程組中含有 x_{2} 的項全部被消去了:

left{ egin{array}{l} (a_{11}a_{22}-a_{12}a_{21})x_{1}+(a_{13}a_{22}-a_{12}a_{23})x_{3}=b_{1}a_{22}-b_{2}a_{12}  cdots  widetilde{E_{1}} \ (a_{12}a_{31}-a_{11}a_{32})x_{1}+(a_{12}a_{33}-a_{13}a_{32})x_{3}=b_{3}a_{12}-b_{1}a_{32}  cdots  widetilde{E_{2}} \ (a_{21}a_{32}-a_{22}a_{31})x_{1}+(a_{23}a_{32}-a_{22}a_{33})x_{3}=b_{2}a_{32}-b_{3}a_{22}  cdots  widetilde{E_{3}} \ end{array} 
ight.

  • 第二步:消掉含有 x_{3} 的項 | 我們的方法是:在 widetilde{E_{1}} 兩側同時乘以 a_{33} ,在 widetilde{E_{2}} 兩側同時乘以 a_{23} ,在 widetilde{E_{3}} 兩側同時乘以 a_{13} ,三式相加,使得整個方程組中含有 x_{2} 的項全部被消去:得到:

[a_{13}(a_{21}a_{32}-a_{22}a_{31})+a_{23}(a_{12}a_{31}-a_{11}a_{32})+a_{33}(a_{11}a_{22}-a_{12}a_{21}) ]x_{1}=\ a_{13}(b_{2}a_{32}-b_{3}a_{22} )+a_{23}(b_{3}a_{12}-b_{1}a_{32} )+a_{33}(b_{1}a_{22}-b_{2}a_{12} )

拆分後,可以看到 x_{1} 的係數和常數項各有6項;其係數項只與方程組係數矩陣中的元素相等,而且依次對比各項、我們可以發現常數部分的六項只不過是將係數部分六項中的 a_{11}a_{21}a_{31} 分別替換為 b_{1}b_{2}b_{3} 。類比二元方程組的寫法,我們可以記:

left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight| x_{1}= left| egin{array}{ccc} b_{1} & a_{12} & a_{13}\ b_{2} & a_{22} & a_{23}\ b_{3} & a_{32} & a_{33}\ end{array} 
ight|

很明顯,係數項對應行列式的定義是:

left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight|= egin{array}{c} a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31}+a_{12}a_{23}a_{31}\ -a_{11}a_{23}a_{32}+a_{11}a_{22}a_{33}-a_{12}a_{21}a_{33}\ end{array}

常數項對應行列式的定義是:

left| egin{array}{ccc} b_{1} & a_{12} & a_{13}\ b_{2} & a_{22} & a_{23}\ b_{3} & a_{32} & a_{33}\ end{array} 
ight|= egin{array}{c} a_{13}b_{2}a_{32}-a_{13}a_{22}b_{3}+a_{12}a_{23}b_{3}\ -b_{1}a_{23}a_{32}+b_{1}a_{22}a_{33}-a_{12}b_{2}a_{33}\ end{array}

進而、類比二元函數組解的形式,我們可以猜測,按照同樣的代數符號: x_{2} 的解應該是:

left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight| x_{2}= left| egin{array}{ccc} a_{11} & b_{1} & a_{13}\ a_{21} & b_{2} & a_{23}\ a_{31} & b_{3} & a_{33}\ end{array} 
ight|

同樣、我們可以猜測 x_{3} 的解應該是:

left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight| x_{2}= left| egin{array}{ccc} a_{11} & a_{12} & b_{1}\ a_{21} & a_{22} & b_{2}\ a_{31} & a_{32} & b_{3}\ end{array} 
ight|

進行代數符號的替換後,我們可以驗證:事實的確是這樣的——這說明引入「行列式」這樣的代數符號後,我們可以用非常簡潔的形式來表示線性方程組的解。

更為關鍵的是,這種符號系統有一個好處:注意上面使用行列式表示的這組解:當係數矩陣的行列式 left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight| 
eq 0 時,我們可以移項、從而得到這個方程組唯一的解:

left{ egin{array}{l} x_{1}= frac{left| egin{array}{ccc} b_{1} & a_{12} & a_{13}\ b_{2} & a_{22} & a_{23}\ b_{3} & a_{32} & a_{33}\ end{array} 
ight|}{ left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight| } \ \ x_{2}= frac{left| egin{array}{ccc} a_{11} & b_{1} & a_{13}\ a_{21} & b_{2} & a_{23}\ a_{31} & b_{3} & a_{33}\ end{array} 
ight|}{ left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight| } \ \ x_{3}= frac{left| egin{array}{ccc} a_{11} & a_{12} & b_{1}\ a_{21} & a_{22} & b_{2}\ a_{31} & a_{32} & b_{3}\ end{array} 
ight|}{ left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight| } end{array} 
ight.

——這句話的等價形式是:如果線性方程組的解不唯一,那麼它係數矩陣的行列式肯定等於零。

事實上,這句話的逆命題也是正確的,換言之、在已知方程組有解的前提下,「線性方程組係數矩陣行列式不為零」是「改方程組有唯一解」的充分必要條件——在任何一本初等的線性代數課本中,我們都可以讀到這個結論的詳細證明。

本講結論:行列式的定義與n元方程組解的唯一性判別

當我們試圖定義普遍形式下的n階行列式時,回過頭去再次觀察上面的解,就會發現每個行列式的六項之中有如下的規律:

  1. 每一項中的三個數遍布了整個行列式的每一行——比如這個公式中,所有項的形式都是 a_{1*}a_{2*}a_{3*}
  2. 事實上如果我們換一個角度觀察,每一項中的三個數還遍布了整個行列式的每一列。

所以,如果不考慮正負號,我們可以非常輕而易舉地知道這六項的產生方式:固定行號碼從小到大不變、然後對列號碼進行一個全排列即可。

最後解釋一下每一項前面的符號是怎麼產生的:固定所有元素下角標的行號碼從小到大之後,不改變次序地提取它的列角標(比如 a_{13}a_{21}a_{32} 這一項,提取出的列角標為 (3,1,2) ),對此:我們引入一個新的概念:逆序數:

給定一對不相等的數,如果前一個數大於後一個數,稱這樣的數對為「逆序對」,一列數中逆序對的數量稱為這列數的逆序數。

根據這個定義,我們重新觀察一下這個解:

left| egin{array}{ccc} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\ end{array} 
ight|= egin{array}{c} a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31}+a_{12}a_{23}a_{31}\ -a_{11}a_{23}a_{32}+a_{11}a_{22}a_{33}-a_{12}a_{21}a_{33}\ end{array}

你可以看到注意到 a_{13}a_{21}a_{32} 這一項前的符號是正,那是因為 (3,1,2) 這對數,逆序數就是2;

相應地、如果提取 a_{13}a_{22}a_{31} 這一項的列角標,得到的是 (3,2,1) ,它的逆序數就是3,注意到上式中 a_{13}a_{22}a_{31} 這一項前的符號是負;

逐次檢驗其他所有的項,我們的結論是相同的: a_{1i}a_{2j}a_{3k} 前面的符號應該是 -1^{	au(i,j,k)} ,其中 {	au(i,j,k)} 表示 (i,j,k) 這個數組的逆序數。

至此、我們解釋清楚了三階行列式一共有幾項(答案當是 3! )、各項的係數正負(引入了「逆序數」這個概念)以及各項主體部分是怎麼來的。

用這個方法來檢驗二階行列式,結論是一樣的,我們把這個結論推廣到一般形式:

對於n階行列式而言,它的定義方式是:

left|egin{array}{ccc}a_{11} & cdots & a_{1n} \vdots & ddots & vdots \ a_{n1} & cdots & a_{nn}end{array}
ight|= sum_{(j_1,j_2,cdots,j_n)}(-1)^{	au(j_1,j_2,cdots,j_n)}a_{1,j_1}a_{2,j_2} cdots a_{n,j_n}

其中 sum_{(j_1,j_2,cdots,j_n)} 表示這個行列式n個列角標進行一次全排列——這個定義告訴我們,n階行列式展開後應該有 n! 項。

以上就是大家在一般的《線性代數》教材中看到的關於矩陣行列式的定義來源,以及「線性方程組解的唯一性判別條件」的基本內涵。

推薦閱讀:

TAG:線性代數 | 高等數學 | 大學 |