矩陣的四個基本子空間基底算法

本文的閱讀等級:初級

A 為一個 m\times n 階實矩陣,或說 A:\mathbb{R}^n\to\mathbb{R}^m 是一個線性變換 (見“線性變換與矩陣的用語比較”)。矩陣 A 的值域 (range) 為其行空間 (column space)

C(A)=\{A\mathbf{x}\vert\mathbf{x}\in\mathbb{R}^n\}

A 以行向量 (column vector) 表示為 A=\begin{bmatrix}  \mathbf{a}_1&\cdots&\mathbf{a}_n  \end{bmatrix},其中 \mathbf{a}_j\in\mathbb{R}^mC(A) 就是行向量 \mathbf{a}_1,\ldots,\mathbf{a}_n 的線性組合形成的一個集合,因為

A\mathbf{x}=\begin{bmatrix}  \mathbf{a}_1&\cdots&\mathbf{a}_n  \end{bmatrix}\begin{bmatrix}  x_1\\  \vdots\\  x_n  \end{bmatrix}=x_1\mathbf{a}_1+\cdots+x_n\mathbf{a}_n

矩陣 A 的核 (kernel) 為其零空間 (nullspace)

N(A)=\{\mathbf{x}\in\mathbb{R}^n\vert A\mathbf{x}=\mathbf{0}\}

對於 n\times m 階轉置矩陣 A^TC(A^T) 稱為 A 的列空間 (row space),N(A^T) 稱為 A 的左零空間 (left nullspace)。設 A^T\mathbf{y}=\mathbf{0},等號兩邊取轉置可得 \mathbf{y}^TA=\mathbf{0},因為 \mathbf{y}^TA 的左側,故名左零空間。以上是實矩陣 A 的四個基本子空間,其中列空間 C(A^T) 和零空間 N(A)\mathbb{R}^n 的子空間,行空間 C(A) 和左零空間 N(A^T)\mathbb{R}^m 的子空間 (見“線性代數基本定理 (二)”)。本文介紹一個使用基本列運算 (elementary row operation) 的四個基本子空間的基底算法 (類似問題見“每週問題 April 6, 2009”):將給定矩陣 A 化簡至簡約列梯形式 (reduced row echelon form),接著從所執行過的列運算與最後的結果取得各子空間的基底向量。

 
我們將 m\times n 階矩陣 A 和單位矩陣 I_m 合併為一個增廣矩陣 \begin{bmatrix}  A&I_m  \end{bmatrix},接著以基本列運算化簡直到產生簡約列梯形式。列運算過程可表示為一連串的矩陣乘法,引入 I_m 的目的即在記錄所執行過的淨運算。令 m\times m 階矩陣 E=E_k\cdots E_1 代表對應列運算的基本矩陣乘積 (見“特殊矩陣 (10):基本矩陣”)。化簡過程可表示如下:

E\begin{bmatrix}  A&I_m  \end{bmatrix}=\begin{bmatrix}  EA&EI_m  \end{bmatrix}=\begin{bmatrix}  R&E  \end{bmatrix}

上面我們令 m\times n 階矩陣 R=EAA 的簡約列梯形式。設 r=\mathrm{rank}A,明顯地,r\le\min\{m,n\}。矩陣秩 r 給出四個基本子空間維數 (即基底向量數,見“線性代數基本定理 (一)”):

\dim C(A^T)=r,~~\dim N(A)=n-r,~~\dim C(A)=r,~~\dim N(A^T)=m-r

因為簡約列梯形式 R 的軸行 (pivot column,包含軸的行) 總數等於 r,故可表示成分塊矩陣

R=\begin{bmatrix}  I_r&F\\  0&0  \end{bmatrix}

其中 r\times r 階單位矩陣 I_r 對應軸行,r\times (n-r) 階分塊 F 對應非軸行,零列包含 (m-r)\times r 階和 (m-r)\times (n-r) 階兩個零分塊。上述分塊表達的目的是為了方便推導,實際上,軸行未必都位居領先行。令 E=\begin{bmatrix}  E_1\\  E_2  \end{bmatrix},其中 E_1r\times m 階分塊,E_2(m-r)\times m 階分塊。所以,最終結果具有下列形式:

\begin{bmatrix}  R&E  \end{bmatrix}=\begin{bmatrix}  I_r&F&E_1\\  0&0&E_2  \end{bmatrix}

此一分塊結構連同關係式 R=EA 提供了描述 A 的四個基本子空間的充足資訊,下面解說如何推導它們的基底。

 
列空間 C(A^T)

基本列運算的作為是列的線性組合,因此不改變矩陣的列空間,可知 C(A^T)=C(R^T)。簡約列梯形式 Rr 個非零列 (即軸列) 是一個線性獨立集,表明分塊 \begin{bmatrix}  I_r&F  \end{bmatrix} 的所有列向量構成 A 的列空間的一組基底。

 
零空間 N(A)

基本列運算非但不改變矩陣的列空間,也不改變零空間,故 N(A)=N(R)。簡約列梯形式 R 唯一決定 n\times (n-r) 階零空間矩陣 (nullspace matrix)

P=\begin{bmatrix}  -F\\  I_{n-r}  \end{bmatrix}

很容易確認 RP=0 (見“零空間的快捷算法”,“行空間與零空間的互換表達”)。因為 P 的行向量是一個線性獨立集,它們構成 A 的零空間的一組基底。

 
行空間 C(A)

