啊哈!原來變換矩陣這麼簡單

本文的閱讀等級:中級

美國業餘數學大師加德納 (Martin Gardner) 說[1]

數學家的腦子中總是在找更簡單的方法來解定理和解題目。通常第一個解題方式會寫上滿滿的五十頁,都是深奧、技術性的推理;接著過了幾年以後,另一位數學家,也許比較沒名氣,會突然靈光一現想出一個非常簡單的解法,且只需幾行就解出來了。這類的靈光乍現,想出簡短而優雅的方式來解決問題,現在被心理學家稱之為「啊哈!有了!」(Aha! reactions)。

線性代數的一些抽象概念和理論經常令初學者感到難以掌握,其中線性變換的表示矩陣和參考不同基底之間的座標變換尤其晦澀難懂,部分原因是內容涉及較為複雜的符號表述,但最主要原因其實是目前採用的推論程序過於繁瑣且不具直覺。針對這個主題,我曾經嘗試過不同的講解方式 (見“基底變換”,“線性變換表示矩陣”,“座標變換與基底變換的對應關係”),但都談不上淺顯易懂,更別說讓讀者驚呼「啊哈」!

 
下面我用一個例子來說明變換矩陣問題。令向量空間 \mathcal{P}_2 代表所有二次函數 p(t)=p_0+p_1t+p_2t^2 構成的集合,已知下列兩組 \mathcal{P}_2 的有序基底:

\begin{aligned}  \boldsymbol{\beta}&=\{1,1+t,1+2t+t^2\}\\    \boldsymbol{\gamma}&=\{1+t,1-t,t^2\}\end{aligned}

並給出線性變換

T(p(t))=p(t+1)

考慮下面兩個問題:

  1. 線性變換 T 參考基底 \boldsymbol{\beta} 的表示矩陣 [T]_{\boldsymbol{\beta}} 為何?對於任意 p(t)\in\mathcal{P}_2[T]_{\boldsymbol{\beta}} 滿足

    \begin{bmatrix}  T(p(t))  \end{bmatrix}_{\boldsymbol{\beta}}=\begin{bmatrix}  T  \end{bmatrix}_{\boldsymbol{\beta}}\begin{bmatrix}  p(t)  \end{bmatrix}_{\boldsymbol{\beta}}

    其中 \begin{bmatrix}p(t)\end{bmatrix}_{\boldsymbol{\beta}}\begin{bmatrix}T(p(t))\end{bmatrix}_{\boldsymbol{\beta}} 分別代表 p(t)T(p(t)) 參考基底 \boldsymbol{\beta} 的座標向量。線性變換 T 參考基底 \boldsymbol{\gamma} 的表示矩陣 [T]_{\boldsymbol{\gamma}} 又為何?

  2. 參考基底 \boldsymbol{\beta} 的座標向量 \begin{bmatrix}p(t)\end{bmatrix}_{\boldsymbol{\beta}} 和參考基底 \boldsymbol{\gamma} 的座標向量 \begin{bmatrix}p(t)\end{bmatrix}_{\boldsymbol{\gamma}} 有何關係?

 
唐代高僧大珠慧海曾向馬祖道一禪師求佛法,馬祖告以:「一切具足,更無欠少,使用自在,何假向外求覓。」果真一切具足,那麼解決上述問題的「自家寶藏」是什麼?這兩個變換矩陣問題圍繞一個核心概念──座標,我們不妨先回顧一下。設 \mathcal{V} 為一 n 維向量空間,令 \boldsymbol{\beta}=\{\mathbf{v}_1,\ldots,\mathbf{v}_n\}\mathcal{V} 的一組基底。對於任意向量 \mathbf{x}\in\mathcal{V}\mathbf{x} 可以唯一表示為基底向量 \mathbf{v}_1,\ldots,\mathbf{v}_n 的線性組合,如下:

\mathbf{x}=a_1\mathbf{v}_1+\cdots+a_n\mathbf{v}_n

將這個線性組合式視為從向量空間 \mathcal{V} 至幾何向量空間 \mathbb{R}^n (若 \mathcal{V} 定義於 \mathbb{C},則為 \mathbb{C}^n) 的座標映射 L 提供了一個思考路徑與運算機制:

L(\mathbf{x})=\begin{bmatrix}    a_1\\    \vdots\\    a_n    \end{bmatrix}

有序純量 (a_1,\ldots,a_n) 稱為向量 \mathbf{x} 參考基底 \boldsymbol{\beta} 的座標向量,記為

