矩陣分解

QR 分解(再探)

你在第一門課中見過 A = Q R,它是 Gram-Schmidt 的矩陣形式:Q 的各行正交歸一,R 是上三角。Q 的各行是逐行構造出來的、A 行空間的一組正交歸一基。這幅圖景是對的,但其背後的計算值得再看一眼。

經典 Gram-Schmidt 在數值上很脆弱。逐步減去投影會累積捨入誤差,算出的 Q 各行會偏離正交性,有時偏得很厲害。現代的 QR 計算方式根本不去正交化 A 的各行,而是從左側對 A 施加一連串正交變換,每次把一行的次對角部分置零,直到剩下的就是 R;累乘起來的變換便構成 Q。

這些正交變換就是 Householder 反射(預設方式,整行反射)或 Givens 旋轉(一次處理一個元素,適合稀疏或已近三角的矩陣)。由於每一步都是精確的正交映射,長度和角度都被保持,捨入誤差不會被放大。結果是後向穩定的:算出的 Q 與 R 所分解的矩陣非常接近 A。

QR 是最小二乘的正確工具。用正規方程求解 min ||A x - b|| 會把條件數平方,而分解 A = Q R 再解 R x = Q^T b 則完全避免了這種平方。QR 還驅動求特徵值的 QR 演算法,在那裡它被反覆迭代,把矩陣推向三角形式。

min ||A x - b|| -> A = Q R, solve R x = Q^T b

QR 求解最小二乘,不會像正規方程那樣把條件數平方。

同一種分解,不同的引擎。Gram-Schmidt 講清思想;Householder/Givens 讓它在數值上可信。實際計算中務必優先用後者。

又稱
orthogonal-triangular factorizationA = QRQR 分解