这部分我们有两个目标。一是了解正交性是怎么让 <mover accent="true"> x ^ </mover> \hat x x^ p p p P P P 的计算变得简单的,这种情况下, A T A A^TA ATA 将会是一个对角矩阵。二是学会怎么从原始向量中构建出正交向量。

1. 标准正交基

向量 q 1 , &ThinSpace; , q n q_1, \cdots, q_n q1,,qn 是标准正交的,如果它们满足如下条件:

q i T q j = { <mstyle displaystyle="false" scriptlevel="0"> 0 </mstyle> <mstyle displaystyle="false" scriptlevel="0"> <mtext> if  </mtext> i <mpadded width="0px"> ̸ </mpadded> = j ( ) </mstyle> <mstyle displaystyle="false" scriptlevel="0"> 1 </mstyle> <mstyle displaystyle="false" scriptlevel="0"> <mtext> if  </mtext> i = j ( ) </mstyle> q_i^Tq_j = \begin{cases} 0,&amp;\text{if } i \not = j \quad(正交向量)\\ 1, &amp;\text{if } i = j \quad(单位向量) \end{cases} qiTqj={01if i̸=j()if i=j()

如果一个矩阵的列是标准正交的,我们称之为 Q Q Q。很容易,我们可以得到 Q T Q = I Q^TQ=I QTQ=I

Q Q Q 是方阵的时候,我们可以得到 Q T = Q 1 Q^T=Q^{-1} QT=Q1,也即转置等于逆。

  • 旋转(Rotation)

旋转矩阵 Q Q Q 就是将任意向量逆时针旋转 θ \theta θ,其逆矩阵 Q 1 Q^{-1} Q1 就是将任意向量顺时针旋转 θ \theta θ

  • 置换(Permutation)

置换矩阵的作用就是交换矩阵的行,在消元的时候有很大的作用。

  • 镜像(Reflection)

如果 u u u 是任意单位向量,那么 Q = I 2 u u T Q = I-2uu^T Q=I2uuT 是一个正交矩阵。

Q 2 = Q T Q = I Q^2=Q^TQ=I Q2=QTQ=I

绕对称轴镜像两次还是它本身。

u 1 = ( 1 , 0 ) u_1=(1, 0) u1=(1,0) u 2 = ( 1 / 2 , 1 / 2 ) u_2=(1/\sqrt2, -1/\sqrt2) u2=(1/2 ,1/2 ),然后,我们可以得到两个正交矩阵。

Q 1 Q_1 Q1 将任意向量 ( x , y ) (x, y) (x,y) 变为 ( x , y ) (-x, y) (x,y) y y y 轴是镜像轴。 Q 2 Q_2 Q2 将任意向量 ( x , y ) (x, y) (x,y) 变为 ( y , x ) (y, x) (y,x) 45 ° 45° 45° 轴是镜像轴。

可以看到,旋转、置换和镜像都不会改变一个向量的长度。实际上,乘以任意正交矩阵都不会改变向量的长度

Q x = x ||Qx||=||x|| Qx=x

Q x 2 = ( Q x ) T ( Q x ) = x T Q T Q x = x T I x = x 2 ||Qx||^2 = (Qx)^T(Qx) = x^TQ^TQx = x^TIx=||x||^2 Qx2=(Qx)T(Qx)=xTQTQx=xTIx=x2

而且,正交矩阵也会保留两个向量的点积。

( Q x ) T ( Q y ) = x T Q T Q y = x T y (Qx)^T(Qy) = x^TQ^TQy = x^Ty (Qx)T(Qy)=xTQTQy=xTy

2. 正交矩阵的投影

当矩阵 A A A 变成了正交矩阵 Q Q Q,那么投影就会变得非常简单,我们不需要求任何逆矩阵。

A T A <mover accent="true"> x ^ </mover> = A T b <mover accent="true"> x ^ </mover> = Q T b A^TA\hat x=A^Tb \to \hat x=Q^Tb ATAx^=ATbx^=QTb

p = A <mover accent="true"> x ^ </mover> p = Q <mover accent="true"> x ^ </mover> = Q Q T b p=A\hat x \to p=Q\hat x = QQ^Tb p=Ax^p=Qx^=QQTb

P = A ( A T A ) 1 A T P = Q Q T P = A(A^TA)^{-1}A^T \to P = QQ^T P=A(ATA)1ATP=QQT

Q Q Q 为方阵的时候,子空间为整个空间,有 Q T = Q 1 Q^T=Q^{-1} QT=Q1 <mover accent="true"> x ^ </mover> = Q T b \hat x = Q^Tb x^=QTb 就等同于 x = Q 1 b x=Q^{-1}b x=Q1b,也就是有唯一解, b b b 的投影即为它本身。

这就是傅里叶变化和所有应用数学中各种变化的基础,它们将向量或者函数分解成正交的小片,将这些小片加起来之后就回到了原函数。

3. Gram-Schmidt 正交化和 A A A Q R QR QR 分解

从上面我们可以看到正交对我们是非常有利的,现在我们就要找到一个方法来创造出标准正交的向量。假设我们有三个不相关的向量 a , b , c a, b, c a,b,c,如果我们能构造出正交的三个向量 A , B , C A,B,C A,B,C,那么再除以它们的长度就得到了标准正交向量。

首先,我们选取 A = a A=a A=a,那么 B B B 必须垂直于 A A A 。我们用 b b b 减去其在 A A A 的投影,就得到了垂直于 A A A 的部分,这也就是我们要找的 B B B

B = b A T b A T A A B = b - \frac{A^Tb}{A^TA}A B=bATAATbA

接着,我们再用 c c c 减去其在 A A A B B B 的投影,就得到我们要找的 C C 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=cATAATcABTBBTcB

如果我们有更多的向量,那我们就用新的向量减去它在已经设定好的所有向量上的投影即可,最后,我们再除以它们各自的长度就得到了标准正交向量。

可以看到, q 1 = a / a q_1=a/||a|| q1=a/a,没有涉及到其它向量, a a a q 1 q_1 q1 A A A 都位于一条线上。第二步中 b b b 也只是 A A A B B B 的线性组合,不涉及到后面的向量, a , b a,b a,b q 1 , q 2 q_1,q_2 q1,q2 A , B A,B A,B 都位于一个平面内。在每一个步骤中, a 1 , a 2 , &ThinSpace; , a k a_1, a_2, \cdots, a_k a1,a2,,ak 只是 q 1 , q 2 , &ThinSpace; , q k q_1, q_2, \cdots, q_k q1,q2,,qk 的线性组合,后面的 q q q 没有涉及到。

联系 A A A Q Q Q 的矩阵 R R R 是上三角形矩阵,有 A = Q R A=QR A=QR

任意 m × n m×n m×n 的矩阵 A A A,如果其列是不相关的,那么就可以分解成 Q R QR QR Q Q Q 的列是标准正交的,而 R R R 是上三角矩阵并且对角线元素为正,为向量 B , C \cdots B,C\cdots B,C 的长度。

然后,最小二乘就变成了

A T A <mover accent="true"> x ^ </mover> = A T b R T Q T Q R <mover accent="true"> x ^ </mover> = R T Q T b R T R <mover accent="true"> x ^ </mover> = R T Q T b R <mover accent="true"> x ^ </mover> = Q T b <mover accent="true"> x ^ </mover> = R 1 Q T b 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 ATAx^=ATbRTQTQRx^=RTQTbRTRx^=RTQTbRx^=QTbx^=R1QTb

获取更多精彩,请关注「seniusen」!