矩陣在雙積之間的映射
這篇文章從範疇論的角度解釋了為什麼向量空間之間的線性映射可以用矩陣表示,特別是透過將積與對偶積分析為雙積。我認為矩陣是一種優雅的抽象,自然地從具有雙積結構的範疇中產生。
為什麼有限維向量空間之間的線性函數可以用矩陣表示?又為什麼矩陣乘法對應於線性映射的複合?對此存在幾何直覺,例如 3Blue1Brown 所呈現的內容。我將換個角度,提供一個範疇論(category-theoretic)的分析。簡短的版本是:在向量空間與線性映射構成的範疇中,積(product)同時也是餘積(coproduct),因此是雙積(biproduct);而在具有雙積的範疇中,雙積之間的映射可以分解為(廣義的)矩陣。這些廣義矩陣在向量空間範疇中,與傳統的數值矩陣及矩陣乘法一致。範疇論的視角揭示了矩陣是一種優雅的抽象,這與《紐約客》的觀點相反。
我將使用實數體 R 上的向量空間標準定義。一個向量空間定義了加法、零元素和純量乘法,並具有標準的交換律、結合律與分配律。範疇 Vect 以向量空間(在體 R 上)為對象,並以線性映射為態射。向量空間 U, V 之間的線性映射 f:U→V 滿足 f(u1+u2)=f(u1)+f(u2) 以及 f(au)=af(u)。(進階讀者可參閱 nlab 關於 Vect 的條目)。
顯然,R 是一個向量空間,0(僅包含零元素的向量空間)也是。0 既是初始對象(initial object)也是終端對象(terminal object)。任何從 0 出發的線性映射必須始終返回零向量;任何進入 0 的線性映射亦然。因此,根據定義,0 是範疇論中的零對象(zero object)。
如果 U 和 V 是向量空間,那麼直和(direct sum)U⊕V 也是向量空間,其元素為序對 (u, v)(其中 u∈U, v∈V),且加法與純量乘法皆為逐分量運算。直和既是積也是餘積。
為了證明直和是積,令 U 和 V 為向量空間,並令 π1:U⊕V→U 與 π2:U⊕V→V 為直和對其分量的投影。假設有第三個向量空間 T 和線性映射 f:T→U 與 g:T→V。定義 ⟨f,g⟩:T→U⊕V 為 ⟨f,g⟩(t)=(f(t),g(t))。現在 ⟨f,g⟩ 滿足唯一的交換性:
為了證明直和是餘積,令 U 和 V 為向量空間,並令 i1:U→U⊕V 定義為 i1(u)=(u,0),同樣令 i2:V→U⊕V 定義為 i2(v)=(0,v)。假設有第三個向量空間 W 和線性映射 f:U→W 與 g:V→W。定義 [f,g]:U⊕V→W 為 f,g=f(u)+g(v)。現在 [f,g] 滿足唯一的交換性:
結論是直和既是積也是餘積。令 0A,B:A→B 為零函數;由於直和還滿足恆等式 π1∘i1=idU, π2∘i2=idV, π1∘i2=0V,U, π2∘i1=0U,V,根據定義它是一個雙積(biproduct)。我們現在可以從 Vect 範疇抽象化到半加法範疇(semiadditive categories),這類範疇的定義是具有零對象和所有兩兩雙積的範疇。令 C 代表任何具有雙積 ⊕ 的半加法範疇。
雙積使得態射(如線性映射)能夠進行強大的分解。給定(C 中的)h:T→U⊕V,我們可以將其唯一分解為 h=⟨f,g⟩,其中 f:T→U 且 g:T→V,具體為 f=π1∘h, g=π2∘h。同樣地,我們可以將 h:U⊕V→W 唯一分解為 h=[f,g],其中 f:U→W 且 g:V→W,具體為 f=h∘i1, g=h∘i2。
雙積可以從二元推廣到 n 元。假設 n 是自然數,且 Ui 是自然數 1≤i≤n 的對象。則 n 元雙積為 ⨁ni=1Ui=U1⊕…⊕Un。我們將空雙積取為 0。我們也可以將投影 πi、包含映射 ii、「按列」組合 ⟨f,g⟩ 以及「按行」組合 [f,g] 從二元推廣到 n 元。
這種向 n 元雙積的推廣使得我們能從範疇論的角度構思矩陣。令 m, n 為自然數,並令 Ui 和 Vj 為 C 中的對象(1≤i≤m 且 1≤j≤n)。假設 h:⨁mi=1Ui→⨁nj=1Vj。我們首先將 h 「按列」分解為 h=⟨h1,…,hn⟩,其中 hj=πj∘h。然後將每一列「按行」分解為 hj=[hj,1,…,hj,m],其中 hj,i=πj∘h∘ii。現在我們可以將 h 寫成矩陣形式:h=⟨[h1,1,…,h1,m],…,[hn,1,…,hn,m]⟩;記號 ⟨…⟩ 可以想像為矩陣的垂直拼接,而 […] 可以想像為矩陣的水平拼接。
這是核心的抽象思想,但如何更具體地應用它?回到 Vect,我們可以構造歐幾里得空間 Rn=⨁ni=1R。現在映射 h:Rm→Rn 分解為一個由線性映射 hj,i:R→R 組成的 n×m 矩陣。這還不完全是傳統矩陣,但請注意 R→R 類型的線性映射始終是乘以一個常數實數斜率。用其斜率表示每個 hj,i,便得到了傳統的數值矩陣。
我們可以將線性映射的矩陣表示推廣到有限維向量空間(根據定義具有有限基),方法是注意到這些空間中的每一個都同構於某個自然數 n 的 Rn。具體來說,如果空間 U 具有基 {u1,…,un},則定義為 f(x1,…,xn)=∑ni=1xiui 的線性映射 f:Rn→U 是一個同構。因此,矩陣表示可以擴展到有限維向量空間之間的映射。
到目前為止,我們處理了矩陣與向量的乘法,但還沒有處理矩陣與矩陣的乘法。我們希望證明線性映射的複合會導致矩陣表示以預期的方式相乘。令 m,n,p 為自然數,並令 Ui,Vj,Wk 為 C 中的對象(1≤i≤m, 1≤j≤n, 1≤k≤p)。假設我們有映射 f:⨁mi=1Ui→⨁nj=1Vj 和 g:⨁nj=1Vj→⨁pk=1Wk。我們可以將 f 寫成矩陣形式(fj,i=πj∘f∘ii),g 亦然(gk,j=πk∘g∘ij)。
現在我們希望找到複合映射 h=g∘f 的矩陣形式。我們固定 i, k 並考慮分量 hk,i=πk∘g∘f∘ii。注意到 πk∘g=[gk,1,…,gk,n] 且 f∘ii=⟨f1,i,…,fn,i⟩。因此:
hk,i=[gk,1,…,gk,n]∘⟨f1,i,…,fn,i⟩
這個表達式是行與列的矩陣乘法,類似於向量點積。在 Vect 的情況下,我們可以更明確地寫成:
hk,i(u)=∑nj=1gk,j(fj,i(u))
由於在 Vect 中,Hom(U,V)(從 U 到 V 的線性映射集合)自然地構成一個向量空間,hk,i 也可以寫成:
hk,i=∑nj=1(gk,j∘fj,i)
在每個 Ui,Vj,Wk 都是 R 的情況下,這與傳統的矩陣乘法一致;複合 R→R 類型的線性映射即為其斜率相乘。
有一種方法可以將行-列矩陣乘法 [gk,1,…,gk,n]∘⟨f1,i,…,fn,i⟩=∑nj=1(gk,j∘fj,i) 推廣到一般的半加法範疇;詳情請參閱 維基百科關於加法範疇的條目。
總結關於半加法範疇的一般經驗:
- 雙積之間的映射 h:⨁mi=1Ui→⨁nj=1Vj 可以表示為矩陣形式 ⟨[h1,1,…,h1,m],…,[hn,1,…,hn,m]⟩,其中 hj,i=πj∘h∘ii。
- 如果我們有映射 f:⨁mi=1Ui→⨁nj=1Vj 和 g:⨁nj=1Vj→⨁pk=1Wk,則複合映射 h=g∘f 的矩陣分量 hk,i 是行-列乘法 [gk,1,…,gk,n]∘⟨f1,i,…,fn,i⟩。
而在 Vect 的情況下,這些推導出了標準結果:
- 具有固定基的有限維向量空間之間的線性映射,被唯一地表示為數值矩陣。
- 線性映射複合後的矩陣表示,等於表示這些映射的矩陣之乘積。
這是一種展示標準結果的優美方式,且這些抽象結果可以推廣到其他半加法範疇,例如阿貝爾群範疇(category of Abelian groups)。關於線性代數更詳細的範疇論研究,請參閱 Filip Bár 的論文 《論幾何代數的基礎》(On the Foundations of Geometric Algebra)。若想了解更抽象的處理方式,請參閱 《圖解線性代數》(Graphical Linear Algebra)。
相關文章