两个向量若内积为0则说明这两个向量的关系为正交;如果两个向量正交且各自长度均为1,则这个两向量为标准正交。对于若干个互相标准正交向量组成的集合,称为标准正交向量组,设 q q q是标准正交向量组的任意向量,那么: q i T q j = { 0 ( i ≠ j ) 1 ( i = j ) (1) q_i^Tq_j=\left\{ \begin{aligned} &0\quad(i\ne j)\\ &1\quad(i= j) \end{aligned} \right.\tag{1} qiTqj={0(i=j)1(i=j)(1) 标准正交向量组中的向量彼此的内积为0且长度为1。由定义看,正交矩阵是一个满秩矩阵,存在逆矩阵。
将向量 q 1 q_1 q1 q 2 q_2 q2 ⋯ \cdots ⋯ q n q_n qn作为矩阵的列按顺序组合成一个新的矩阵,记为 M M M,显然:
- M T M = I M^TM=I MTM=I M T M = [ q 1 q 2 ⋯ q n ] T [ q 1 q 2 ⋯ q n ] = [ q 1 T q 2 T ⋮ q n T ] [ q 1 q 2 ⋯ q n ] = [ q 1 T q 1 q 1 T q 2 ⋯ q 1 T q n q 2 T q 1 q 2 T q 2 ⋯ q 2 T q n ⋮ ⋮ ⋮ ⋮ q 1 T q 1 q 1 T q 2 ⋯ q 1 T q n ] = [ 1 0 ⋯ 0 0 1 ⋯ 0 ⋯ ⋯ ⋯ ⋯ 0 0 ⋯ 1 ] = I M^TM=\begin{bmatrix} q_1 &q_2 \cdots q_n \end{bmatrix}^T\begin{bmatrix} q_1 &q_2 \cdots q_n \end{bmatrix}\\=\begin{bmatrix} q_1^T \\q_2^T\\ \vdots \\q_n^T \end{bmatrix}\begin{bmatrix} q_1 &q_2 \cdots q_n \end{bmatrix}=\begin{bmatrix} q_1^Tq_1 &q_1^Tq_2& \cdots &q_1^Tq_n\\ q_2^Tq_1 &q_2^Tq_2 &\cdots &q_2^Tq_n\\ \vdots &\vdots &\vdots &\vdots \\ q_1^Tq_1 &q_1^Tq_2& \cdots& q_1^Tq_n \end{bmatrix}=\begin{bmatrix}1&0& \cdots&0\\0&1& \cdots&0\\\cdots& \cdots& \cdots& \cdots\\0&0& \cdots&1\end{bmatrix}=I MTM=[q1q2⋯qn]T[q1q2⋯qn]=⎣ ⎡q1Tq2T⋮qnT⎦ ⎤[q1q2⋯qn]=⎣ ⎡q1Tq1q2Tq1⋮q1Tq1q1Tq2q2Tq2⋮q1Tq2⋯⋯⋮⋯q1Tqnq2Tqn⋮q1Tqn⎦ ⎤=⎣ ⎡10⋯001⋯0⋯⋯⋯⋯00⋯1⎦ ⎤=I
虽然这个矩阵 M M M是由标准正交向量组成的矩阵,但是它不被称为标准正交矩阵(历史原因),要成为标准正交矩阵,向量的个数必须等于维数,也就是必须方方正正的(方阵),如果矩阵 M M M是方阵,那么称为正交矩阵(Orthogonal matrix),记为 Q Q Q。
对于一个正交矩阵 Q Q Q,因为 Q T Q = I Q^TQ=I QTQ=I,所以: Q T = Q − 1 Q^T=Q^{-1} QT=Q−1
验证一下正交矩阵 Q Q Q的逆等于 Q T Q^T QT: Q Q T = [ 0 0 1 1 0 0 0 1 0 ] [ 0 1 0 0 0 1 1 0 0 ] = I QQ^T=\begin{bmatrix} 0&0&1\\1&0&0\\0&1&0 \end{bmatrix}\begin{bmatrix} 0&1&0\\0&0&1\\1&0&0 \end{bmatrix}=I QQT=⎣ ⎡010001100⎦ ⎤⎣ ⎡001100010⎦ ⎤=I 看上去确实如此。
正交矩阵 Q Q Q是由单位正交向量组成的方阵,如果有一列不为单位向量,那么他就不可能是正交矩阵。
再来看另一个例子: [ cos θ − sin θ sin θ cos θ ] \begin{bmatrix} \cos\theta& -\sin\theta\\ \sin\theta&\cos\theta \end{bmatrix} [cosθsinθ−sinθcosθ] 随着 θ \theta θ的变换,能形成无数多个正交矩阵。
小结一下,如果一个矩阵是正交矩阵:
- Q T Q = I Q^TQ=I QTQ=I
- Q Q Q每一个列向量的长度为1
- Q Q Q每一个列向量与其他不同列向量垂直(正交)
- Q Q Q的逆等于其转置
P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT 如果矩阵 A A A是一个 Q Q Q,那么: P = Q ( Q T Q ) − 1 Q T = I P=Q(Q^TQ)^{-1}Q^T=I P=Q(QTQ)−1QT=I 正交矩阵的投影矩阵 P P P是单位矩阵,也就是: p = P b = b p=Pb=b p=Pb=b
2.2 线性拟合方程A T b = A T A x ^ A^Tb=A^TA\hat x ATb=ATAx^ 若 A A A是一个 Q Q Q,那么: Q T b = Q T Q x ^ Q^Tb=Q^TQ\hat x QTb=QTQx^ 因为 Q T Q = I Q^TQ=I QTQ=I,所以: x ^ = Q T b \hat x=Q^Tb x^=QTb
对于 x ^ \hat x x^的每一个分量 x i x_i xi有: x i = q i T b x_i=q_i^Tb xi=qiTb 也就是说,一个正交矩阵的列向量与 b b b的点积为 x i x_i xi的一个结果。
三、Gram-Schmidt正交化与前面的的矩阵分解为上三角函数不同,这一次我们将对矩阵进行正交化,使得矩阵中的列向量组是正交向量组,也就是正交矩阵:
- 长度为1
- 相互正交
假如我们有一组线性无关的向量 a a a和 b b b:
显然这两个向量的不是一组正交单位向量组,怎么将这两个向量转换成正交向量
A
A
A和
B
B
B?
联系之前学的投影知识,把 b b b投影至 a a a,再将 b b b投影至与 a a a正交的向量上:
可以取:
A
=
a
B
=
b
−
A
T
b
A
T
A
A
A=a\\ B=b-\frac{A^Tb}{A^TA}A
A=aB=b−ATAATbA 这样一来,两个非正交的向量组
a
a
a
b
b
b就求得了正交向量组
A
A
A
B
B
B。此时,向量
A
A
A和向量
B
B
B并不是正交的,所以需要对他们进行单位化操作:
Schmidt给出了单位化两个向量的方法: q 1 = A ∣ ∣ A ∣ ∣ q 2 = B ∣ ∣ B ∣ ∣ q_1=\frac{A}{\vert \vert A\vert\vert }\quad q_2=\frac{B}{\vert\vert B\vert \vert} q1=∣∣A∣∣Aq2=∣∣B∣∣B
个人理解,给定任意线性无关的向量组 A A A,我们都能找到与之对应的线性无关正交向量组 A ′ A' A′。
对于三个线性无关的向量又该如何进行正交化?
一样的思路:
- 将 a a a向量直接作为正交向量组的第一个向量 A = a A=a A=a
- 考虑 b b b,将向量 b b b向 A A A得到投影向量 p p p,与向量 A A A正交的向量记为 B B B,同时也是要求的第二个向量: B = b − A T b A T A A B=b-\frac{A^Tb}{A^TA}A B=b−ATAATbA
- 考虑 c c c,将 c c c分别投影至两个向量,得到 p 1 p_1 p1和 p 2 p_2 p2,因为 C + p 1 + p 2 = c C+p_1+p_2=c C+p1+p2=c,故: C = c − A T c A T A A − B T c B T B B C=c-\frac{A^Tc}{A^TA}A-\frac{B^Tc}{B^TB}B C=c−ATAATcA−BTBBTcB
- 最后别忘了对他们进行单位化 q 1 = A ∣ ∣ A ∣ ∣ q 2 = B ∣ ∣ B ∣ ∣ q 3 = C ∣ ∣ C ∣ ∣ q_1=\frac{A}{\vert \vert A\vert\vert }\quad q_2=\frac{B}{\vert\vert B\vert \vert}\quad q_3=\frac{C}{\vert\vert C\vert\vert} q1=∣∣A∣∣Aq2=∣∣B∣∣Bq3=∣∣C∣∣C
最后举一个简单的例子:
假设有两个线性无关的向量 a = [ 1 1 1 ] a=\begin{bmatrix}1\\1\\1\end{bmatrix} a=⎣ ⎡111⎦ ⎤和 b = [ 1 0 2 ] b=\begin{bmatrix}1\\0\\2\end{bmatrix} b=⎣ ⎡102⎦ ⎤,利用Gram-Schmidt求其对应的正交矩阵。
简单的套用公式: A = a B = b − A T b A T A A A=a\\ B=b-\frac{A^Tb}{A^TA}A A=aB=b−ATAATbA 容易得: A = a = [ 1 1 1 ] B = [ 1 0 2 ] − 3 3 [ 1 1 1 ] = [ 0 − 1 1 ] A=a=\begin{bmatrix}1\\1\\1\end{bmatrix} B=\begin{bmatrix}1\\0\\2\end{bmatrix}-\frac{3}{3}\begin{bmatrix}1\\1\\1\end{bmatrix}=\begin{bmatrix}0\\-1\\1\end{bmatrix} A=a=⎣ ⎡111⎦ ⎤B=⎣ ⎡102⎦ ⎤−33⎣ ⎡111⎦ ⎤=⎣ ⎡0−11⎦ ⎤ 最后将其正交化,得到正交矩阵 Q Q Q Q = [ q 1 q 2 ] = [ 1 / 3 0 1 / 3 − 1 / 2 1 / 3 1 / 2 ] Q=\begin{bmatrix}q_1&q_2\end{bmatrix}=\begin{bmatrix}1/\sqrt{3}&0\\1/\sqrt{3}&-1/\sqrt{2}\\1/\sqrt{3}&1/\sqrt{2}\end{bmatrix} Q=[q1q2]=⎣ ⎡1/3 1/3 1/3 0−1/2 1/2 ⎦ ⎤ 对比正交前矩阵 A A A: A = [ 1 1 1 0 1 2 ] A=\begin{bmatrix}1&1\\1&0\\1&2\end{bmatrix} A=⎣ ⎡111102⎦ ⎤ 为什么我们将矩阵 A A A变成更加复杂得(有很多根号)的正交矩阵?
- 正交化后矩阵的列空间与变化前相同
从矩阵分解的角度,消元法是 A = L U A=LU A=LU,而正交化则是 A = Q R A=QR A=QR,其中 R R R矩阵是一个上三角矩阵。
对于上面这个例子, A = Q R A=QR A=QR分解其实是: A = [ a 1 a 2 ] A=\begin{bmatrix}a_1&a_2\end{bmatrix} A=[a1a2] Q = [ q 1 q 2 ] Q=\begin{bmatrix}q_1&q_2\end{bmatrix} Q=[q1q2] R = [ a 1 T q 1 a 2 T q 1 a 1 T q 2 a 2 T q 2 ] R=\begin{bmatrix}a_1^Tq_1&a_2^Tq_1\\a_1^Tq_2&a_2^Tq_2\end{bmatrix} R=[a1Tq1a1Tq2a2Tq1a2Tq2] 显然 q 1 q_1 q1在 a 1 a_1 a1上,所以不为0,但是 q 2 q_2 q2与 a 1 a_1 a1正交,故 a 1 T q 2 = 0 a_1^Tq_2=0 a1Tq2=0,也就是: R = [ a 1 T q 1 a 2 T q 1 0 a 2 T q 2 ] R=\begin{bmatrix}a_1^Tq_1&a_2^Tq_1\\0&a_2^Tq_2\end{bmatrix} R=[a1Tq10a2Tq1a2Tq2] 确实是一个上三角矩阵。