矩陣乘積的子空間分析

本文的閱讀等級:中級

一個 m\times n 階實矩陣 A 代表從向量空間 \mathbb{R}^n 映至向量空間 \mathbb{R}^m 的線性變換。向量 \mathbf{x}\in\mathbb{R}^n 經線性變換 A 的映射即為 A\mathbf{x},稱為像 (image)。矩陣 A 的行空間 (column space) C(A) 就是它所代表的線性變換的值域 (range,所有的像形成的集合)

\displaystyle  \hbox{ran}(A)=\{A\mathbf{x}\vert\mathbf{x}\in\mathbb{R}^n\}\subseteq\mathbb{R}^m

A 的零空間 (nullspace) N(A) 則為線性變換的核 (kernel)

\displaystyle  \ker(A)=\{\mathbf{x}\vert A\mathbf{x}=\mathbf{0}\}\subseteq\mathbb{R}^n

更進一步,矩陣乘積 AB 代表複合線性變換 (見“線性代數的第一堂課——矩陣乘法的定義”),通過矩陣乘積 AB 的子空間分析可以幫助我們了解移動向量空間的線性變換結構。本文的內容與算法可以直接延伸至複矩陣。

 
設實矩陣 Am\times n 階,Bn\times p 階。矩陣乘積 AB 繼承了 AB 的哪些性質?回答此問題的有效途徑是從子空間分析著手。矩陣乘積 ABm\times p 階,所以 C(A)C(AB) 屬於 \mathbb{R}^mN(B)N(AB) 屬於 \mathbb{R}^p,而 N(A)C(B) 同屬於 \mathbb{R}^n。考慮這個命題:行空間 C(AB) 以及零空間 N(AB)AB 的基本子空間有何關係?下面兩個性質給出答案,運用子空間定義即可證明。

 
性質一C(AB)\subseteq C(A)

將矩陣 B 以行向量表示為 B=\begin{bmatrix}    \mathbf{b}_1&\cdots&\mathbf{b}_p    \end{bmatrix},則

AB=A\begin{bmatrix}    \mathbf{b}_1&\cdots&\mathbf{b}_p    \end{bmatrix}=\begin{bmatrix}    A\mathbf{b}_1&\cdots&A\mathbf{b}_p    \end{bmatrix}

上式說明 AB 的各行都可表示為 A 的行向量的線性組合,也就是說 A\mathbf{b}_j\in C(A)j=1,\ldots,p

 
性質二N(B)\subseteq N(AB)

\mathbf{x}\in N(B),亦即 B\mathbf{x}=\mathbf{0},則 AB\mathbf{x}=A\mathbf{0}=\mathbf{0}\mathbf{x} 也屬於 N(AB)

 
另一個較富直覺的作法是從線性變換角度切入。將矩陣乘積 AB 視為複合變換,下圖表示了 ABAB 的基本子空間關係。矩陣 B 先將所有屬於 \mathbb{R}^p 的向量映至 \mathbb{R}^n 空間,因此 C(B)\mathbb{R}^n 的一子空間,接著矩陣 AC(B) 包含的所有向量映至 \mathbb{R}^m 裡的子空間 C(AB)。明顯地,C(AB) 屬於 C(A),故

\dim C(AB)\le\dim C(A)

因矩陣秩等於行空間的維數,也就有

\hbox{rank}AB\le\hbox{rank}A

矩陣乘積的子空間映射

上圖顯示 N(A)C(B) 同屬於 \mathbb{R}^n,它們對 C(AB) 又有何影響?“破解矩陣秩的等式與不等式證明”曾經記錄完整的解答與證明,在此我介紹一個採行子空間分析的解釋方法。對於任意矩陣變換 A:\mathbb{R}^n\rightarrow\mathbb{R}^m,秩─零度定理描述了定義域的維數 n=\dim\mathbb{R}^n,秩亦即值域的維數 \hbox{rank}A=\dim C(A),和零空間的維數 \dim N(A) 的關係:

\dim\mathbb{R}^n=\dim C(A)+\dim N(A)

我們知道一向量空間的子空間本身也為向量空間,所以秩─零度定理同樣適用於 \mathbb{R}^n 的任意子空間作為定義域的情況。注意,複合變換 AB 可以解釋為矩陣變換 A 有定義域 C(B)\subseteq\mathbb{R}^n,因此值域為 C(AB),零空間為 C(B)\cap N(A),秩─零度定理給出

\dim C(B)=\dim C(AB)+\dim (N(A)\cap C(B))

或者寫為

\hbox{rank}AB=\hbox{rank}B-\dim (N(A)\cap C(B))

這個結果不常出現於線性代數教科書,可能的原因是其中牽涉了子空間交集 N(A)\cap C(B) 的計算。

 
不過,縱使在不知道 N(A)\cap C(B) 的情況下,由上式也很容易導出 \hbox{rank}AB 的上下界。由 \dim (N(A)\cap C(B))\ge 0 可知 \hbox{rank}AB\le\hbox{rank}B,合併前面結果 \hbox{rank}AB\le\hbox{rank}A,可得

\hbox{rank}AB\le\min\{\hbox{rank}A,\hbox{rank}B\}

利用性質 N(A)\cap C(B)\subseteq N(A),就有

\dim (N(A)\cap C(B))\le\dim N(A)=n-\hbox{rank}A

再由 \hbox{rank}AB 的關係式可導出下界:

\begin{aligned}  \hbox{rank}AB&=\hbox{rank}B-\dim (N(A)\cap C(B))\\  &\ge\hbox{rank}B+\hbox{rank}A-n.\end{aligned}

 
最後我們討論如何計算子空間 N(A)\cap C(B) 的基底。使用兩次秩─零度定理 \hbox{rank}AB=p-\dim N(AB)\hbox{rank}B=p-\dim N(B),代入先前得到的 \hbox{rank}AB 關係式可得

\dim N(AB)=\dim N(B)+\dim (N(A)\cap C(B))

上式點出了一個想法:先找出矩陣 B 的行空間基底 \mathbf{v}_1,\ldots,\mathbf{v}_rr=\hbox{rank}B,再將這些基底向量建立一個新矩陣,B^{\prime}=\begin{bmatrix}    \mathbf{v}_1&\cdots&\mathbf{v}_r    \end{bmatrix},則 C(B^{\prime})=C(B)。又因為 B^{\prime} 包含線性獨立的行向量,N(B^{\prime})=\mathcal{O},所以

\begin{aligned}  \dim N(AB^{\prime})&=\dim N(B^{\prime})+\dim (N(A)\cap C(B^{\prime}))\\  &=\dim (N(A)\cap C(B)).\end{aligned}

N(AB^{\prime}) 的基底為 \mathbf{x}_1,\ldots,\mathbf{x}_s,也就有 AB^{\prime}\mathbf{x}_i=\mathbf{0}i=1,\ldots,s;另一方面,每個 B^{\prime}\mathbf{x}_i 都屬於 C(B^{\prime})=C(B),因此 \{B^{\prime}\mathbf{x}_1,\ldots,B^{\prime}\mathbf{x}_s\}\in N(A)\cap C(B)。由於 \dim (N(A)\cap C(B))=s,接下來只要能夠證明向量集 \{B^{\prime}\mathbf{x}_1,\ldots,B^{\prime}\mathbf{x}_s\} 是線性獨立的,等於表明此向量集為 N(A)\cap C(B) 的基底。令 X=\begin{bmatrix}    \mathbf{x}_1&\cdots&\mathbf{x}_s    \end{bmatrix},再次使用本文得到的主要關係式,

\hbox{rank}B^{\prime}X=\hbox{rank}X-\dim (N(B^{\prime})\cap C(X))=\hbox{rank}X=s

證得 n\times s 階矩陣 B^{\prime}X=\begin{bmatrix}    B^{\prime}\mathbf{x}_1&\cdots&B^{\prime}\mathbf{x}_s    \end{bmatrix}s 個線性獨立行向量。

 
底下用一個例子說明 N(A)\cap C(B) 的計算程序。考慮

A=\begin{bmatrix}    1&1&1&1\\    1&2&3&4\\    2&3&4&5\\    3&5&7&9    \end{bmatrix},~B=\begin{bmatrix}    1&0&0&2&1\\    1&1&1&2&2\\    2&1&1&4&3\\    3&1&1&6&4    \end{bmatrix}

子空間 N(A)C(B) 同屬於 \mathbb{R}^4,子空間 N(A)\cap C(B) 的基底計算程序如下。

步驟一:計算子空間 C(B) 的基底。將 B 化簡至簡約列梯形式,可得行空間基底:

\left\{\begin{bmatrix}    1\\    1\\    2\\    3    \end{bmatrix},\begin{bmatrix}    0\\    1\\    1\\    1    \end{bmatrix}\right\}

再將基底向量組合成一矩陣:

B^{\prime}=\begin{bmatrix}    1&0\\    1&1\\    2&1\\    3&1    \end{bmatrix}

步驟二:計算零空間 N(AB^{\prime}) 基底,先得出

\begin{aligned}  AB^{\prime}&=\begin{bmatrix}    1&1&1&1\\    1&2&3&4\\    2&3&4&5\\    3&5&7&9    \end{bmatrix}\begin{bmatrix}    1&0\\    1&1\\    2&1\\    3&1    \end{bmatrix}=\left[\!\!\begin{array}{rr}    7&3\\    21&9\\    28&12\\    49&21    \end{array}\!\!\right]\end{aligned}

零空間 N(AB^{\prime}) 的基底由 \left[\!\!\begin{array}{r}    -3\\    7    \end{array}\!\!\right] 擴張而成,令 X=\left[\!\!\begin{array}{r}    -3\\    7    \end{array}\!\!\right]

步驟三:計算 B^{\prime}X,結果如下:

\begin{aligned}  B^{\prime}X&=\begin{bmatrix}    1&0\\    1&1\\    2&1\\    3&1    \end{bmatrix}\left[\!\!\begin{array}{r}    -3\\    7    \end{array}\!\!\right]=\left[\!\!\begin{array}{r}    -3\\    4\\    1\\    -2    \end{array}\!\!\right]\end{aligned}

B^{\prime}X 的行向量就是 N(A)\cap C(B) 的基底。

Advertisements
本篇發表於 線性代數專欄, 向量空間 並標籤為 , , , 。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s