[\mathbf{x}]_{\boldsymbol{\beta}}=\begin{bmatrix}    a_1\\    \vdots\\    a_n    \end{bmatrix}

對於任意 \mathbf{x}=\sum_{i=1}^na_i\mathbf{v}_i\mathbf{y}=\sum_{i=1}^nb_i\mathbf{v}_i

L(\mathbf{x}+\mathbf{y})=\displaystyle L\left(\sum_{i=1}^n(a_i+b_i)\mathbf{v}_i\right)=\begin{bmatrix}    a_1+b_1\\    \vdots\\    a_n+b_n    \end{bmatrix}=\begin{bmatrix}    a_1\\    \vdots\\    a_n    \end{bmatrix}+\begin{bmatrix}    b_1\\    \vdots\\    b_n    \end{bmatrix}=L(\mathbf{x})+L(\mathbf{y})

對於任意純量 c

L(c\mathbf{x})=L\displaystyle\left(\sum_{i=1}^n(ca_i)\mathbf{v}_i\right)=\begin{bmatrix}    ca_1\\    \vdots\\    ca_n    \end{bmatrix}=c\begin{bmatrix}    a_1\\    \vdots\\    a_n    \end{bmatrix}=cL(\mathbf{x})

故座標映射 L 是一線性變換,此外,L 是一對一,因為 L(\mathbf{x})=\mathbf{0} 意味 \mathbf{x}=0\mathbf{v}_1+\cdots+0\mathbf{v}_n=\mathbf{0},亦即,\ker(L)=\{\mathbf{0}\},得知 L 是可逆的,所以我們說向量空間 \mathcal{V}\mathbb{R}^n 是同構的。

 
要想得到解題靈感,我們必須先拋開傳統的方法轉而採用新觀點來解決問題。前面的討論顯示附著於基底 \boldsymbol{\beta} 之上的座標映射 L 可以寫為

L(\mathbf{x})=[\mathbf{x}]_{\boldsymbol{\beta}}

因此,我們大可將 [\cdot]_{\boldsymbol{\beta}} 視為一線性算子,這個看似平淡無奇的觀念正是我們亟需的大補丸。舉一例說明座標映射算子的作用,任意線性組合 \mathbf{y}=a_1\mathbf{x}_1+\cdots+a_k\mathbf{x}_k 的座標向量依然維持原線性組合形式:

\begin{aligned}  \displaystyle[\mathbf{y}]_{\boldsymbol{\beta}}&=\begin{bmatrix}    a_1\mathbf{x}_1+\cdots+a_k\mathbf{x}_k    \end{bmatrix}_{\boldsymbol{\beta}}\\  &=a_1[\mathbf{x}_1]_{\boldsymbol{\beta}}+\cdots+a_k[\mathbf{x}_k]_{\boldsymbol{\beta}}\end{aligned}

座標映射算子 [\cdot]_{\boldsymbol{\beta}} 並不是一個全新的概念和工具。一般所稱的線性算子是指定義於同一個向量空間的線性變換 T:\mathcal{V}\rightarrow\mathcal{V},微分算子 \frac{d}{dt}[\cdot] 和積分算子 \int[\cdot]dt 都是大家熟悉的線性算子。設 f(t)=c_1f_1(t)+\cdots+c_kf_k(t),微分算子具備線性組合形式:

\begin{aligned}  \displaystyle\frac{d}{dt}f(t)&=\frac{d}{dt}\left[c_1f_1(t)+\cdots+c_kf_k(t)\right]\\  &=c_1\frac{d}{dt}f_1(t)+\cdots+c_k\frac{d}{dt}f_k(t)\end{aligned}

積分算子同樣也滿足

\begin{aligned}  \displaystyle\int f(t)dt&=\int\left[c_1f_1(t)+\cdots+c_kf_k(t)\right]dt\\  &=c_1\int f_1(t)dt+\cdots+c_k\int f_k(t)dt\end{aligned}

下面我們就嘗試使用自家寶藏──座標映射算子──來解決變換矩陣問題。

 
我先說明如何利用座標映射算子推導參考基底 \boldsymbol{\beta}=\{\mathbf{v}_1,\ldots,\mathbf{v}_n\} 的線性變換表示矩陣。考慮一線性變換 T:\mathcal{V}\rightarrow\mathcal{V}T(\mathbf{x}) 為向量 \mathbf{x}=a_1\mathbf{v}_1+\cdots+a_n\mathbf{v}_n 經變換後的像,要得到 T(\mathbf{x}) 參考 \boldsymbol{\beta} 的座標向量可直接將 T(\mathbf{x}) 代入座標映射算子 [\cdot]_{\boldsymbol{\beta}},利用線性變換性質可得

