最小平方法與資料擬合

格拉姆-施密特正交化(Gram-Schmidt orthogonalization)

/ GRAM-SHMIT /

格拉姆-施密特是教科書上把一組傾斜、可能冗餘的向量變成一組張成同一空間、互相垂直的單位向量的標準做法。你一次處理一個向量。第一個只需歸一化。對每個新向量,你減去它在所有已固定方向上的影子,只留下真正新的、垂直的部分,再把它歸一化。這就是徒手建立正交歸一基底的方法——也是逐行建立 QR 分解中 Q 的方法。

逐步來看,給定各行 a_1, a_2, ...:令 q_1 = a_1 / ||a_1||。對 a_2,去掉它沿 q_1 的分量:v_2 = a_2 - (q_1^T a_2) q_1,再令 q_2 = v_2 / ||v_2||。對 a_3,去掉它沿 q_1 與 q_2 的分量,依此類推。你剝下來的係數(那些 q_i^T a_j)正是上三角 R 的各項,所以格拉姆-施密特直接產生 A = Q R,並給出與其他 QR 方法相同的最小平方機制。它是三者中最直觀的。

誠實的陷阱在這:天真的「古典」格拉姆-施密特數值上很脆弱。當向量近乎平行時,那些相減會涉及災難性抵消,算出的 q 們會偏離正交。修正之道是「修正版格拉姆-施密特」(MGS),它逐一減去各投影並使用剛更新過的向量,而非一次全減——代數上完全相同,數值上好得多。即便如此,要最高準確度仍首選豪斯霍爾德 QR;格拉姆-施密特靠直觀、靠稀疏情境,以及在 Arnoldi 這類克雷洛夫法中(對逐漸增長的基底做正交化是其核心運算)來證明自己的價值。

把 a_1 = (1, 1, 0)^T 與 a_2 = (1, 0, 1)^T 正交歸一化。先 q_1 = (1, 1, 0)/sqrt(2)。再 v_2 = a_2 - (q_1^T a_2) q_1 = (1,0,1) - (1/2)(1,1,0) = (1/2, -1/2, 1),然後 q_2 = v_2/||v_2||。現在 q_1 與 q_2 是張成同一平面的互相垂直的單位向量。

減去每個新向量在已固定方向上的影子,再把剩下的部分歸一化。

古典格拉姆-施密特在近乎平行的向量上因抵消而失去正交性;務必使用修正版(MGS),而當準確度至關重要時則首選豪斯霍爾德 QR。

又稱
Gram-Schmidt processmodified Gram-SchmidtMGS格拉姆-施密特法