基本列運算改變了矩陣的行空間,C(A)\neq C(R),因此僅由簡約列梯形式 R 無法推知 A 的行空間。但基本列運算不改變行向量之間的線性組合關係 (見“左乘還是右乘,這就是問題所在”),因為這個緣故,R 的軸行指標就是 A 的線性獨立行向量指標,故知 A 的這些線性獨立行向量集構成 A 的行空間的一組基底。

 
左零空間 N(A^T)

寫出

EA=\begin{bmatrix}  E_1A\\  E_2A  \end{bmatrix}=\begin{bmatrix}  I_r&F\\  0&0  \end{bmatrix}=R

其中 E_2A=0 說明 E_2 的列向量屬於左零空間 N(A^T)。基本矩陣乘積 E 是一個可逆矩陣,必有線性獨立的列向量,所以分塊 E_2 的列向量集構成了 A 的左零空間的一組基底。

 
我們舉一個例子說明矩陣的四個基本子空間基底的計算程序。考慮 4\times 5 階矩陣

A=\begin{bmatrix}  2&6&2&2&2\\  1&3&1&1&1\\  3&9&3&4&5\\  1&3&1&2&3  \end{bmatrix}

C(A^T)N(A)C(A)N(A^T) 的基底。

 
步驟 1:以基本列運算將 \begin{bmatrix}  A&I_4  \end{bmatrix} 化簡至簡約列梯形式 \begin{bmatrix}  R&E  \end{bmatrix}。結果如下:

\begin{bmatrix}  2&6&2&2&2&\vline&1&0&0&0\\  1&3&1&1&1&\vline&0&1&0&0\\  3&9&3&4&5&\vline&0&0&1&0\\  1&3&1&2&3&\vline&0&0&0&1  \end{bmatrix}\to  \left[\!\!\begin{array}{ccccrcrrrr}  1&3&1&0&-1&\vline&-17&28&4&5\\  0&0&0&1&2&\vline&27&-43&-6&7\\  0&0&0&0&0&\vline&-13&20&3&-3\\  0&0&0&0&0&\vline&4&-6&-1&1  \end{array}\!\!\right]

步驟 2:將重要的結果整理出來。簡約列梯形式 R 的 1, 4 行是軸行,故 r=2。提取主要分塊並寫出零空間矩陣:

\begin{bmatrix}  I_r&F  \end{bmatrix}=\left[\!\!\begin{array}{ccccr}  1&3&1&0&-1\\  0&0&0&1&2  \end{array}\!\!\right],~~E_2=\left[\!\!\begin{array}{rrrr}  -13&20&3&-3\\  4&-6&-1&1  \end{array}\!\!\right],~~P=\left[\!\!\begin{array}{rrr}  -3&-1&1\\  1&0&0\\  0&1&0\\  0&0&-2\\  0&0&1  \end{array}\!\!\right]

步驟 3:寫出各子空間的基底。

列空間 C(A^T) 的基底由 \begin{bmatrix}  I_r&F  \end{bmatrix} 的列向量組成:

\left[\!\!\begin{array}{r}  1\\  3\\  1\\  0\\  -1  \end{array}\!\!\right],~~\left[\!\!\begin{array}{c}  0\\  0\\  0\\  1\\  2  \end{array}\!\!\right]

零空間 N(A) 的基底由 P 的行向量組成:

\left[\!\!\begin{array}{r}  -3\\  1\\  0\\  0\\  0  \end{array}\!\!\right],~~\left[\!\!\begin{array}{r}  -1\\  0\\  1\\  0\\  0  \end{array}\!\!\right],~~\left[\!\!\begin{array}{r}  1\\  0\\  0\\  -2\\  1  \end{array}\!\!\right]

行空間 C(A) 的基底包含 A 的軸行,即第 1, 4 行:

\left[\!\!\begin{array}{c}  2\\  1\\  3\\  1  \end{array}\!\!\right],~~\left[\!\!\begin{array}{c}  2\\  1\\  4\\  2  \end{array}\!\!\right]

左零空間 N(A^T) 的基底由 E_2 的列向量組成:

\left[\!\!\begin{array}{r}  -13\\  20\\  3\\  -3  \end{array}\!\!\right],~~\left[\!\!\begin{array}{r}  4\\  -6\\  -1\\  1  \end{array}\!\!\right]

相關閱讀:
廣告
本篇發表於 線性代數專欄, 向量空間 並標籤為 , , , , , , , 。將永久鏈結加入書籤。

7 Responses to 矩陣的四個基本子空間基底算法

  1. Mu 說道:

    老师您好,非常喜欢您写的现代启示录,概念讲得特别简练清楚。我尤其喜欢概念中几何意义的引申,很有启发,打算认真读完。谢谢!
    另外,这篇文章的开始,定义部分是不是有些拼写错误?C(A), column space, 是不是“列空间”,而C(A^T),row space,则表示“行空间”?

  2. Transform 說道:

    老師您好 想請問你一些觀念
    如圖上式=號是成立的嗎
    我下面假設了一個例子 它們的向量一樣
    但一個是列表示一個是行表示 這樣也算等於嗎?

    因為最近碰到類似的題目有解題老師說 col(A^T)與Row(A) 算同構 但不等於
    不知這觀念是不是錯的?
    希望老師解惑

發表迴響

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

WordPress.com Logo

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

Twitter picture

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

Facebook照片

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

Google+ photo

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

連結到 %s