答兩面光──關於3×3階與4×4階齊次轉換矩陣的差異

網友兩面光留言:

周老師您好,我目前正在研究Lagrange運動方程式,對於轉換矩陣有些疑問。由於之前看的資料座標轉換並沒有平移的問題,且矩陣皆是3\times 3,經查詢平移的座標轉換後,找到了所謂的齊次轉換矩陣,為4\times 4的矩陣,也看到其他以4\times 4做轉換矩陣的例子(但並非以Lagrange推導運動方程式),但我在您“線性變換表示矩陣”(註:應為“仿射變換”)中也看到了3\times 3的平移轉換矩陣,我想請問在座標轉換中,3\times 34\times 4的差別在哪?

 
答曰:

T 是一定義於幾何向量空間 \mathbb{R}^n 的變換 (或轉換)。對於任一 \mathbf{x}\in\mathbb{R}^n,若存在一 n\times n 階實矩陣 A 使得 T(\mathbf{x})=A\mathbf{x},則 T 是一線性變換,也就是說,對於任意 \mathbf{x},\mathbf{y}\in\mathbb{R}^nc\in\mathbb{R}T 滿足下面兩個性質:

\begin{aligned}  T(\mathbf{x}+\mathbf{y})&=T(\mathbf{x})+T(\mathbf{y}),\\  T(c\mathbf{x})&=cT(\mathbf{x}).\end{aligned}

常見的幾何變換如旋轉、鏡射、伸縮和切變 (shearing) 都是線性變換 (見“幾何變換矩陣的設計”),然而,平移卻不是線性變換。考慮 T(\mathbf{x})=\mathbf{x}+\mathbf{p},其中 \mathbf{p}\neq\mathbf{0} 代表平移向量,明顯地,T(\mathbf{x}+\mathbf{y})=\mathbf{x}+\mathbf{y}+\mathbf{p} 不等於 T(\mathbf{x})+T(\mathbf{y})=\mathbf{x}+\mathbf{p}+\mathbf{y}+\mathbf{p}。為了將上述這些變換納入同一套運算機制,我們可以合併線性變換與平移,如下:

T(\mathbf{x})=A\mathbf{x}+\mathbf{p}=\begin{bmatrix}  A&\mathbf{p}  \end{bmatrix}\begin{bmatrix}  \mathbf{x}\\  1  \end{bmatrix}

稱為仿射變換 (affine transformation)。除非 \mathbf{p} 是一零向量,否則仿射變換也不是一線性變換,因為上式使用了兩個運算:矩陣-向量乘法和向量加法。利用齊次座標(homogeneous coordinates),也就是在 n 維向量底下添增一個常數 1,我們可將上式改寫成單純的矩陣-向量乘法運算。在齊次座標系統下,仿射變換確實為一線性變換:

\begin{bmatrix}  T(\mathbf{x})\\  1  \end{bmatrix}=\begin{bmatrix}  A&\mathbf{p}\\  \mathbf{0}^T&1  \end{bmatrix}\begin{bmatrix}  \mathbf{x}\\  1  \end{bmatrix}

其中 (n+1)\times(n+1) 階增廣矩陣 \begin{bmatrix}  A&\mathbf{p}\\  \mathbf{0}^T&1  \end{bmatrix} 稱為仿射變換矩陣或齊次變換矩陣。特別注意

\begin{bmatrix}  I&\mathbf{p}\\  \mathbf{0}^T&1  \end{bmatrix}\begin{bmatrix}  A&\mathbf{0}\\  \mathbf{0}^T&1  \end{bmatrix}=\begin{bmatrix}  A&\mathbf{p}\\  \mathbf{0}^T&1  \end{bmatrix}

這說明齊次變換矩陣可分解兩個運算:先執行線性變換 A,之後再平移 \mathbf{p}。但是此順序不可顛倒,因為

\begin{bmatrix}  A&\mathbf{0}\\  \mathbf{0}^T&1  \end{bmatrix}\begin{bmatrix}  I&\mathbf{p}\\  \mathbf{0}^T&1  \end{bmatrix}=\begin{bmatrix}  A&A\mathbf{p}\\  \mathbf{0}^T&1  \end{bmatrix}

 
一般剛體運動 (物體中任何兩點之間的距離不受運動改變) 包含兩種轉換:旋轉與平移。同樣地,兩座標系統之間的轉換也由旋轉和平移構成。下面分別說明二維和三維空間剛體運動的齊次變換矩陣。

 
n=2,則 A 等於 2\times 2 階 (逆時針) 旋轉矩陣 R(\theta)=\begin{bmatrix}  \cos\theta&-\sin\theta\\  \sin\theta&\cos\theta  \end{bmatrix},而 \mathbf{p}=\begin{bmatrix}  p_x\\  p_y  \end{bmatrix},故齊次變換可由下列 3\times 3 階矩陣描述:

\begin{bmatrix}  \cos\theta&-\sin\theta&p_x\\  \sin\theta&\cos\theta&p_y\\  0&0&1  \end{bmatrix}

 
n=3,則 A 等於 3\times 3 階旋轉矩陣 R。令

\begin{aligned}  R_X(\phi)&=\begin{bmatrix}  1&0&0\\  0&\cos\phi&-\sin\phi\\  0&\sin\phi&\cos\phi  \end{bmatrix},\\  R_Y(\theta)&=\begin{bmatrix}  \cos\theta&0&\sin\theta\\  0&1&0\\  -\sin\theta&0&\cos\theta  \end{bmatrix},\\  R_Z(\psi)&=\begin{bmatrix}  \cos\psi&-\sin\psi&0\\  \sin\psi&\cos\psi&0\\  0&0&1  \end{bmatrix},\end{aligned}

其中 R_X(\phi)R_Y(\theta)R_Z(\psi) 分別代表對 XYZ 軸的旋轉矩陣。任何三維空間旋轉皆可表示為

R=R_Z(\psi)R_Y(\theta)R_X(\phi)=\begin{bmatrix}  c\psi c\theta&c\psi s\theta s\phi-s\psi c\phi&c\psi s\theta c\phi+s\psi s\phi\\  s\psi c\theta&s\psi s\theta s\phi+c\psi c\phi&s\psi s\theta c\phi-c\psi s\phi\\  -s\theta&c\theta s\phi&c\theta c\phi  \end{bmatrix}

其中 cs 表示 \cos\sin 縮寫。令平移量為 \mathbf{p}=(p_x,p_y,p_z)^T,即得到 4\times 4 階齊次變換矩陣:

\begin{bmatrix}  c\psi c\theta&c\psi s\theta s\phi-s\psi c\phi&c\psi s\theta c\phi+s\psi s\phi&p_x\\  s\psi c\theta&s\psi s\theta s\phi+c\psi c\phi&s\psi s\theta c\phi-c\psi s\phi&p_y\\  -s\theta&c\theta s\phi&c\theta c\phi&p_z\\  0&0&0&1  \end{bmatrix}

 
結論:3\times 3 階和 4\times 4 階齊次變換矩陣的差異在於前者描述二維平面運動而後者描述三維空間運動,這裡「運動」亦可改為「座標變換」。

This entry was posted in 答讀者問, 線性變換 and tagged , , . Bookmark the permalink.

發表迴響

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

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s