透過 MCP 連接 →

輸入計算

[
     
     
     
]

數學公式

廣告

結果

QR 分解會將矩陣 A 拆解為 Q * R 的乘積,其中 Q 為正交矩陣,R 為上三角矩陣。

輸入矩陣(A):

1 2 3
4 5 6
7 8 9

Q 矩陣:

-0.1231 0.9045 -0.4082
-0.4924 0.3015 0.8165
-0.8616 -0.3015 -0.4082

R 矩陣:

-8.124 -9.6011 -11.0782
0 0.9045 1.8091
0 0 0

什麼是 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 分解在數值上更為穩定,這也是它廣泛出現在各種科學與工程軟體套件中的原因。

矩陣 A 分解為正交矩陣 Q 和上三角矩陣 R
QR 分解將矩陣 A 分解為正交矩陣 Q 和上三角矩陣 R。

如何使用本計算器

輸入矩陣相當簡單:

  • 同一列中的數值請以逗號分隔。
  • 每一列之間請以直線符號( | )分隔。
  • 舉例來說,列為 (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 為上三角矩陣。
Advertisement
格拉姆-施密特將向量正交化為垂直座標軸
格拉姆-施密特方法將矩陣的行轉化為單位正交向量,構成 Q 的各行。

實例演算

以 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 在數值上更穩定,可避免直接計算反矩陣時產生的捨入誤差,讓計算結果更為可靠。

最後更新: