剛接觸這門學科的同學可能都會提類似的問題。簡短的回答就是:
(1)我們所處的世界、宇宙太複雜了,很多現象都無法理解,更談不上用數學去描述;
(2)有一些符合特定條件的複雜問題,可以轉化為簡單的線性問題,線性問題就完全可以理解、完全可以被數學所描述(怎麼把複雜問題轉為線性問題是別的學科要解決的,比如說微積分);
(3)線性代數就是研究怎麼解決線性問題的。
簡短的回答結束,下面會在該回答基礎展開,給出更詳細的闡述。
舉兩個例子,展示下我們所處的世界、宇宙到底有多複雜。1.1 三體
科幻小說《三體》描述了一個三體世界,這是一個周圍有三個「太陽」的行星(這樣的行星在宇宙中是有原形的):
在引力的作用下,三個「太陽」互相推拉,導致它們的運行軌跡十分複雜,這樣的問題可以稱為「三體問題」。其中的行星(下圖中最小的球體),也就是三體世界被牽扯著四處運動:
這樣導致的結果是,三體世界上的環境非常惡劣:如果三個「太陽」同時靠近它,那麼溫度就會非常高;三個「太陽」同時遠離,則又變成冰封大陸;只有在三個「太陽」不遠不近、不多不少的靠近它時,會有那麼一段適合生物發展的時期。
在這樣殘酷的環境中,反覆地毀滅和創造下,孕育出了比人類先進很多的三體文明。就是這樣的先進文明也沒有辦法預測三個「太陽」的軌跡。有可能短暫地預測成功了,但是偶爾路過的彗星,或者遠處的超新星爆炸等,又會給非常不穩定的三體系統帶來攪動,導致運動軌跡重新變得撲朔迷離。
1.2 散熱
三體的例子很遙遠,下面來看一個生活中的例子。下面是電腦裡面的顯卡,左側是顯卡風扇。從動圖中可以看出,工作中的顯卡有的地方溫度很高,風扇吹出來的風不斷在給顯卡降溫:
由於各種器件的存在,以及氣流的相互影響,導致風的運動非常複雜。假如要去計算某一時刻、某一點的風力大小和方向,可想而知難度會有多大。
相對於複雜的世界而言,線性問題是非常簡單的。下面籠統說下什麼是線性問題。
2.1 線性
有一類幾何對象,比如立方體、直線、平面,看上去都是有稜有角的,都是「直」的,在數學中稱為 線性(這麼說肯定不嚴格,可以暫時這麼通俗地理解):
2.2 線性問題
要處理它們,以及和它們相關的問題就非常簡單。比如在高中就學過,兩根直線可以用兩個線性方程來表示,想求它們交點的話:
聯立出兩者的方程組,求出該方程組的解就可以得到交點:
這裡舉的例子很簡單,隨著後面的深入學習就會知道,線性問題還是有一定的複雜性,不然不會需要《線性代數》這門學科來研究線性問題。
複雜的世界介紹了,簡單的線性問題也介紹了,之前說了,某些複雜問題可以轉為簡單的線性問題,或者稱為複雜問題可以 線性化 ,下面就來看幾個例子。
3.1 靜態
不規則曲線挺複雜的,不過在一定的條件下, 點附近的曲線可以用一根直線來代替(這是《單變量微積分》中的內容):
不規則曲線也蠻複雜的,也是在一定的條件下, 附近的曲面可以用一個平面來代替(這是《多變量微積分》中的內容):
3.2 動態
在5G通信中,會遇到各種各樣複雜的周期波,我們可以通過正弦函數來近似這些周期波(這是《信號與系統》中的內容):
為什麼要用正弦函數來近似?這是因為,如果將一根線段旋轉一圈,記錄該線段在 y 軸上的軌跡,得到的就是正弦函數:
也就是說,正弦函數實際上是運動的線段,也是線性的。那麼用正弦函數來近似周期波,就相當於將各種複雜的周期波的問題給線性化了。
之前的例子比較直覺,下面通過人臉識別給出一個具體的例子,雖然相對於真正的應用而言,這個例子已經極度簡化了,大家還是可以看到是怎麼通過線性化來解決像人臉識別這樣的複雜問題的(下面的圖片出自 這裡)。
下圖中,有兩張照片是同一個人的:
對於這個問題,人是很容易分辨出來的,但計算機應該怎麼辦呢?其中一種方法就是將之線性化。首先,給出此人更多的照片:
將其中某張照片分為眼、鼻、嘴三個部位,這是人臉最重要的三個部位。通過某種算法,可以用三個實數來分別表示這三個部位,比如下圖得到的分別是 150 、30、20:
將所有這些照片分別算出來,用三維坐標來表示得到的結果,比如上圖得到的結果就是 (150,30,20) 。將這些三維坐標用點標註在直角坐標系中,發現這些點都落在某平面上,或該平面的附近。因此,可認為此人的臉線性化為了該平面:
將人臉線性化為平面後,再給出一張新的照片,按照剛才的方法算出這張照片的三維坐標,發現不在平面上或者平面附近,就可以判斷不是此人的照片:
總結下,人臉識別就是把之前的人臉線性化為平面,然後判斷新的照片是否在該平面內:
這裡面有兩個數學問題:
(1)怎麼表示人臉線性化後的平面?
(2)怎麼判斷人臉是否在該平面內?
線性代數提供了這兩個數學問題的解決方案。
5.1 向量和向量空間
第一個問題,怎麼表示人臉線性化後的平面?線性代數提供了向量或向量空間來表示平面、直線以及立體等線性的幾何對象:
5.2 矩陣函數
第二個問題,怎麼判斷人臉是否在該平面內?線性代數提供了關於向量和向量空間的函數,也就矩陣函數,或者簡稱為矩陣。這樣可以很方便的判斷出新的照片是否在之前線性化得到的平面上(下面的不等於就表示不在平面上):
綜上,線性代數要學習的內容就是如何解決線性問題(再重複一下,如何把複雜問題線性化是別的學科的內容,比如《微積分》、《信號與系統》等),我們的《線性代數》課程會討論的線性問題如下:
掌握了以上內容,才具備了處理複雜問題的部分基礎能力,因此線性代數是工科、理科的必修科目。