\begin{aligned}  \begin{bmatrix}    T(\mathbf{x})    \end{bmatrix}_{\boldsymbol{\beta}}&=\begin{bmatrix}    T(a_1\mathbf{v}_1+\cdots+a_n\mathbf{v}_n)    \end{bmatrix}_{\boldsymbol{\beta}}\\    &=\begin{bmatrix}    a_1T(\mathbf{v}_1)+\cdots+a_nT(\mathbf{v}_n)    \end{bmatrix}_{\boldsymbol{\beta}}\\    &=a_1\begin{bmatrix}    T(\mathbf{v}_1)    \end{bmatrix}_{\boldsymbol{\beta}}+\cdots+a_n\begin{bmatrix}    T(\mathbf{v}_n)    \end{bmatrix}_{\boldsymbol{\beta}}\end{aligned}

上式中 \begin{bmatrix}    T(\mathbf{v}_i)    \end{bmatrix}_{\boldsymbol{\beta}}\in\mathbb{R}^n,這指出 \begin{bmatrix}    T(\mathbf{x})    \end{bmatrix}_{\boldsymbol{\beta}} 是座標向量 \begin{bmatrix}    T(\mathbf{v}_i)    \end{bmatrix}_{\boldsymbol{\beta}}~(i=1,\ldots,n) 的線性組合,改寫為矩陣表達式

\begin{aligned}  \begin{bmatrix}    T(\mathbf{x})    \end{bmatrix}_{\boldsymbol{\beta}}&=\begin{bmatrix}    ~&~&~\\    [T(\mathbf{v}_1)]_{\boldsymbol{\beta}}&\cdots&[T(\mathbf{v}_n)]_{\boldsymbol{\beta}}\\    ~&~&~    \end{bmatrix}\begin{bmatrix}    a_1\\    \vdots\\    a_n    \end{bmatrix}=\begin{bmatrix}    T    \end{bmatrix}_{\boldsymbol{\beta}}[\mathbf{x}]_{\boldsymbol{\beta}}\end{aligned}

於是推論出參考基底 \boldsymbol{\beta} 的線性變換表示矩陣 [T]_{\boldsymbol{\beta}} 由行向量 \begin{bmatrix}    T(\mathbf{v}_i)    \end{bmatrix}_{\boldsymbol{\beta}} 所構成:

\begin{bmatrix}    T    \end{bmatrix}_{\boldsymbol{\beta}}=\begin{bmatrix}    ~&~&~\\    [T(\mathbf{v}_1)]_{\boldsymbol{\beta}}&\cdots&[T(\mathbf{v}_n)]_{\boldsymbol{\beta}}\\    ~&~&~    \end{bmatrix}

 
利用座標映射算子也很容易推導參考不同基底的座標向量之間的關係。考慮向量空間 \mathcal{V} 的兩組基底 \boldsymbol{\beta}=\{\mathbf{v}_1,\ldots,\mathbf{v}_n\}\boldsymbol{\gamma}=\{\mathbf{w}_1,\ldots,\mathbf{w}_n\}。對於 \mathcal{V} 中任意向量 \mathbf{x},設

\begin{aligned}  \mathbf{x}&=c_1\mathbf{v}_1+\cdots+c_n\mathbf{v}_n\\    \mathbf{x}&=d_1\mathbf{w}_1+\cdots+d_n\mathbf{w}_n\end{aligned}

如欲從 [\mathbf{x}]_{\boldsymbol{\beta}} 推得 [\mathbf{x}]_{\boldsymbol{\gamma}},將上面第一式代入 [\cdot]_{\boldsymbol{\gamma}},就有

\begin{aligned} \begin{bmatrix}  \mathbf{x}  \end{bmatrix}_{\boldsymbol{\gamma}}&=\begin{bmatrix}    c_1\mathbf{v}_1+\cdots+c_n\mathbf{v}_n    \end{bmatrix}_{\boldsymbol{\gamma}}\\    &=c_1[\mathbf{v}_1]_{\boldsymbol{\gamma}}+\cdots+c_n[\mathbf{v}_n]_{\boldsymbol{\gamma}}\\    &=\begin{bmatrix}    ~&~&~\\    [\mathbf{v}_1]_{\boldsymbol{\gamma}}&\cdots&[\mathbf{v}_n]_{\boldsymbol{\gamma}}\\    ~&~&~    \end{bmatrix}\begin{bmatrix}    c_1\\    \vdots\\    c_n    \end{bmatrix}\\  &=C_{\boldsymbol{\beta}\rightarrow\boldsymbol{\gamma}}\cdot\begin{bmatrix}  \mathbf{x}  \end{bmatrix}_{\boldsymbol{\beta}}\end{aligned}

