歡迎來到矩陣變換的世界!
你好!這一章將帶你探索如何用矩陣來處理幾何變換。別擔心「變換」(transformation) 這個詞聽起來很複雜——它其實就是指圖形的移動或形狀改變。利用 2x2 矩陣,我們只需透過簡單的乘法,就能執行旋轉、反射等各種變換。
為什麼這很重要? 在電腦繪圖、工程學和物理學等領域,矩陣是計算物體在空間中如何移動、縮放或變形的基礎工具。掌握這一章,你就擁有了破解幾何難題的強大代數武器!
1. 基礎概念:點的映射
1.1 什麼是變換矩陣?
變換矩陣 \( \mathbf{M} \) 是一個 2x2 矩陣,當它與一個位置向量(即一個點)相乘時,會將其轉換為一個新的位置向量(即像點)。
我們將座標為 \((x, y)\) 的點 \(P\) 表示為列向量 \( \mathbf{p} = \begin{pmatrix} x \\ y \end{pmatrix} \)。
變換的過程永遠是:
$$ \mathbf{M} \mathbf{p} = \mathbf{p}' $$
其中 \(\mathbf{p}'\) 是像點,座標為 \((x', y')\)。
簡單來說: 可以把矩陣 \(\mathbf{M}\) 想像成一台小機器。你把原始點的座標輸入進去,機器就會輸出變換後的新座標!
1.2 映射步驟範例
設變換矩陣為 \( \mathbf{T} = \begin{pmatrix} 2 & 1 \\ 0 & 3 \end{pmatrix} \)。求點 \( A(4, -1) \) 的像。
- 將點 A 寫成列向量: \( \mathbf{a} = \begin{pmatrix} 4 \\ -1 \end{pmatrix} \)。
- 進行矩陣乘法: $$ \mathbf{a}' = \mathbf{T} \mathbf{a} = \begin{pmatrix} 2 & 1 \\ 0 & 3 \end{pmatrix} \begin{pmatrix} 4 \\ -1 \end{pmatrix} $$
- 計算結果向量: $$ \mathbf{a}' = \begin{pmatrix} (2)(4) + (1)(-1) \\ (0)(4) + (3)(-1) \end{pmatrix} = \begin{pmatrix} 8 - 1 \\ 0 - 3 \end{pmatrix} = \begin{pmatrix} 7 \\ -3 \end{pmatrix} $$
點 \(A(4, -1)\) 的像為 \(A'(7, -3)\)。
重點筆記 1:矩陣順序很重要!
務必確保將變換矩陣乘以列向量時,矩陣是在 左邊 的: \( \mathbf{M} \mathbf{p} \)。你不能寫成 \(\mathbf{p} \mathbf{M}\),因為它們的維度不符合矩陣乘法的規則!
2. 如何求變換的矩陣
不用急著死背每一個變換矩陣,有一個天才方法可以讓你推導出 任何 二維變換矩陣 \(\mathbf{M}\)。
2.1 基底向量法
所有(以原點為固定點的)二維變換,都可以由兩個基本基底向量的變化來定義:
- 沿 x 軸的向量: \( \mathbf{i} = \begin{pmatrix} 1 \\ 0 \end{pmatrix} \)
- 沿 y 軸的向量: \( \mathbf{j} = \begin{pmatrix} 0 \\ 1 \end{pmatrix} \)
變換矩陣 \(\mathbf{M}\) 的構造方式是:將 \(\mathbf{i}\) 的像作為 第一列 (第一欄),將 \(\mathbf{j}\) 的像作為 第二列 (第二欄)。
若變換 T 將 \(\mathbf{i} \to \begin{pmatrix} a \\ c \end{pmatrix}\) 且 \(\mathbf{j} \to \begin{pmatrix} b \\ d \end{pmatrix}\),則:
$$ \mathbf{M} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} $$
你知道嗎? 這就是為什麼對於以原點為中心的二維變換,我們只需要 2x2 矩陣。如果原點發生位移(平移),我們就需要使用不同的系統(稱為齊次座標,通常在高級課程中才會涉及,所以這裡我們只探討以原點為中心的變換!)。
2.2 範例:求直線 \(y = -x\) 的反射矩陣
1. \(\mathbf{i} = (1, 0)\) 變到哪裡去了?
將 \((1, 0)\) 關於 \(y = -x\) 反射,座標會互換並變號。
\(\mathbf{i}\) 的像是 \((0, -1)\)。這就是 第一列 (第一欄): \(\begin{pmatrix} 0 \\ -1 \end{pmatrix}\)。
2. \(\mathbf{j} = (0, 1)\) 變到哪裡去了?
將 \((0, 1)\) 關於 \(y = -x\) 反射。
\(\mathbf{j}\) 的像是 \((-1, 0)\)。這就是 第二列 (第二欄): \(\begin{pmatrix} -1 \\ 0 \end{pmatrix}\)。
3. 組合成矩陣: $$ \mathbf{M} = \begin{pmatrix} 0 & -1 \\ -1 & 0 \end{pmatrix} $$
3. 常見標準變換
你必須能夠識別並寫出以下標準二維變換的矩陣,所有這些變換均以原點 \((0, 0)\) 為中心。
3.1 旋轉 (Rotations)
除非特別註明,否則旋轉均為逆時針方向。若要順時針旋轉角度 \(\theta\),請在公式中使用 \(-\theta\)。
繞原點逆時針旋轉 \(\theta\) 角: $$ \mathbf{R} = \begin{pmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} $$
範例: 逆時針旋轉 \(90^\circ\) (\(\theta = 90^\circ\)): $$ \mathbf{R}_{90} = \begin{pmatrix} \cos 90^\circ & -\sin 90^\circ \\ \sin 90^\circ & \cos 90^\circ \end{pmatrix} = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix} $$
3.2 反射 (Reflections)
反射將點映射到它們在鏡像線(反射軸)另一側的位置。
- 關於 x 軸反射 (\(y=0\)): $$ \mathbf{R}_{x} = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} $$
- 關於 y 軸反射 (\(x=0\)): $$ \mathbf{R}_{y} = \begin{pmatrix} -1 & 0 \\ 0 & 1 \end{pmatrix} $$
- 關於 \(y=x\) 反射: (x 與 y 互換) $$ \mathbf{R}_{y=x} = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} $$
- 關於 \(y=-x\) 反射: (x 與 y 互換並同時變號) $$ \mathbf{R}_{y=-x} = \begin{pmatrix} 0 & -1 \\ -1 & 0 \end{pmatrix} $$
3.3 放大/縮小 (Enlargements)
放大 (Enlargement) 是以原點為中心的縮放,縮放因子為 \(k\)。每個座標都要乘以 \(k\)。
放大,縮放因子 \(k\),中心為原點: $$ \mathbf{E} = \begin{pmatrix} k & 0 \\ 0 & k \end{pmatrix} $$
注意: 若 \(k\) 為負值,則意味著放大再加上 \(180^\circ\) 的旋轉。若 \(k=1\),該矩陣為 單位矩陣 (Identity Matrix) \( \mathbf{I} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \)。單位矩陣不會對圖形產生任何影響!
3.4 拉伸 (Stretches)
拉伸 只會改變平行於其中一個軸的尺寸。
- 平行於 x 軸拉伸 (y 座標固定),因子為 \(k\): $$ \mathbf{S}_{x} = \begin{pmatrix} k & 0 \\ 0 & 1 \end{pmatrix} $$
- 平行於 y 軸拉伸 (x 座標固定),因子為 \(k\): $$ \mathbf{S}_{y} = \begin{pmatrix} 1 & 0 \\ 0 & k \end{pmatrix} $$
3.5 錯切 (Shears)
錯切 (Shear) 將圖形平行於一個軸進行滑動,滑動距離取決於它離另一個軸的距離。
- 平行於 x 軸錯切: x 座標改變 \(k \times y\) 的距離。(平行於 x 軸的直線保持不變。) $$ \mathbf{Sh}_{x} = \begin{pmatrix} 1 & k \\ 0 & 1 \end{pmatrix} $$
- 平行於 y 軸錯切: y 座標改變 \(k \times x\) 的距離。(平行於 y 軸的直線保持不變。) $$ \mathbf{Sh}_{y} = \begin{pmatrix} 1 & 0 \\ k & 1 \end{pmatrix} $$
速查:關鍵矩陣
單位矩陣: \( \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \) (無任何變化)
放大 (k): \( \begin{pmatrix} k & 0 \\ 0 & k \end{pmatrix} \)
旋轉 (\(\theta\)): \( \begin{pmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} \)
其他矩陣中 '1' 和 '0' 的位置告訴你哪個軸受到影響或保持固定!
4. 複合變換
在現實世界中,物體通常會經歷多次移動。複合變換就是連續執行一個變換後,再執行另一個變換。
4.1 乘法順序
如果一個圖形先經過變換 \(T_1\),再經過變換 \(T_2\),且它們各自的矩陣分別為 \(\mathbf{M}_1\) 和 \(\mathbf{M}_2\),則複合變換矩陣 \(\mathbf{M}\) 為這兩個矩陣的乘積。
$$ \mathbf{M} = \mathbf{M}_2 \mathbf{M}_1 $$
關鍵點(常見錯誤提醒!): 矩陣乘法的順序與變換執行的順序是相反的!
如果你先執行 \(T_1\),它的矩陣 \(\mathbf{M}_1\) 必須寫在靠近位置向量 \(\mathbf{p}\) 的那一側: $$ \mathbf{p}' = \mathbf{M}_2 (\mathbf{M}_1 \mathbf{p}) $$
先作用於向量的矩陣寫在右邊。
4.2 範例:組合變換
求先進行直線 \(y=x\) 的反射,再進行繞原點順時針旋轉 \(90^\circ\) 的複合變換矩陣。
1. 定義矩陣(順時針 \(90^\circ\) 即 \(\theta = -90^\circ\)):
反射 \(T_1\): \( \mathbf{M}_1 = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} \)
旋轉 \(T_2\): \( \mathbf{M}_2 = \begin{pmatrix} \cos(-90) & -\sin(-90) \\ \sin(-90) & \cos(-90) \end{pmatrix} = \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix} \)
2. 計算複合矩陣 \(\mathbf{M} = \mathbf{M}_2 \mathbf{M}_1\): $$ \mathbf{M} = \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix} \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} = \begin{pmatrix} (0)(0) + (1)(1) & (0)(1) + (1)(0) \\ (-1)(0) + (0)(1) & (-1)(1) + (0)(0) \end{pmatrix} $$
$$ \mathbf{M} = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} $$
觀察: 這個複合變換結果等於關於 x 軸的反射!
5. 面積縮放因子與逆變換
5.1 行列式與面積
變換矩陣 \(\mathbf{M} = \begin{pmatrix} a & b \\ c & d \end{pmatrix}\) 的 行列式 (determinant),記為 \(\det(\mathbf{M})\) 或 \(|\mathbf{M}|\),代表了該變換的 面積縮放因子。
$$ \det(\mathbf{M}) = ad - bc $$
若原圖形的面積為 \(A\),則新面積 \(A'\) 為: $$ A' = |\det(\mathbf{M})| \times A $$ 我們使用絕對值是因為面積永遠為正。
- 若 \(|\det(\mathbf{M})| > 1\),圖形被放大。
- 若 \(|\det(\mathbf{M})| < 1\),圖形被縮小。
- 若 \(|\det(\mathbf{M})| = 1\),面積不變(如旋轉、反射和錯切)。
奇異矩陣: 若 \(\det(\mathbf{M}) = 0\),該矩陣稱為 奇異矩陣 (singular matrix)。這意味著變換將整個平面壓縮成一條直線或一個點。此時面積變為零,且該變換是不可逆的。
5.2 逆變換
若變換 \(\mathbf{M}\) 將 \(P\) 映射到 \(P'\),則 逆變換 \(\mathbf{M}^{-1}\) 將 \(P'\) 映射回 \(P\)。
逆矩陣僅在行列式不為零(即矩陣為 非奇異 (non-singular))時存在。
回顧 2x2 矩陣的逆矩陣公式: $$ \mathbf{M}^{-1} = \frac{1}{\det(\mathbf{M})} \begin{pmatrix} d & -b \\ -c & a \end{pmatrix} $$
逆變換的作用是「還原」原始變換。例如,逆時針旋轉 \(+30^\circ\) 的逆變換就是順時針旋轉 \(30^\circ\)。
6. 不變點與不變直線
當進行變換時,有些點可能保持不動,有些直線可能保持在相同的位置(即使線上的點發生了移動)。這些是不變性的關鍵特徵。
6.1 求不變點
不變點 (invariant point) \(\mathbf{p}\) 是指滿足 \(\mathbf{M} \mathbf{p} = \mathbf{p}\) 的點。
設 \( \mathbf{M} = \begin{pmatrix} a & b \\ c & d \end{pmatrix} \) 且 \( \mathbf{p} = \begin{pmatrix} x \\ y \end{pmatrix} \)。
我們解方程組: $$ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} x \\ y \end{pmatrix} $$
這可以重寫為: $$ \begin{pmatrix} a-1 & b \\ c & d-1 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} $$
範例: 對於任何以原點為中心的旋轉或放大,原點 \((0, 0)\) 永遠是唯一的不變點。
6.2 求不變直線
不變直線 (invariant line) 是指直線上的每一個點映射後仍在該直線上(即使點的位置發生了改變)。
若 \(y = mx + c\) 為不變直線,則對於線上任意點 \((x, y)\),其像 \((x', y')\) 也必須滿足 \(y' = mx' + c\)。
這通常需要列聯立方程,並找出使結果對應於 x 值區間成立的情況。這往往是本科目中代數處理最複雜的部分。
重點筆記 2:代數幾何
這一章的核心就是將幾何(旋轉、錯切等)轉換為代數(矩陣乘法)。當題目要求你「描述變換」時,你必須明確指出 類型(例如:旋轉)、縮放因子(若適用),以及 直線/角度/中心(例如:繞原點、關於 \(y=x\) 反射)。