矩陣與行列式:當一堆數字排成方陣,就能解開線性方程組
從咖啡店的定價難題出發,看矩陣運算、行列式與高斯消去法如何系統化地求解線性方程組,並一路通向特徵值與奇異值分解。
當「一堆數字排成方陣」突然能解開三條方程式
假設你經營一間小咖啡店,週末三天的銷售紀錄讓你很困惑:第一天賣出 2 杯拿鐵、1 杯美式、1 杯卡布,總收入 320 元;第二天 1 杯拿鐵、3 杯美式、1 杯卡布,收入 350 元;第三天 1 杯拿鐵、1 杯美式、2 杯卡布,收入 330 元。問題來了——每種咖啡的單價各是多少?
你當然可以用國中學的「代入消去法」一步步硬解,但如果咖啡有 10 種、紀錄有 10 天呢?這時,把所有「係數」抽出來排成一個整齊的方陣,再用一套系統化的規則去操作它,會比逐式消去快得多、也不容易出錯。這個方陣,就叫做矩陣(matrix);而那套操作規則,正是線性代數(linear algebra)的起點。

矩陣是什麼:把方程組「拆成三塊」
上面的咖啡問題,用方程式寫出來是:
$$ \begin{cases} 2x + 1y + 1z = 320 \\ 1x + 3y + 1z = 350 \\ 1x + 1y + 2z = 330 \end{cases} $$
其中 $x, y, z$ 分別是拿鐵、美式、卡布的單價。注意到一件事:方程式裡真正「變動」的資訊有三塊——係數(咖啡杯數)、未知數(單價)、常數(總收入)。矩陣的核心想法,就是把這三塊各自打包:
$$ \underbrace{\begin{pmatrix} 2 & 1 & 1 \\ 1 & 3 & 1 \\ 1 & 1 & 2 \end{pmatrix}}_{A\ (\text{係數矩陣})} \underbrace{\begin{pmatrix} x \\ y \\ z \end{pmatrix}}_{\mathbf{x}} = \underbrace{\begin{pmatrix} 320 \\ 350 \\ 330 \end{pmatrix}}_{\mathbf{b}} $$
於是整組方程式被濃縮成一句話:$A\mathbf{x} = \mathbf{b}$。
一個矩陣就是一個由數字排成的矩形陣列。我們說一個矩陣是 $m \times n$(讀作「$m$ 乘 $n$」),表示它有 $m$ 個橫列(row)、$n$ 個直行(column)。上面的 $A$ 是 $3 \times 3$,是行數與列數相等的方陣(square matrix)。我們用 $a_{ij}$ 表示第 $i$ 列、第 $j$ 行的元素,例如 $a_{23} = 1$(第二列第三行)。
請特別記住「列在前、行在後」這個慣例,這是初學者最容易弄反的地方。
矩陣的基本運算:加法簡單,乘法有玄機
加減法與純量乘法
矩陣的加法與減法非常直覺:同樣大小的兩個矩陣,把對應位置的元素逐一相加即可。
$$ \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} + \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = \begin{pmatrix} 6 & 8 \\ 10 & 12 \end{pmatrix} $$
純量乘法(一個數字乘上整個矩陣)也是逐元素進行:
$$ 3 \times \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} = \begin{pmatrix} 3 & 6 \\ 9 & 12 \end{pmatrix} $$
矩陣乘法:行列相遇才有意義
矩陣乘法則是真正的關鍵,它的定義乍看不直覺,卻正是讓 $A\mathbf{x}=\mathbf{b}$ 成立的原因。規則是:要計算 $C = AB$,$C$ 的第 $i$ 列第 $j$ 行元素,等於 $A$ 的第 $i$ 列與 $B$ 的第 $j$ 行做「對應相乘再相加」:
$$ c_{ij} = \sum_{k=1}^{n} a_{ik}\, b_{kj} $$
這意味著:只有當 $A$ 的行數等於 $B$ 的列數時,乘法才有定義。若 $A$ 是 $m \times n$、$B$ 是 $n \times p$,則 $AB$ 是 $m \times p$。
舉個具體例子:
$$ \begin{pmatrix} 2 & 1 & 1 \\ 1 & 3 & 1 \\ 1 & 1 & 2 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} 2x + 1y + 1z \\ 1x + 3y + 1z \\ 1x + 1y + 2z \end{pmatrix} $$
看出來了嗎?把這個結果跟原本的方程組對照,正好就是左邊三條式子。矩陣乘法的定義,本質上就是「打包多條線性方程式」這件事的數學語言。
一個務必牢記的迷思:矩陣乘法不滿足交換律。 一般而言 $AB \neq BA$,甚至 $AB$ 有定義時 $BA$ 可能根本不能計算。這跟一般數字的乘法很不一樣,初學時請隨時提醒自己。
單位矩陣與反矩陣:矩陣世界的「1」與「倒數」
在實數裡,$1$ 是乘法單位元素(任何數乘 1 不變),而非零數 $a$ 有倒數 $a^{-1}$ 使 $a \cdot a^{-1} = 1$。矩陣世界裡也有對應的概念。
單位矩陣(identity matrix) $I$ 是對角線全為 1、其餘為 0 的方陣:
$$ I_3 = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} $$
它滿足 $AI = IA = A$,扮演著「乘法不改變」的角色。
反矩陣(inverse matrix) $A^{-1}$ 則是滿足 $A A^{-1} = A^{-1} A = I$ 的方陣。一旦找到它,解方程組就變得異常乾淨:
$$ A\mathbf{x} = \mathbf{b} \;\Longrightarrow\; A^{-1}A\mathbf{x} = A^{-1}\mathbf{b} \;\Longrightarrow\; \mathbf{x} = A^{-1}\mathbf{b} $$
但要小心:不是每個方陣都有反矩陣。 就像 $0$ 沒有倒數一樣,某些矩陣是「退化」的,無法求逆。判斷的關鍵,就是接下來要介紹的行列式。
行列式:一個數字,看穿矩陣的「胖瘦」
行列式(determinant) 是只對方陣定義的一個純量,記作 $\det(A)$ 或 $|A|$。它最重要的功能是:
$A$ 可逆(有反矩陣)$\iff \det(A) \neq 0$。
對 $2 \times 2$ 矩陣,行列式的公式很簡單:
$$ \det\begin{pmatrix} a & b \\ c & d \end{pmatrix} = ad - bc $$
對 $3 \times 3$ 矩陣,可用「沿第一列展開(cofactor expansion)」:
$$ \det\begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} = a\begin{vmatrix} e & f \\ h & i \end{vmatrix} - b\begin{vmatrix} d & f \\ g & i \end{vmatrix} + c\begin{vmatrix} d & e \\ g & h \end{vmatrix} $$
注意正負號交錯($+,-,+$)的規律,這來自餘因子(cofactor)的符號 $(-1)^{i+j}$。
行列式還有一個漂亮的幾何意義:$2 \times 2$ 矩陣的行列式絕對值,等於它把單位正方形映射後得到的平行四邊形面積;$3 \times 3$ 則對應平行六面體的體積。當 $\det(A) = 0$,代表這個映射把空間「壓扁」了——把面積或體積壓成零——也就難怪它不可逆:被壓扁的資訊無法還原。
看一個例子:回到咖啡店
讓我們真的把咖啡單價解出來。係數矩陣
$$ A = \begin{pmatrix} 2 & 1 & 1 \\ 1 & 3 & 1 \\ 1 & 1 & 2 \end{pmatrix} $$
先算行列式,沿第一列展開:
$$ \det(A) = 2\begin{vmatrix} 3 & 1 \\ 1 & 2 \end{vmatrix} - 1\begin{vmatrix} 1 & 1 \\ 1 & 2 \end{vmatrix} + 1\begin{vmatrix} 1 & 3 \\ 1 & 1 \end{vmatrix} $$
$$ = 2(3\cdot 2 - 1\cdot 1) - 1(1\cdot 2 - 1\cdot 1) + 1(1\cdot 1 - 3\cdot 1) $$
$$ = 2(5) - 1(1) + 1(-2) = 10 - 1 - 2 = 7 $$
由於 $\det(A) = 7 \neq 0$,這個系統有唯一解。我們可以用克拉瑪法則(Cramer's rule)直接求每個未知數:把 $A$ 的第 $j$ 行換成常數向量 $\mathbf{b}$,得到矩陣 $A_j$,則
$$ x_j = \frac{\det(A_j)}{\det(A)} $$
求拿鐵單價 $x$,把第一行換成 $\mathbf{b} = (320, 350, 330)^\top$:
$$ A_x = \begin{pmatrix} 320 & 1 & 1 \\ 350 & 3 & 1 \\ 330 & 1 & 2 \end{pmatrix} $$
$$ \det(A_x) = 320(3\cdot 2 - 1\cdot 1) - 1(350\cdot 2 - 1\cdot 330) + 1(350\cdot 1 - 3\cdot 330) $$
$$ = 320(5) - (700 - 330) + (350 - 990) = 1600 - 370 - 640 = 590 $$
所以 $x = 590 / 7 \approx 84.3$ 元。同理可求出 $y$(美式)與 $z$(卡布)。實務上,當常數設計得「漂亮」時會剛好整除;這裡刻意用真實感的數字,是想讓你看到計算的真實樣貌。
動手試試
請你自己驗證一個更小的系統:
$$ \begin{cases} 2x + 3y = 8 \\ x - y = -1 \end{cases} $$
寫成矩陣形式 $A = \begin{pmatrix} 2 & 3 \\ 1 & -1 \end{pmatrix}$,$\mathbf{b} = \begin{pmatrix} 8 \\ -1 \end{pmatrix}$。先算 $\det(A) = 2\cdot(-1) - 3\cdot 1 = -5 \neq 0$,所以有唯一解。用克拉瑪法則:
$$ x = \frac{\begin{vmatrix} 8 & 3 \\ -1 & -1 \end{vmatrix}}{-5} = \frac{-8 - (-3)}{-5} = \frac{-5}{-5} = 1, \quad y = \frac{\begin{vmatrix} 2 & 8 \\ 1 & -1 \end{vmatrix}}{-5} = \frac{-2 - 8}{-5} = \frac{-10}{-5} = 2 $$
代回原式檢驗:$2(1)+3(2)=8$ ✓,$1-2=-1$ ✓。
高斯消去法:電腦真正在用的解法
雖然克拉瑪法則公式優雅,但它在維度大時計算量會爆炸(要算 $n+1$ 個行列式,而每個 $n \times n$ 行列式的展開複雜度極高)。實務上解大型線性系統,標準工具是高斯消去法(Gaussian elimination)。
它的精神是對「增廣矩陣(augmented matrix)」$[A \mid \mathbf{b}]$ 做三種列運算,把左半邊化成階梯形:
- 交換兩列;
- 某一列乘上非零常數;
- 某一列加上另一列的倍數。
這些運算不改變方程組的解集。以咖啡系統為例(這裡只示意流程):
$$ \left[\begin{array}{ccc|c} 2 & 1 & 1 & 320 \\ 1 & 3 & 1 & 350 \\ 1 & 1 & 2 & 330 \end{array}\right] \;\longrightarrow\; \cdots \;\longrightarrow\; \left[\begin{array}{ccc|c} 1 & 0 & 0 & x \\ 0 & 1 & 0 & y \\ 0 & 0 & 1 & z \end{array}\right] $$
當左邊化成單位矩陣時,右邊就直接讀出答案。高斯消去法的計算量約為 $\frac{2}{3}n^3$,遠優於克拉瑪法則,這也是為什麼幾乎所有數值軟體(如 NumPy、MATLAB)內部都採用它(或其變體 LU 分解)來解 $A\mathbf{x}=\mathbf{b}$。
重點回顧
- 矩陣是線性方程組的緊湊表示:$A\mathbf{x} = \mathbf{b}$ 把係數、未知數、常數三塊分開打包,矩陣乘法的定義正好還原出每一條方程式。
- 矩陣乘法不可交換:一般 $AB \neq BA$,且乘法有定義的前提是「前者的行數等於後者的列數」。
- 行列式是一個判別數:$\det(A) \neq 0 \iff A$ 可逆 $\iff$ 方程組有唯一解;幾何上它是面積/體積的縮放倍率。
- 求解有多種工具:小系統可用反矩陣或克拉瑪法則;大系統實務上用高斯消去法,計算效率高出許多。
- 小心常見迷思:列在前、行在後;不是每個方陣都可逆;行列式為零代表空間被壓扁、資訊遺失。
深入探討(研究所視角)
從研究所的線性代數來看,本文介紹的矩陣其實只是冰山一角。真正統攝一切的核心概念是線性映射(linear transformation):一個矩陣 $A$ 並非只是數字陣列,而是一個從向量空間 $\mathbb{R}^n$ 到 $\mathbb{R}^m$ 的函數 $T(\mathbf{x}) = A\mathbf{x}$,它保持加法與純量乘法。矩陣只是這個抽象映射在「選定一組基底(basis)」之後的座標表示,換一組基底,同一個映射會有不同的矩陣外觀。
在這個視角下,「$A\mathbf{x} = \mathbf{b}$ 是否有解」變成「$\mathbf{b}$ 是否落在 $A$ 的行空間(column space)裡」的問題,而解的個數則由秩—零度定理(rank–nullity theorem)精確刻畫:$\text{rank}(A) + \dim(\ker A) = n$。當零空間(kernel)非平凡時,解不唯一;行列式為零,正對應到秩不足、零空間非零的情形。這把「行列式為零」「不可逆」「壓扁空間」三件事統一在同一個結構下。
更進一步是特徵值與特徵向量(eigenvalue & eigenvector):滿足 $A\mathbf{v} = \lambda \mathbf{v}$ 的非零向量 $\mathbf{v}$ 是被 $A$「只伸縮、不轉向」的特殊方向。特徵值由特徵多項式 $\det(A - \lambda I) = 0$ 決定——你會發現行列式在此再度登場。而 $\det(A) = \prod_i \lambda_i$(所有特徵值之積)、$\text{tr}(A) = \sum_i \lambda_i$(跡為特徵值之和),這些恆等式把本文的計算工具與深層結構連了起來。
這些理論並非象牙塔內的玄學。在 Uedu 優學院所關注的教育多模態資料分析(Educational Omics)中,學習者的多維資料常被組織成矩陣,而奇異值分解(singular value decomposition, SVD)——把任意矩陣拆成 $A = U\Sigma V^\top$ 的技術——正是主成分分析(PCA)、推薦系統、潛在語意分析的數學引擎。當我們想從上百個學習指標中萃取「最關鍵的幾個維度」,本質上就是在找矩陣最大的幾個奇異值與對應方向。從咖啡店的三條方程式,到分析數萬名學習者的認知歷程,背後是同一套線性代數語言。掌握矩陣與行列式,就是拿到了通往現代資料科學、機器學習與計算科學的第一把鑰匙。