見下圖:

原來變換矩陣這麼簡單1

從基底 \boldsymbol{\beta} 至基底 \boldsymbol{\gamma} 的座標變換矩陣即為

C_{\boldsymbol{\beta}\rightarrow\boldsymbol{\gamma}}=\begin{bmatrix}    ~&~&~\\    [\mathbf{v}_1]_{\boldsymbol{\gamma}}&\cdots&[\mathbf{v}_n]_{\boldsymbol{\gamma}}\\    ~&~&~    \end{bmatrix}

根據對稱原則,由基底 \boldsymbol{\gamma} 至基底 \boldsymbol{\beta} 的座標變換矩陣則為

C_{\boldsymbol{\gamma}\rightarrow\boldsymbol{\beta}}=\begin{bmatrix}    ~&~&~\\    [\mathbf{w}_1]_{\boldsymbol{\beta}}&\cdots&[\mathbf{w}_n]_{\boldsymbol{\beta}}\\    ~&~&~    \end{bmatrix}

顯而易見,C_{\boldsymbol{\beta}\rightarrow\boldsymbol{\gamma}} C_{\boldsymbol{\gamma}\rightarrow\boldsymbol{\beta}}=I

 
現在我們練習操作座標映射算子解決先前給出的兩個問題。欲求出 [T]_{\boldsymbol{\beta}},將 p(t) 表示為基底 \boldsymbol{\beta}=\{1,1+t,1+2t+t^2\} 的線性組合:

p(t)=a_0(1)+a_1(1+t)+a_2(1+2t+t^2)

再把 p(t) 的像 T(p(t)) 代入座標映射算子 [\cdot]_{\boldsymbol{\beta}},就有

\begin{aligned}  \begin{bmatrix}    T(p(t))    \end{bmatrix}_{\boldsymbol{\beta}}&=\begin{bmatrix}    a_0T(1)+a_1T(1+t)+a_2T(1+2t+t^2)    \end{bmatrix}_{\boldsymbol{\beta}}\\    &=a_0\begin{bmatrix}  T(1)  \end{bmatrix}_{\boldsymbol{\beta}}+a_1\begin{bmatrix}  T(1+t)  \end{bmatrix}_{\boldsymbol{\beta}}+a_2\begin{bmatrix}  T(1+2t+t^2)  \end{bmatrix}_{\boldsymbol{\beta}}\end{aligned}

由已知 T(p(t))=p(t+1) 可得

\begin{aligned}  T(1)&=1\\    T(1+t)&=1+(t+1)\\    T(1+2t+t^2)&=1+2(t+1)+(t+1)^2\end{aligned}

這些向量參考 \boldsymbol{\beta} 的座標向量分別為

\begin{bmatrix}  T(1)  \end{bmatrix}_{\boldsymbol{\beta}}=\begin{bmatrix}    1\\    0\\    0    \end{bmatrix},~\begin{bmatrix}  T(1+t)  \end{bmatrix}_{\boldsymbol{\beta}}=\begin{bmatrix}    1\\    1\\    0    \end{bmatrix},~\begin{bmatrix}  T(1+2t+t^2)\end{bmatrix}_{\boldsymbol{\beta}}=\begin{bmatrix}    1\\    2\\    1    \end{bmatrix}

故線性變換 T 參考基底 \boldsymbol{\beta} 的表示矩陣為

[T]_{\boldsymbol{\beta}}=\begin{bmatrix}    1&1&1\\    0&1&2\\    0&0&1    \end{bmatrix}

對於基底 \boldsymbol{\gamma}=\{1+t,1-t,t^2\},運用同樣方法也可以得到

[T]_{\boldsymbol{\gamma}}=\left[\!\!\begin{array}{crr}    \frac{3}{2}&-\frac{1}{2}&\frac{3}{2}\\[0.3em]    \frac{1}{2}&\frac{1}{2}&-\frac{1}{2}\\    0&0&1    \end{array}\!\!\right]

 
欲由 [p(t)]_{\boldsymbol{\beta}} 求得 [p(t)]_{\boldsymbol{\gamma}},寫下 p(t) 表示為基底 \boldsymbol{\beta} 的線性組合 p(t)=a_0(1)+a_1(1+t)+a_2(1+2t+t^2),直接將此式代入座標映射算子 [\cdot]_{\boldsymbol{\gamma}},可得

