線性代數筆記 1 - 矩陣的理解
這一系列筆記,是對線性代數(尤其是 Essence of Linear Algebra)的個人學習記錄以及相關資料補足。
向量 = 方向 + 量
有一天,你和損友走在路上,看到一個大美女。你想簡明扼要地告訴你損友,該怎麼說?
『看,我的十點鐘方向有個美女。』
然後你的損友就會順著這個方向找到美女了。
再有一天,你在一艘軍艦上望風,忽然有不明軍艦出現。你想簡明扼要地告訴船長,該怎麼說?
『船長,西北偏西方向,5 公里處,有一艘不明軍艦。』
看美女的時候美女隔得近,所以你只需要指出一個方向。看軍艦的時候,你不止指出了方向,還指出了距離。
要確定方向,就必須有一個原點(Origin),在這兩個例子中,原點都是你自己所在的位置。除了原點之外,還必須指出具體的方向。
在這個兩個例子中,方向是由環形的度數表示的(錶盤 / 指南針),這對計算是不友好的。所以,我們要把它轉化成用數字來表示。
對於一條線段來說,方向只需要一個數字來表示,因為它只能往左或者往右,比如以 是往左, 是往右。對於一個平面來說,方向則可以兩個數字來表示,一橫一縱,並由這兩個數字來指代方向,比如 就是往右上(東北方向)。
通過調節這些代表方向的數字,我們不僅可以表示方向,還可以加上一個量級信息。在實際運用中,這個量級信息有可能代表的是距離,也有可能代表力度、速度等別的信息。比如 與 指向同一個方向,但是量級不同。
我們把這個既指出方向,又指出量級的表示法抽象一下,就形成了向量(Vector)。由於向量總是像一個箭頭一樣指向某一個點,所以中文有些地方也稱其為「矢量」。
前面軍艦的例子大概可以表示為 這樣一個二維向量。如果是飛行員,要表達「在我九點鐘方向朝地面 15° 的位置有個不明物體」就需要更高維度的向量了。反過來,如果一個水管工要修水管,想知道一截水管中的水流向及速度,則只需要一維向量——即純數字。
向量說白了其實就是空間中某一個點的位置,但由於原點是不變的,所以我們可以腦補出一條線從原點發出,指向這個點。後續,在必要的時候,我們也要在腦海中把這條線去掉,只想像這個點。
矩陣 = 向量
二維向量比較容易可視化,所以拿二維向量來舉例。我們可以把 這樣一個向量用一個 矩陣(Matrix)來表示:
代表兩行, 代表一列。為什麼是豎著?因為就是這麼規定的。這一點需要死記住。
行 = 維度
不難看出,上面列出的向量有兩個維度,橫向和縱向。在矩陣裡面用行來表示維度,有幾行,就有幾維。
列 = 數量
如果是 的矩陣,則可以理解成兩個二維向量。
上述即是兩個二維向量: 和 。
如果是 的矩陣,則可以理解成三個二維向量,以此類推。
基 = 單位
向量本身只是抽象的數字,沒有單位。拿軍艦的例子來說,我們實際上給它加上了一個單位。數字本身是沒有單位的,所以對於任意的向量來說,我們都默認了一個標準單位,即 「」。
用矩陣表示就是:
我們可以這樣理解,現在有縱橫兩把尺子,兩把尺子上面都以「厘米」作為刻度,我在 處做一個標記。如果現在我把豎著的換成一把「英寸」為刻度的尺子,重新再找 ,則這個點的位置就不同了。用矩陣表示就是:
之所以乘以 2.54 是因為 1 英寸 = 2.54 厘米。
如果拋開厘米、英寸,僅以抽象數字來表示,則我們可以選擇任意數字作為向量的「刻度」,並把它也用一個矩陣來表示。比如,上一個矩陣的橫向單位是:
而縱向單位是:
這裡用 代表單位,即 unit。矩陣的單位有一個專屬名詞叫做「基」(basis)。在數學上用 和 表示(更多維度則 等以此類推,念做 ai-hat,jay-hat 等)。
前面我們講了,矩陣默認在每一個維度有一個基,就是 。所以,上述單位就可以表示為:
以及而我們前面的「厘米 / 英寸」的基則可以表示為:
以及不同維度的單位可以放在一起,則有:
由此可知,任何行列數相等(即 )的矩陣,我們都可以把它視作是一個 維度向量空間的基。
另一個看待基的辦法是把它視作坐標繫上的刻度標記。則上面這個基就可以理解為:
- 軸每隔 1 單位有一個刻度。
- 軸每隔 2.54 單位有一個刻度。
如果把這些刻度分別畫上線,就會看到一個個的格子。這些格子明顯是瘦長方形的,因為長是 1,寬則是 2.54。
當然,基除了可以順著軸伸縮之外,也完全可以扭轉方向。如果把基設置成 ,那麼就相當於把兩把尺子轉 45°(還把刻度稍微放大了一點)。這個時候,原來的向量 所在的落點也會跟著這兩把尺子旋轉。具體旋轉的落點計算方式,後面再說。
標量 = 單位倍數
前面說了,對於任意一個向量來說,我們都可以把它視作是基向量的倍數。比如:
就是把橫軸的基向量 ,縱軸的基向量 。這裡的 和 都是所謂的標量(Scalar)。這個「標量」應該是一個錯誤的翻譯,因為 scale 在這裡指的是「縮放」,而 scalar 則指的是「縮放的程度」。也就是說,它指的實際上是對單位縮放的倍數。
相關知識
方程
「方程」一詞來自《九章算術》,「方」原意為「兩船並行」,「程」則為「度量單位」。此處指的是把不同的變數單位統一,形成一個等式,然後數個等式並排,形成一個等式組合,謂之「方程」。
簡化一個《九章》中的例子:
三捆上等谷,兩捆下等谷,打出果實 39 斗;兩麻袋上等谷,五麻袋下等谷,打出果實 33 斗。請問每種穀每捆打果實多少斗?
那麼這裡一個是「捆」,一個是「麻袋」,則單位不同意,需要先「程」一下,把二者統一成一個單位。然後是形成兩個等式:
- 3 捆 + 2 捆 = 39 斗
- 2? 捆 + 5? 捆 = 33 斗
上面的問號代表需要轉換單位。上面這個做法就叫做方程。而《九章》的做法更符合中文古書的做法,把這個寫成了這個樣式(假設 1 捆 = 1 麻袋):
這和矩陣很類似,不過和我們現在知道的矩陣定義不太一樣,因為計算結果也被放到了同一個矩陣中。實際上要用矩陣的運算來解方程的話,需要把計算結果放到另外一個矩陣中,不過在此處不是重點。
計算方式也很簡單,把左列乘以右上角的數:
這樣做的目的是為了讓左列的第一個數()將可以被右列的第一個數()整除。然後我們讓左列整體減去右列,直到左列第一個數等於 ,即:
然後得到:
然後可知下等谷一捆能產 的果實。帶入右列,則可知上等谷一捆能產 的果實。
上面是方程的本源。後人加入了冗餘的「組」字,用「方程組」指代等式組合,而用方程去指代「等式」。「方程組」在英文中叫做 System of equations,即「等式組成的系統」,這裡的「系統」指的是各等式是一體的,即我們找到的變數值必須同時滿足系統中的所有等式。
上面這種方程叫做「一次方程」,指的是等式之中只有變數、常量以及二者之間的加減乘除關係,而不會有變數與變數之間的加減乘除關係。也就是說,變數的最高次冪是一次。在英文中叫做 Linear Equation,即(直)線性等式。這個線性指的就是直線,因為這樣的方程呈現在直角坐標繫上就是一根直線。
「方程」和「向量」在此處交集,形成了矩陣的兩種理解。我們既可以把矩陣理解成對一次方程的概括,也可以把它理解成對向量的標記。對方程來說,矩陣每一行代表一個未知數(變數);而對向量來說,每一行則代表一個維度。
推薦閱讀:
※圖解機器學習的數學基礎專輯(完結)總結:who, why, what
※矩陣的四個子空間及其聯繫
※線性方程組(2)-兩個令人腦殼疼的傢伙
※「廣義相對論的鑰匙:張量」專題之一
※線性變換
TAG:線性代數 |