線性方程組之一:列向量觀點

線性方程組應該是線性代數中貫穿始終的一個問題,作為本專欄的開篇,我想聊一聊線性方程組。可能線性代數學的還可以的讀者多半會覺得線性方程組是trivial的:它是中學時學到的二元一次方程組的直接推廣,關於解的存在性、唯一性都有理論上的判別依據,要具體地求解的話又有Cramer法則,還有什麼可說的呢?

其實我個人認為,線性方程組裡面大有門道,理解好線性方程組,對於理解線性代數的基本概念大有裨益。本文主要從列向量的觀點去考察線性方程組,後續還會從行向量的觀點、實際求解的角度去討論。

首先我們回憶一下,一個線性方程組用矩陣寫法可以表示為Ax=b,這裡的A是一個mtimes n的矩陣,x是一個n維向量,b是一個m維向量,所有的分量都在實數域bf R上取值。如果b是零向量,我們往往稱之為齊次線性方程組,否則成為非齊次線性方程組 ,後面大家會看到,齊次與非齊次,在很多場景下表現出截然不同的性質。

本文既是說從列向量的觀點區考察,那麼列向量在哪呢?如果我們把矩陣A分塊為nm維向量vec alpha_1,vec alpha_2,...,vecalpha_n,並且把未定元x寫為分量形式vec x=(x_1,x_2,...,x_n)^T,則有

Ax=(vec alpha_1,vec alpha_2,...,vec alpha_n)left(begin{matrix}x_1 x_2 vdots x_nend{matrix}right) =x_1vecalpha_1+x_2vecalpha_2+dots+x_nvecalpha_n=b

這樣改寫之後有什麼好處呢?似乎只是換湯不換藥而已。先考慮一下b=0的情況,也就是

Ax=(vec alpha_1,vec alpha_2,...,vec alpha_n)left(begin{matrix}x_1 x_2 vdots x_nend{matrix}right) =x_1vecalpha_1+x_2vecalpha_2+dots+x_nvecalpha_n=0

此時聯想一下線性代數中的兩個重要概念——線性相關與線性無關,就看得出列向量表達的意義了。所謂的齊次線性方程組是否有非零解,實際上也就是在問係數矩陣A的列向量是否是線性相關的。如果A的列向量線性相關,那麼根據線性相關的定義,必然存在不全為零的數(lambda_1,lambda_2,dots,lambda_n)使得lambda_1vecalpha_1+lambda_2vecalpha_2+dots+lambda_nvecalpha_n=0,那麼也就是說這個齊次線性方程組必然有非零解。反之,如果A的列向量線性無關,該齊次線性方程組必然只有零解。

從這一角度,我們回想一下關於齊次線性方程組的一些結論。我們在線性代數中都學過,如果n> m,那麼Ax=0必然有非零解。直觀上看,方程的個數m可以看成是「約束」,而未定元的個數n可以看成是「自由度」,「自由度」比「約束」多一定有(非平凡)解,這一結論是符合直覺的。如何用更數學的語言去表達呢?用我們的列向量的觀點就一目了然。我們有nm維向量vecalpha_1,vecalpha_2,dots,vecalpha_n,由維數的定義,n>m必然導致它們是線性相關的,立即可知這樣的齊次線性方程組是有非零解的。

如果n=mA就退化為了我們最喜歡的方陣的情形。我們學過,如果A是可逆矩陣,那麼Ax=0只有平凡解,也就是零解;如果A不可逆,那麼一定有非零解。或者等價地,也可以從行列式|A|是否為0的角度去闡述這一結果。前一半結論非常顯然,直接在方程兩邊乘以A^{-1}即可見。對於後一半結論,我們同樣從列向量的角度去考慮。矩陣A不可逆,說明什麼?說明rank(A)<n,而根據秩的定義(極大線性無關組的個數)我們又知道,A的列向量必定是線性相關的,因而必有非零解。同理,矩陣A可逆說明rank(A)=n,也就是A列滿秩,列向量線性無關,因而只有零解。從多個角度看待這一結果,最終殊途同歸。

