1. 程式人生 > >線性代數之——正交矩陣和 Gram-Schmidt 正交化

線性代數之——正交矩陣和 Gram-Schmidt 正交化

這部分我們有兩個目標。一是瞭解正交性是怎麼讓 \(\hat x\)\(p\)\(P\) 的計算變得簡單的,這種情況下,\(A^TA\) 將會是一個對角矩陣。二是學會怎麼從原始向量中構建出正交向量。

1. 標準正交基

向量 \(q_1, \cdots, q_n\) 是標準正交的,如果它們滿足如下條件:

\[q_i^Tq_j = \begin{cases} 0,&\text{if } i \not = j \quad(正交向量)\\ 1, &\text{if } i = j \quad(單位向量) \end{cases}\]

如果一個矩陣的列是標準正交的,我們稱之為 \(Q\)

。很容易,我們可以得到 \(Q^TQ=I\)

\(Q\) 是方陣的時候,我們可以得到 \(Q^T=Q^{-1}\),也即轉置等於逆。

  • 旋轉(Rotation)

旋轉矩陣 \(Q\) 就是將任意向量逆時針旋轉 \(\theta\),其逆矩陣 \(Q^{-1}\) 就是將任意向量順時針旋轉 \(\theta\)

  • 置換(Permutation)

置換矩陣的作用就是交換矩陣的行,在消元的時候有很大的作用。

  • 映象(Reflection)

如果 \(u\) 是任意單位向量,那麼 \(Q = I-2uu^T\) 是一個正交矩陣。

\[Q^2=Q^TQ=I\]

繞對稱軸映象兩次還是它本身。

\(u_1=(1, 0)\)\(u_2=(1/\sqrt2, -1/\sqrt2)\),然後,我們可以得到兩個正交矩陣。

\(Q_1\) 將任意向量 \((x, y)\) 變為 \((-x, y)\)\(y\) 軸是映象軸。\(Q_2\) 將任意向量 \((x, y)\) 變為 \((y, x)\)\(45°\) 軸是映象軸。

可以看到,旋轉、置換和映象都不會改變一個向量的長度。實際上,乘以任意正交矩陣都不會改變向量的長度

\[||Qx||=||x||\]

\[||Qx||^2 = (Qx)^T(Qx) = x^TQ^TQx = x^TIx=||x||^2\]

而且,正交矩陣也會保留兩個向量的點積。

\[(Qx)^T(Qy) = x^TQ^TQy = x^Ty\]

2. 正交矩陣的投影

當矩陣 \(A\) 變成了正交矩陣 \(Q\),那麼投影就會變得非常簡單,我們不需要求任何逆矩陣。

\[A^TA\hat x=A^Tb \to \hat x=Q^Tb\]

\[p=A\hat x \to p=Q\hat x = QQ^Tb\]

\[P = A(A^TA)^{-1}A^T \to P = QQ^T\]

\(Q\) 為方陣的時候,子空間為整個空間,有 \(Q^T=Q^{-1}\)\(\hat x = Q^Tb\) 就等同於 \(x=Q^{-1}b\),也就是有唯一解,\(b\) 的投影即為它本身。

這就是傅立葉變化和所有應用數學中各種變化的基礎,它們將向量或者函式分解成正交的小片,將這些小片加起來之後就回到了原函式。

3. Gram-Schmidt 正交化和 \(A\)\(QR\) 分解

從上面我們可以看到正交對我們是非常有利的,現在我們就要找到一個方法來創造出標準正交的向量。假設我們有三個不相關的向量 \(a, b, c\),如果我們能構造出正交的三個向量 \(A,B,C\),那麼再除以它們的長度就得到了標準正交向量。

首先,我們選取 \(A=a\),那麼 \(B\) 必須垂直於 \(A\) 。我們用 \(b\) 減去其在 \(A\) 的投影,就得到了垂直於 \(A\) 的部分,這也就是我們要找的 \(B\)

\[B = b - \frac{A^Tb}{A^TA}A\]

接著,我們再用 \(c\) 減去其在 \(A\)\(B\) 的投影,就得到我們要找的 \(C\)

\[C = c - \frac{A^Tc}{A^TA}A-\frac{B^Tc}{B^TB}B\]

如果我們有更多的向量,那我們就用新的向量減去它在已經設定好的所有向量上的投影即可,最後,我們再除以它們各自的長度就得到了標準正交向量。

可以看到,\(q_1=a/||a||\),沒有涉及到其它向量,\(a\)\(q_1\)\(A\) 都位於一條線上。第二步中 \(b\) 也只是 \(A\)\(B\) 的線性組合,不涉及到後面的向量,\(a,b\)\(q_1,q_2\)\(A,B\) 都位於一個平面內。在每一個步驟中,\(a_1, a_2, \cdots, a_k\) 只是 \(q_1, q_2, \cdots, q_k\) 的線性組合,後面的 \(q\) 沒有涉及到。

聯絡 \(A\)\(Q\) 的矩陣 \(R\) 是上三角形矩陣,有 \(A=QR\)

任意 \(m×n\) 的矩陣 \(A\),如果其列是不相關的,那麼就可以分解成 \(QR\)\(Q\) 的列是標準正交的,而 \(R\) 是上三角矩陣並且對角線元素為正,為向量 \(\cdots B,C\cdots\) 的長度。

然後,最小二乘就變成了

\[A^TA\hat x=A^Tb \to R^TQ^TQR\hat x=R^TQ^Tb \to R^TR\hat x=R^TQ^Tb \to R\hat x=Q^Tb \to \hat x = R^{-1}Q^Tb\]

獲取更多精彩,請關注「seniusen」!