什麼是 QR 分解?
QR 分解(又稱 QR 分解法)是線性代數中一項基礎技巧,它將矩陣 A 表示為兩個矩陣的乘積:\(\mathbf{A} = \mathbf{Q}\,\mathbf{R}\)。其中 Q 是正交矩陣(各欄向量互相垂直且為單位向量,因此 \(\mathbf{Q}^{\mathsf{T}}\mathbf{Q} = \mathbf{I}\)),R 則是上三角矩陣。這種分解廣泛應用於全球的數值計算領域,適用於任何實數矩陣,不受國家或慣例的限制。
$$\mathbf{A} = \mathbf{Q}\,\mathbf{R}, \quad \mathbf{Q}^{\mathsf{T}}\mathbf{Q} = \mathbf{I},\ \ \mathbf{R}\ \text{upper triangular}$$
QR 分解常用來求解線性方程組、計算最小平方法迴歸擬合,以及透過 QR 演算法求特徵值。相較於直接對矩陣求反矩陣,QR 分解在數值上更為穩定,這也是它廣泛出現在各種科學與工程軟體套件中的原因。
如何使用本計算器
輸入矩陣相當簡單:
- 同一列中的數值請以逗號分隔。
- 每一列之間請以直線符號( | )分隔。
- 舉例來說,列為 (1, 2) 和 (3, 4) 的矩陣,請輸入為
1,2|3,4。
送出後,計算器會回傳正交矩陣 Q 與上三角矩陣 R,您可以將兩者相乘來驗證是否能還原出原始矩陣。
公式解析
最常見的方法是格拉姆–施密特(Gram–Schmidt)正交化程序。給定 A 的各欄向量 a₁、a₂、…,演算法會逐步建構出一組單位正交向量:
- 取出第一欄並將其正規化,得到 q₁。
- 對於後續的每一欄,先減去它在已計算出的各個 q 向量上的投影,再將剩餘部分正規化。
- R 的各元素為內積 \(r_{ij} = \mathbf{q}_i \cdot \mathbf{a}_j\);由於較早的 q 向量不會依賴於後面的欄,因此 R 為上三角矩陣。
實例演算
以 A = 1,1|0,1|1,0(一個 3×2 矩陣)為例。將第一欄正規化後得到 \(\mathbf{q}_1 = (0.707,\ 0,\ 0.707)\)。將第二欄減去其在 q₁ 上的投影並正規化,便得到 q₂。最終得到的 Q 為正交矩陣,各欄皆為長度為 1 且互相垂直的單位向量,而 R 則保存了各個投影係數。將 \(\mathbf{Q} \times \mathbf{R}\) 相乘即可還原原始矩陣 A,驗證分解的正確性。
常見問題
矩陣一定要是方陣嗎? 不需要。QR 分解適用於任何 m×n 且 m ≥ n 的矩陣,這正是它在「方程式多於未知數」的最小平方問題中如此實用的原因。
QR 分解是唯一的嗎? 在 R 對角線元素的正負號差異範圍內是唯一的。慣例上會將 R 的對角線設為正值,以確定唯一的答案。
為什麼要用 QR 而不直接求反矩陣? QR 在數值上更穩定,可避免直接計算反矩陣時產生的捨入誤差,讓計算結果更為可靠。