到此為止考察的都是齊次線性方程組,對於非齊次的情形又如何?我們回到列向量表達式

Ax=(vec alpha_1,vec alpha_2,...,vec alpha_n)left(begin{matrix}x_1 x_2 vdots x_nend{matrix}right) =x_1vecalpha_1+x_2vecalpha_2+dots+x_nvecalpha_n=b

bne 0的時候,這個方程有什麼意義呢?這牽涉到線性表示的概念,粗略地說,如果這個方程有解,也就是說b可以由A的列向量vec alpha_1,vecalpha_2,dots,vecalpha_n線性組合表示出來。用線性空間的語言來表述,就是我們有了向量vec alpha_1,vecalpha_2,dots,vecalpha_n,考慮它們張成的子空間

Span({vecalpha_1,vecalpha_2,dots,vecalpha_n})={lambda_1vecalpha_1+lambda_2vecalpha_2+dots+lambda_nvecalpha_n | lambda_1,lambda_2,dots,lambda_n in bf R}

根據線性空間的定義,非常容易驗證這確實是{bf R}^m的子空間。問非齊次線性方程組Ax=b是否有解,就等價於問我們是否有bin Span(vecalpha_1,vecalpha_2,dots,vecalpha_n)。這也就揭示了齊次線性方程組非齊次線性方程組的本質不同——前者是考慮線性相關與線性無關,後者是考慮線性表示

關於線性表示這一點,我想放到低維的情況來看非常明顯。比如說我們考慮m=2,n=1,方程組這時可寫為

left(begin{matrix}a_1a_2end{matrix}right)x=left(begin{matrix}b_1b_2end{matrix}right)

還記得高中數學向量運算的讀者,應該都很容易看出,這就是在問向量(a_1,a_2)^T,(b_1,b_2)^T是否共線,而所謂的共線,正是我們這裡談論的bin Span(vecalpha_1,vecalpha_2,dots,vecalpha_n)b可以由vec alpha_1,vecalpha_2,dots,vecalpha_n線性表示的低維版本。

對於非齊次線性方程組,從列向量觀點出發我們可以得到什麼結果呢?這裡我主要想要討論相容性定理。所謂的相容性定理說的是Ax=b如果有解,當且僅當rank(A,b)=rank(A),也就是說在矩陣A後面添加一列b得到的新矩陣(A;b)與原來的係數矩陣A具有相同的秩。從列向量觀點考察,Ax=b有解當且僅當b可以由vec alpha_1,vecalpha_2,dots,vecalpha_n線性表示,而秩的定義是一個向量組裡極大線性無關組的向量個數,由於b已經可以被vec alpha_1,vecalpha_2,dots,vecalpha_n線性表示了,也就是說在向量組vec alpha_1,vecalpha_2,dots,vecalpha_n添加上向量b,其秩並不會有改變,也就是相容性定理所陳述的內容。

最後,我們仍然討論一下A為方陣的情形。此時,如果A可逆(或者等價地,|A|ne0),那麼Ax=b一定有解x=A^{-1}b。這一結果是顯然的,但我在此提及此例就是想熟悉一下線性表示的觀點去看問題。A是可逆的,此時必有A的列向量是線性無關的,它們都是n維空間中的向量,又恰好有n個,因此一定構成R^n一組基。既然是基,那麼b一定可以由它們線性表示出來,也就是說有解。但是注意此處的並不是充要條件,也就是說有可能A不可逆,Ax=b仍然有解,原因在於只要bin Span(A)即可,這並不需要A可逆。

推薦閱讀:

lightGBM
搞機器學習/AI有什麼必備的數學基礎?|經驗之談+資源大全

TAG:线性代数 | 数学 | 机器学习 |