對線性代數的深入領悟:來自數據科學家ZQ。
最近被一篇文章線性代數(同濟版)恥辱柱 (以下簡稱吐槽文)火了。這篇文章一出,即引起很多討論。一時間有覺得自己本來可以走上數學家之光輝大道感嘆被耽擱一生的,也有奮起反擊認為同濟版本考研非常有效的,還有照舊的「你來你上」型評論。真是好久沒見到一本線性代數就會引起這麼大的討論了。
今天我本人也就蹭個熱點,和大家聊聊這本同濟版本的線性代數。我自己在大學期間並沒有直接用這本作為課本。當年學校教線性代數好像沒有教材,就是老師直接每節課板書。自己當時買了同濟版的線代做為輔助課本。當時的印象是感覺老師也是基本上遵循同濟版的順序一個個概念教過來。到了畢業以後用線代用的基本很少。直到幾年前轉行了以後,要重新補補基礎,才又拿起線代。美帝這邊線代有名的是MIT Gilber Strang的課本(如下圖)。這看起來以後就發現這本書讓我以前不懂的地方豁然開朗。所以今天就想和大家說說,為什麼這個書入門更佳。
線代的教學順序到底應該是怎樣這個是吐槽文的第一個重點。這個我完全贊成。同濟版從行列式出發,第二章才講矩陣,第三第四章講向量和向量空間,然後接上線性空間和線性變換,最後是特徵值和二次型。說實話,要是手邊沒有一個同濟版的書,我是一定想不起來這個結構的。Strang的書就好多了,從解方程出發,到向量空間,線性變化,正交,行列式,然後特徵值,最後來個矩陣的數值計算和線性規劃來讓大家開開眼線性代數到底有什麼用。這個順序個人覺得更佳,更適合我這樣的工科背景的和學習線性代數希望馬上能用的學生。線性代數最早的起源從解方程組出發,所以從這裡開始引入線代的一些概念更加自然。當然,同濟版先從行列式開始也不是完全沒有道理。歷史上行列式對多元方程組的解起到很大的作用,這個作用現在已經完全沒落了,特別是各種高效的計算機上的矩陣分解算法讓解方程完全不需要使用行列式。但是,同濟版如果增加些「我們為什麼一開始要行列式呢?行列式曾經在解線性方程中間有什麼用呢?」,這樣把線性方程和行列式聯繫起來。這樣說不定學生進一步學習的興趣更濃。
線性代數的主要應用是什麼?這點我覺得是同濟版做的最不好的一點。這點其實在吐槽文裡面並沒有著重展開,卻是我覺得區分同濟版和Strang版的一個重要的方面。對於大部分工科學生來說,線性代數其實將來會非常有用。首先,很多非線性的關係最後都通過各種方法來線性近似。舉個例子,在分析裡面的Taylor展開可以在一個定域解決很多比較困難的非線性問題。這樣一個非線性的問題就轉化成了一個線性的問題去解決。這幾年來一直爆火的神經網絡,本質上也是一個大規模的線性近似一個非線性關係。而線性代數,其實就是一個很方便的處理很多線性方程的一個非常好用的工具。從這點上來說,它基本上成了所有現在應用數學領域的基礎。
同濟版的線性代數不是沒有應用的部分,這點吐槽文也說了。不過很多應用的部分講的不透,而且非常簡略。以至於讀者完全不知道學習的方法有什麼用,還以為這些應用的例子是特例。相比而言,Strang的書基本上從頭到尾都是用例子回答「這些有什麼用」此類的靈魂拷問。比如:LU分解(說起來LU分解我壓根在同濟版裡面就沒有找到)本質就是高斯消元解方程;矩陣的列空間,核空間和基爾霍夫電流定律的關係;正交關係裡面的正交和幾何中的投影的關係。AX=b這樣的線性方程組在幾何中的表示,以及QR分解在函數空間的推廣就是勒讓德多項式;特徵值和特徵矩陣和解微分方程的關係,以及利用特徵值和特徵矩陣可以快速得到矩陣的冪值,快速得到矩陣的冪值在馬爾科夫過程中的用途;最後部分講了正定矩陣在極值問題裡面的廣泛應用。
從一個工科生的角度來說,如此緊密的把數學工具和它的的應用結合讓我的學習更有動力。我不否認純粹數學體系的美,但是對於我而言學習線性代數主要為了用它。比如我在之前完全不明白為什麼要特徵值和特徵向量。Strang一上來就提出了一個微分方程,在解的過程中自然引出了特徵方程:
而上式就是本徵值方程。
其次讓人驚豔的是相似變換。想當年學習這個概念的時候完全不知道這個概念有什麼用。Strang用了一個線性變化的例子,展示了這個線性變換在兩套不同坐標系下的表示。直觀的表現出來相似變化其實就是同一個線性變換在不同坐標系下的表示。所以特徵矩陣就是一個坐標系換到另外一個坐標系的線性變換。而特徵值組成的對角陣就是在這個新坐標系下的線性變換的等價表示。當然,這裡的描述還是一個非常簡單的概括,而且Strang的描述比本人的高超多了。所以要詳細理解這個,還是建議去看Strang的書。在這裡引用這個例子主要是為了說明結合有無應用對於理解線性代數的概念有很大的差別。
讓我最感差別的就算是二次型部分了。在同濟版本中,二次型這章節完全就是定理的堆砌,唯一的和幾何的關係部分也就是二次型如何代表了各種圓錐曲線。看了Strang的這部分,才讓人真正理解到二次型原來就是在優化過程中經常見到的Hessian矩陣。而Hessian矩陣,又其實是多元函數在某個點的Taylor展開中的二次項前面的係數。如此這般打通,為什麼大家要這麼執著直到正定,半正定和負定二次型呢?因為正定Hessian矩陣一定保證函數在此取得極小點。同濟版的基本上有Strang書上的所有知識點,但是都是止於正定負定判斷。看了讓人覺得似乎二次型,正定矩陣這樣類似的概念就是從石頭縫裡蹦出來的一樣。
線性代數教學要推廣到什麼程度前面說的兩點其實大家一般共識度比較高。這第三點到底要在線性代數中間拓展更深的知識到什麼程度,那就見仁見智了。同濟版本基本完全沒有拓展,就是知識點的全覆蓋。有人在吐槽文的評論裡面說這主要是因為該書是為了全方位快速覆蓋考研知識點。這樣沒有拓展可以理解。Strang裡面其實有很多很有意思的拓展,讓人覺得線性代數很有意思。比如在線性空間和正交基之後涉及到了一點Hilbert空間,因為Hilbert空間的定義主要依賴於內積。然後據此從實數,複數組成的線性空間推廣到由函數組成的函數空間:矩陣中的內容不再是數字而是函數。矩陣中得到正交基的QR分解推廣到求正交函數。感覺Strang完全沒有「哦,這些超綱了」的感覺所以就刻意避開這些概念。當然,這些概念也被他在一個合適的地方拓展了開來。個人的感覺這樣類似的拓展其實是很有意思的,而且說實話我也很有興趣去進一步了解這些領域。所謂好書經常引人深思,估計不過如此吧?
所以說到最後到底應該用什麼?我強烈建議如果你是初學線性代數,或者是想重新溫習一下,都從Strang的這本書開始比較好。如果你還需要考研,那麼可以在看完Strang之後快速看一下同濟版以免遺漏任何考研要點。