\begin{aligned}  \begin{bmatrix}  p(t)  \end{bmatrix}_{\boldsymbol{\gamma}}&=\begin{bmatrix}    a_0(1)+a_1(1+t)+a_2(1+2t+t^2)    \end{bmatrix}_{\boldsymbol{\gamma}}\\    &=a_0[1]_{\boldsymbol{\gamma}}+a_1[1+t]_{\boldsymbol{\gamma}}+a_2[1+2t+t^2]_{\boldsymbol{\gamma}}\end{aligned}

再將 \boldsymbol{\beta} 的各基底向量表示為基底 \boldsymbol{\gamma} 的線性組合,如下:

\begin{aligned}  1&=\displaystyle\frac{1}{2}(1+t)+\frac{1}{2}(1-t)\\    1+t&=(1+t)\\    1+2t+t^2&=\displaystyle\frac{3}{2}(1+t)-\frac{1}{2}(1-t)+(t^2)\end{aligned}

於是得到從基底 \boldsymbol{\beta} 至基底 \boldsymbol{\gamma} 的座標變換矩陣

C_{\boldsymbol{\beta}\rightarrow\boldsymbol{\gamma}}=\left[\!\!\begin{array}{ccr}    \frac{1}{2}&1&\frac{3}{2}\\[0.3em]    \frac{1}{2}&0&-\frac{1}{2}\\    0&0&1    \end{array}\!\!\right]

反過來重複一次上述步驟即可得到

C_{\boldsymbol{\gamma}\rightarrow\boldsymbol{\beta}}=\left[\!\!\begin{array}{crr}    0&2&1\\    1&-1&-2\\    0&0&1    \end{array}\!\!\right]

 
最後補充說明兩個變化情況。要找出變換矩陣 A 滿足

\begin{bmatrix}T(p(t))\end{bmatrix}_{\boldsymbol{\gamma}}=A\,\begin{bmatrix}p(t)\end{bmatrix}_{\boldsymbol{\beta}}

只需要將 A 的作用正確寫出即可。矩陣 A 包含兩個部分,首先把參考基底 \boldsymbol{\beta} 的座標向量映至參考 \boldsymbol{\gamma} 的座標向量,然後在該基底下執行變換 T,亦即,

A=[T]_{\boldsymbol{\gamma}}C_{\boldsymbol{\beta}\rightarrow\boldsymbol{\gamma}}

或者先在基底 \boldsymbol{\beta} 下執行變換 T,再將結果轉換為參考基底 \boldsymbol{\gamma} 的座標向量:

A=C_{\boldsymbol{\beta}\rightarrow\boldsymbol{\gamma}}[T]_{\boldsymbol{\beta}}

另一個問題是給定兩組基底 \boldsymbol{\beta}\boldsymbol{\gamma},如果已知線性變換表示矩陣 [T]_{\boldsymbol{\beta}},運用連續變換程序也可以得到 [T]_{\boldsymbol{\gamma}},如下:

[T]_{\boldsymbol{\gamma}}= C_{\boldsymbol{\beta}\rightarrow\boldsymbol{\gamma}} [T]_{\boldsymbol{\beta}}C_{\boldsymbol{\gamma}\rightarrow\boldsymbol{\beta}}

或圖示為

原來變換矩陣這麼簡單2

 
引用來源:
[1] Aha! Insight,Martin Gardner 著,中譯本《啊哈!有趣的推理》,天下文化,1997。

延伸閱讀:
Advertisements
本篇發表於 線性變換, 線性代數專欄 並標籤為 , , 。將永久鏈結加入書籤。

4 則回應給 啊哈!原來變換矩陣這麼簡單

  1. Lock 說道:

    算子跟矩阵都用 [ ] 表示,真心乱……

    • kaerfuka 說道:

      习惯就好, Neumann 有一句名言: “Young man, in mathematics you don’t understand things. You just get used to them.” 共勉!

  2. Huayang Li 說道:

    『線性代數的本質』系列是讓我在理解矩陣變換時『啊哈』了無數次的視頻。附鏈接:(Essence of linear algebra)[https://www.youtube.com/watch?v=P2LTAUO1TdA&index=13&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab]

發表迴響

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

WordPress.com Logo

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

Twitter picture

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

Facebook照片

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

Google+ photo

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

連結到 %s