本节的两个目标就是为什么和怎么做(why and how)。首先是知道为什么正交性很好:因为它们的点积为零; A T A A^TA ATA 是对角矩阵;在求 x ^ \boldsymbol{\hat x} x^ 和 p = A x ^ \boldsymbol p=A\boldsymbol{\hat x} p=Ax^ 时也会很简单。第二个目的标是构建正交向量,通过格拉姆-施密特(Gram-Schmidt)正交化的方法选择原始基向量的组合生成直角。原始基向量就是 A A A 的列,它可能不是正交的。标准正交基向量将会是新矩阵 Q Q Q 的列。
一、标准正交矩阵 Q
一组基包含可张成空间的无关向量,这些基向量可能是以任意角度相交的(不能是 0 ° 0° 0° 和 180 ° 180° 180°)。我们所看到的坐标轴,它们都是垂直的,而正交可以简化图形也能大大的减少计算。
一组向量 q 1 , q 2 , ⋯ , q n \boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_n q1,q2,⋯,qn,当它们的点积 q i ⋅ q j = 0 \boldsymbol q_i\cdot\boldsymbol q_j=0 qi⋅qj=0 时,它们的正交的。更确切的说应该是只要 i ≠ j i\neq j i=j 时, q i T q j = 0 \boldsymbol q_i^T\boldsymbol q_j=0 qiTqj=0。更进一步,我们将每个向量除以它的长度,这组向量就变成了正交单位向量,它们的长度都为 1 1 1(标准),这组基就称为标准正交基(orthonormal)。
定义 \kern 5pt 向量 q 1 , q 2 , ⋯ , q n \boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_n q1,q2,⋯,qn 标准正交,如果: q i T q j = { 0 , i ≠ j ( 正交 向量 ) 1 , i = j ( 单位 向量 : ∣ ∣ q i ∣ ∣ = 1 ) \boldsymbol q_i^T\boldsymbol q_j=\left\{\begin{array}{l}0,\kern 10pti\neq j\kern 5pt(\pmb{正交}向量)\\1,\kern 10pti=j\kern 5pt(\pmb{单位}向量:||\boldsymbol q_i||=1)\end{array}\right. qiTqj={ 0,i=j(正交向量)1,i=j(单位向量:∣∣qi∣∣=1)标准正交列的矩阵用指定字母 Q Q Q 表示。
矩阵 Q Q Q 很容易处理,因为 Q T Q = I Q^TQ=I QTQ=I。用矩阵语言来说就是列 q 1 , q 2 , ⋯ , q n \boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_n q1,q2,⋯,qn 是标准正交的, Q Q Q 不一定要是方阵。
有标准正交列的矩阵 Q Q Q 满足 Q T Q = I \color{blue}{Q^TQ=I} QTQ=I: Q T Q = [ − − q 1 T − − − − q 2 T − − ⋮ − − q n T − − ] [ ∣ ∣ ∣ q 1 q 2 ⋯ q n ∣ ∣ ∣ ] = [ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ] = I ( 4.4.1 ) {\color{blue}{Q^TQ}}=\begin{bmatrix}--\,\boldsymbol q_1^T--\\--\,\boldsymbol q_2^T--\\\vdots\\--\,\boldsymbol q^T_n--\end{bmatrix}\begin{bmatrix}|&|&&|\\\boldsymbol q_1&\boldsymbol q_2&\cdots&\boldsymbol q_n\\|&|&&|\end{bmatrix}=\begin{bmatrix}1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end{bmatrix}={\color{blue}I}\kern 10pt(4.4.1) QTQ= −−q1T−−−−q2T−−⋮−−qnT−− ∣q1∣∣q2∣⋯∣qn∣ = 10⋮001⋮0⋯⋯⋱⋯00⋮1 =I(4.4.1)
Q T Q^T QT 的第 i i i 行乘 Q Q Q 的第 j j j 列,点积是 q i T q j \boldsymbol q_i^T\boldsymbol q_j qiTqj,非对角线( i ≠ j i\neq j i=j)上的元素因为正交性它们的点积都为零;对角线( i = j i=j i=j)上的元素是 1 1 1,因为单位向量有 q i T q i = ∣ ∣ q i ∣ ∣ 2 = 1 \boldsymbol q_i^T\boldsymbol q_i=||\boldsymbol q_i||^2=1 qiTqi=∣∣qi∣∣2=1。通常 Q Q Q 是矩形( m > n m>n m>n),有时也有 m = n m=n m=n。 当 Q 是方阵时, Q T Q = I 意味着 Q T = Q − 1 :转置 = 逆 \color{blue}当\,Q\,是方阵时,Q^TQ=I\,意味着\,Q^T=Q^{-1}:转置=逆 当Q是方阵时,QTQ=I意味着QT=Q−1:转置=逆如果列仅仅是正交但不是单位矩阵,点积仍然得到对角矩阵(不是单位矩阵)。对角矩阵和单位矩阵 I I I 基本上一样,重要的是正交性 —— 单位化很简单。
重复:尽管 Q Q Q 是个矩形矩阵,仍然有 Q T Q = I Q^TQ=I QTQ=I,这种情况下 Q T Q^T QT 只是左逆矩阵。对于方阵来说,也有 Q T Q = I Q^TQ=I QTQ=I,所以 Q T Q^T QT 是 Q Q Q 的双边逆矩阵。方阵 Q Q Q 的行像它的列一样都是正交的,此时逆矩阵就是转置矩阵。方阵的情况下我们称 Q Q Q 是正交矩阵。(只有当 Q Q Q 是方阵时我们才称为正交矩阵:orthogonal matrix。)
下面是正交矩阵的三个例子:旋转(rotation)、置换(permutation)和反射(reflection)。最快的检验方法就是检查 Q T Q = I Q^TQ=I QTQ=I。
【例1】(旋转) Q Q Q 将平面的任意向量旋转角度 θ \theta θ:
Q = [ cos θ − sin θ sin θ cos θ ] 和 Q T = Q − 1 = [ cos θ sin θ − sin θ cos θ ] Q=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}\kern 5pt和\kern 5ptQ^T=Q^{-1}=\begin{bmatrix}\cos\theta&\sin\theta\\-\sin\theta&\cos\theta\end{bmatrix} Q=[cosθsinθ−sinθcosθ]和QT=Q−1=[cosθ−sinθsinθcosθ]
Q Q Q 的列是正交的(可以通过它们的点积进行验证),它们也是单位向量,因为 sin 2 θ + cos 2 θ = 1 \sin^2\theta+\cos^2\theta=1 sin2θ+cos2θ=1。这些列是平面 R 2 \pmb{\textrm R}^2 R2 的一组标准正交基。
Q Q Q 将标准基向量 i \boldsymbol i i 和 j \boldsymbol j j 旋转 θ \theta θ 角(如 Figure 4.10a); Q − 1 Q^{-1} Q−1 将向量旋转 − θ -\theta −θ 角旋转回来,它与 Q T Q^T QT 是一样的,因为 cos ( − θ ) = cos θ \cos(-\theta)=\cos\theta cos(−θ)=cosθ, sin ( − θ ) = − sin θ \sin(-\theta)=-\sin\theta sin(−θ)=−sinθ。我们有 Q T Q = I Q^TQ=I QTQ=I 且 Q Q T = I QQ^T=I QQT=I。
【例2】(置换)这些矩阵改变将向量分量的顺序变为 ( y , z , x ) (y,z,x) (y,z,x) 和 ( y , x ) (y,x) (y,x): [ 0 1 0 0 0 1 1 0 0 ] [ x y z ] = [ y z x ] , [ 0 1 1 0 ] [ x y ] = [ y x ] \begin{bmatrix}0&1&0\\0&0&1\\1&0&0\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}y\\z\\x\end{bmatrix},\kern 10pt\begin{bmatrix}0&1\\1&0\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}y\\x\end{bmatrix} 001100010 xyz = yzx ,[0110][xy]=[yx] Q Q Q 的每一列的都是单位向量(它们的长度很明显都是 1 1 1),且都是正交的( 1 1 1 是在不同的位置)。置换矩阵的逆矩阵就是它的转置: Q − 1 = Q T Q^{-1}=Q^T Q−1=QT。逆矩阵将向量的分量又变回原先的顺序: 逆 = 转置 : [ 0 0 1 1 0 0 0 1 0 ] [ y z x ] = [ x y z ] , [ 0 1 1 0 ] [ y x ] = [ x y ] \pmb{逆=转置}:\kern 10pt\begin{bmatrix}0&0&1\\1&0&0\\0&1&0\end{bmatrix}\begin{bmatrix}y\\z\\x\end{bmatrix}=\begin{bmatrix}x\\y\\z\end{bmatrix},\kern 5pt\begin{bmatrix}0&1\\1&0\end{bmatrix}\begin{bmatrix}y\\x\end{bmatrix}=\begin{bmatrix}x\\y\end{bmatrix} 逆=转置: 010001100 yzx = xyz ,[0110][yx]=[xy]
每个置换矩阵都是一个正交矩阵。
【例3】(反射)如果 u \boldsymbol u u 是任意的单位向量,令 Q = I − 2 u u T Q=I-2\boldsymbol {uu}^T Q=I−2uuT。注意 u u T \boldsymbol{uu}^T uuT 是一个矩阵,而 u T u \boldsymbol u^T\boldsymbol u uTu 是一个数字,且 ∣ ∣ u ∣ ∣ 2 = 1 ||\boldsymbol u||^2=1 ∣∣u∣∣2=1。则 Q T Q^T QT 和 Q − 1 Q^{-1} Q−1 都等于 Q Q Q: Q T = I − 2 u u T = Q 且 Q T Q = I − 4 u u T + 4 u u T u u T = I ( 4.4.2 ) {\color{blue}Q^T=I-2\boldsymbol{uu}^T=Q}\kern 5pt且\kern 5ptQ^TQ=I-4\boldsymbol{uu}^T+4\boldsymbol{uu}^T\boldsymbol{uu}^T=I\kern 10pt(4.4.2) QT=I−2uuT=Q且QTQ=I−4uuT+4uuTuuT=I(4.4.2)反射矩阵 I − 2 u u T I-2\boldsymbol{uu}^T I−2uuT 是对称且正交的矩阵,将它平方可以得到单位矩阵: Q 2 = Q T Q = I Q^2=Q^TQ=I Q2=QTQ=I。通过镜子反射两次会回到原始状态,就像 ( − 1 ) 2 = 1 (-1)^2=1 (−1)2=1。注意方程(4.4.2) 4 u u T u u T 4\boldsymbol{uu}^T\boldsymbol{uu}^T 4uuTuuT 中的 u T u = 1 \boldsymbol u^T\boldsymbol u=1 uTu=1。
图中选择的方向是 u = ( − 1 2 , 1 2 ) \boldsymbol u=(\displaystyle-\frac{1}{\sqrt2},\frac{1}{\sqrt2}) u=(−21,21)。计算 2 u u T 2\boldsymbol{uu}^T 2uuT(列乘行)然后将其从 I I I 中减去就可以得到在方向 u \boldsymbol u u 的反射矩阵 Q Q Q: 反射 : Q = I − 2 [ 1 / 2