L17-正交矩阵与 Gram-Schmidt 正交化

linear-algebra

L17-正交矩阵与 Gram-Schmidt 正交化

参考

标准正交向量

正交的向量/基 orthogonal basis 是指一系列相互垂直/正交的向量

如果这些向量的模长都是 11 则称为标准正交向量 orthogonal vectors,可以用数学表达式来描述它们

qiTqj={0,if ij1,if i=jq_{i}^{T}q_{j}=\begin{cases} 0, & if \ i \ne j \\ 1, & if \ i = j \end{cases}

以上公式表示标准正交向量是一系列的单位向量(当它们与自身相乘时 i=ji=j,内积为 qiTqj=1q_{i}^{T}q_{j}=1),它们之间两两相互垂直(当它们之间进行相乘时 iji \ne j,内积为 qiTqj=0q_{i}^{T}q_{j}=0

说明

在课堂中,会使用 normalizednormalunit length 等关键词表示向量是单位向量

正交矩阵

如果将一系列的标准正交(列)向量 qiq_{i} 构成一个矩阵 Q=[q1qn]Q=\begin{bmatrix}q_{1} \dots q_{n} \end{bmatrix} 则这个矩阵满足

QTQ=IQ^{T}Q=I

其中 II 表示单位矩阵

证明

因为矩阵 QQ 是由一系列的标准正交(列)向量,它们相互垂直,所以当 iji \ne j 时,满足 qiqj=0q_{i}q_{j}=0;而当 i=ji=j 时,满足 qiqj=1{\color{Red} q_{i}q_{j}=1},所以 QTQQ^{T}Q 可以为

QTQ=[q1TqnT][q1qn]=[q1Tq1q1Tq2q1Tqnq2Tq1q2Tq2q2TqnqnTq1qnTqn]=[100010001]=IQ^{T}Q= \begin{bmatrix} q_{1}^{T} \\ \vdots \\ q_{n}^{T} \end{bmatrix} \begin{bmatrix} q_{1} & \cdots & q_{n} \end{bmatrix}= \begin{bmatrix} {\color{Red} q_{1}^{T}q_{1}} & q_{1}^{T}q_{2} & \cdots & q_{1}^{T}q_{n} \\ q_{2}^{T}q_{1} & {\color{Red} q_{2}^{T}q_{2}} & \cdots & q_{2}^{T}q_{n} \\ \vdots & \vdots & \ddots & \vdots \\ q_{n}^{T}q_{1} & \cdots & \cdots & {\color{Red} q_{n}^{T}q_{n}} \end{bmatrix}= \begin{bmatrix} {\color{Red} 1} & 0 & \dots & 0 \\ 0 & {\color{Red} 1} & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & {\color{Red} 1} \\ \end{bmatrix}= I

这样的矩阵称为 orthonormal matrices 标准正交矩阵

如果标准正交矩阵是方阵时,则称为正交矩阵 orthogonal matrix

由于正交矩阵 QQ 是一个方阵,且各列向量都是线性独立的(因为它们是相互垂直/正交的),所以它是可逆矩阵,而且因为 QTQ=IQ^{T}Q=I,所以它的逆矩阵就是其转置矩阵 Q1=QTQ^{-1}=Q^{T}

说明

其实对于非方阵的标准正交矩阵 QQ 也是存在逆矩阵的(因为这些矩阵的各列向量也是线性独立的),但是在 L3-矩阵的乘法和逆 课堂上所介绍的算法来求解逆矩阵,只能针对方阵,因为需要将原矩阵 AA 与单位矩阵 II 构造为一个增广矩阵,需要保证它们的维度相匹配

所以一般的情况下,说一个矩阵有逆矩阵/可逆,都是默认将方阵作为判断矩阵是否可逆的先决条件,所以在一些教程中会直接通过观察矩阵的维度(是否为方阵)就断定该矩阵是否为可逆矩阵,也有一定的道理。

另外因为方阵的左逆和右逆相等,即满足 Q1Q=QQ1=IQ^{-1}Q=QQ^{-1}=I 所以 QTQ=QQT=IQ^{T}Q=QQ^{T}=I

一些正交矩阵的例子

  • 任何一个 permutation matrix 置换矩阵 PP 都是正交矩阵 Q3×3=[001100010]Q_{3 \times 3}= \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix}
    QTQ^{T}Q3×3T=[010001100]Q_{3 \times 3}^{T}= \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{bmatrix}
    满足 QTQ=IQ^{T}Q=I
    由于置换矩阵的转置 QTQ^{T} 也是置换矩阵,所以 QTQ^{T} 也是正交矩阵
  • 一个由三角函数构成的矩阵也是正交矩阵 [cosθsinθsinθcosθ]\begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix}
    各列向量的模长(平方) cos2θ+sin2θ=1\cos^{2} \theta + \sin^{2} \theta =1
    而且列向量相互垂直 col1Tcol2=cosθsinθ+sinθcosθ=0col1^{T}col2=-\cos \theta \sin \theta + \sin \theta \cos \theta =0(两个列向量的乘积为 00
  • 如果一个方阵的各列向量相互正交,且模长相同,可以将其乘上一个系数转化为一个正交矩阵 Q=[1111]Q=\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}
    以上的矩阵各列向量相互垂直,但是模长并不是 11,然而每个列向量的模长都是 2\sqrt{2} 可以将它乘上 12\frac{1}{\sqrt{2}} 得到一个正交矩阵 QQ^{\prime} Q=12[1111]Q^{\prime}=\frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}
    阿达马矩阵

    可以基于以上的矩阵 QQ 构建出一个更大的矩阵,例如

    H=[1111111111111111]H= \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \end{bmatrix}

    这种只由 111-1 构成的矩阵,列向量都是正交的,即满足 HTH=IH^{T}H=I 称为 Hadamard matrix

    将其转化为一个正交矩阵

    H=12[1111111111111111]H^{\prime}=\frac{1}{2} \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \end{bmatrix}
  • 还可以根据两个模长相同且相互正交的列向量,通过观察写出第三个列向量,由它们构成矩阵可以转化为正交矩阵,例如
A=[122122]A= \begin{bmatrix} 1 & -2 \\ 2 & -1 \\ 2 & 2 \end{bmatrix}

添加第三个列向量构成一个矩阵

Q=[122212221]Q= \begin{bmatrix} 1 & -2 & {\color{Red} 2} \\ 2 & -1 & {\color{Red} -2}\\ 2 & 2 & {\color{Red} 1} \end{bmatrix}

第三个列向量与前面两个列向量都是正交的,且模长相同

将其转化为正交矩阵

Q=13[122212221]Q^{\prime}=\frac{1}{3} \begin{bmatrix} 1 & -2 & {\color{Red} 2} \\ 2 & -1 & {\color{Red} -2}\\ 2 & 2 & {\color{Red} 1} \end{bmatrix}
提示

也可以通过 Gram-Schmidt 正交化,基于一系列的线性独立的向量构造出正交矩阵,但是该算法常常会出现根号,因为需要除以模长以获得单位向量

正交矩阵的优点

由于正交矩阵 QQ 的特殊「结构」(各列向量都是标准正交向量),可以使计算变得方便。

例如对于投影矩阵,如果矩阵 AA 的各列都是正交向量,用矩阵 QQ 表示,则根据 QTQ=IQ^{T}Q=I 可以将投影矩阵的表达式进行化简

P=A(ATA)1AT=Q(QTQ)1QT=QIQT=QQTP=A(A^{T}A)^{-1}A^{T}=Q(Q^{T}Q)^{-1}Q^{T}=QIQ^{T}=QQ^{T}
提示

如果矩阵 Qn×nQ_{n \times n} 同时是方阵(即正交矩阵),则投影矩阵就是单位矩阵 P=QQT=IP=QQ^{T}=I,也就是说 QQ 自身就张成/包含整个 nn 维空间(由于正交矩阵 QQ 各列线性独立,即列满秩 r=nr=n,所以列空间就包含整个 Rn\mathbb{R}^{n} 空间)

那么任意向量 bb(有 nn 个元素,在 Rn\mathbb{R}^{n} 空间中)投影到正交矩阵 QQ 的列空间中,投影结果向量仍是其自身,这和公式推演的结果 p=Pb=Ib=bp=Pb=Ib=b 相同

Gram-Schmidt 正交化

Gram-Schmidt process 格拉姆-施密特正交化是一种算法,其目的是从线性无关/线性独立的一系列(列)向量构造出一个正交矩阵 QQ,而且这个正交矩阵的列空间 C(Q)C(Q) 和原来的一系列列向量所张成的空间一样

以最简单的情况为例:从两个线性独立的向量 aabb 入手,构建出两个标准正交向量 q1q_{1}q2q_{2}

  1. 从原始的向量中求出正交的一组向量 AABB
    (取其中一个向量作为参考标准)令向量 A=aA=a,那么向量 BB 与向量 AA 垂直,则它就是向量 bb 在向量 AA垂直方向上的分量是 B=bATbATAA\displaystyle{B=b- \frac{A^{T}b}{A^{T}A}A}
    说明

    如果从向量投影的角度来看,向量 bb 投影到向量 AA 所在的直线,得到投影结果向量 pp,那么误差向量 e=bpe=b-p 就是向量 bb 在向量 AA 的垂直方向上的分量

    e=bp=bxa=baTbaTaa=bATbATAA\begin{aligned} e&=b-p \\ &=b-xa \\ &=b- \frac{a^{T}b}{a^{T}a}a \\ &=b- \frac{A^{T}b}{A^{T}A}A \end{aligned}

    可以通过 ATB=0A^{T}B=0 来验证向量 AA 和向量 BB 是正交的

    ATB=AT(bATbATAA)=ATbATbATAATA=ATbATB=0\begin{aligned} A^{T}B&=A^{T}(b-\frac{A^{T}b}{A^{T}A}A) \\ &=A^{T}b-\frac{A^{T}b}{{\color{Orange} A^{T}A}}{\color{Orange} A^{T}A} \\ &=A^{T}b-A^{T}B \\ &=0 \end{aligned}
  2. 再基于正交的一组向量 AABB(分别除以其模长)得到一组标准正交向量 q1q_{1}q2q_{2} q1=AAq_{1}=\frac{A}{\Vert A \Vert} q2=BBq_{2}=\frac{B}{\Vert B \Vert}
    说明

    因为向量 q1q_{1} 和向量 aa 方向是相同的 q1=kA=kaq_{1}=kA=ka(其中 kk 为系数),而向量 q2q_{2} 实际是由向量 aa 和向量 bb 通过线性组合构成的 q2=lB=l(bxa)q_{2}=lB=l(b-xa)(其中 llxx 都是系数)

    所以原始的(线性独立)向量 aabb 与求得的标准正交向量 q1q_{1}q2q_{2} 所张成的平面是相同的。因此可以使用 q1q_{1}q2q_{2} 替代原始向量来描述它们张成的空间,因为它们是标准正交向量,可以让运算更简单。

    从矩阵的角度看,如果将向量分别构成一个矩阵 A=[ab]A=\begin{bmatrix}a & b\end{bmatrix}Q=[q1q2]Q=\begin{bmatrix}q_{1} & q_{2}\end{bmatrix},那么矩阵 QQ 的各列其实都是由矩阵 AA 各列的线性组合构成的,所以从矩阵 AA 得到矩阵 QQ 的运算过程中,列空间并没有改变,即这两个矩阵的列空间是相同的

  3. 一般将这些标准正交向量组合成一个正交矩阵 QQ

更进一步,从三个线性独立的向量 aabbcc 构建出三个标准正交向量 q1q_{1}q2q_{2}q3q_{3}

根据前面的分析,已知两个相互垂直的向量 A=aA=aB=bATbATAA\displaystyle{B=b- \frac{A^{T}b}{A^{T}A}A},关键一步是求出第三个正交向量 CC

可以按照前面的思路,向量 CC 需要与前面两个向量都垂直,其实就是将原始向量 cc 「拆分」为 33 个分量:

  • 投影到向量 AA 的分量
  • 投影到向量 BB 的分量
  • 同时与向量 AABB 垂直的分量(这个分量就是所求的目标向量 CC

而前面两个分量都可以按照公式求得,可得以下公式

C=cATcATAABTcBTBBC=c-\frac{A^{T}c}{A^{T}A}A-\frac{B^{T}c}{B^{T}B}B
提示

按照这个思路依次类推,可以从任意数量的线性独立的向量中构建出相应数量的标准正交向量

然后再通过公式 q3=CC\displaystyle{q_{3}=\frac{C}{\Vert C \Vert}} 求出对应的标准正交向量


将 Gram-Schmidt 正交化这个算法应用于以下的一个实例

已知线性独立的两个向量 a=[111]a=\begin{bmatrix}1 \\ 1 \\ 1\end{bmatrix}b=[102]b=\begin{bmatrix}1 \\ 0 \\ 2\end{bmatrix}

  1. 根据原始向量求出一组正交的向量 AABB
    令向量 A=a=[111]A=a=\begin{bmatrix}1 \\ 1 \\ 1\end{bmatrix}
    则向量 BBB=bATbATAA=[102][111][102][111][111][111]=[102]1×1+1×0+1×21×1+1×1+1×1[111]=[102]33[111]=[011]\begin{aligned} B&=b-\frac{A^{T}b}{A^{T}A}A \\ &= \begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix}- \frac{ \begin{bmatrix}1 & 1 & 1\end{bmatrix} \begin{bmatrix}1 \\ 0 \\ 2\end{bmatrix} }{ \begin{bmatrix}1 & 1 & 1\end{bmatrix} \begin{bmatrix}1 \\ 1 \\ 1\end{bmatrix} } \begin{bmatrix}1 \\ 1 \\ 1\end{bmatrix} \\ &= \begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix}- \frac{1 \times 1 + 1 \times 0 + 1 \times 2}{1 \times 1 + 1 \times 1 + 1 \times 1} \begin{bmatrix}1 \\ 1 \\ 1\end{bmatrix} \\ &= \begin{bmatrix} 1 \\ 0 \\ 2 \end{bmatrix}-\frac{3}{3}\begin{bmatrix}1 \\ 1 \\ 1\end{bmatrix} \\ &=\begin{bmatrix}0 \\ -1 \\ 1\end{bmatrix} \\ \end{aligned}
    验证

    验证向量 AABB 垂直,即它们的内积为 00

    ATB=[111][011]=1×0+1×(1)+1×1=0\begin{aligned} A^{T}B&= \begin{bmatrix} 1 & 1 & 1 \end{bmatrix} \begin{bmatrix} 0 \\ -1 \\ 1 \end{bmatrix} \\ &=1 \times 0 + 1 \times (-1) + 1 \times 1 \\ &=0 \end{aligned}
  2. 求出标准正交向量 q1q_{1}q2q_{2} q1=AA=A3q_{1}=\frac{A}{\Vert A \Vert}=\frac{A}{\sqrt{3}} q2=BB=B2q_{2}=\frac{B}{\Vert B \Vert}=\frac{B}{\sqrt{2}}
  3. 构成一个正交矩阵 QQ Q=[13013121312]Q= \begin{bmatrix} \frac{1}{\sqrt{3}} & 0 \\ \frac{1}{\sqrt{3}} & -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}} & \frac{1}{\sqrt{2}} \end{bmatrix}

在消元时,可以将系数矩阵 AA 「分解」为 A=LUA=LU 两个三角矩阵(LL 为下三角矩阵,UU 为上三角矩阵)。

类似地,在正交化时可以将原始向量所构成的矩阵 AA「分解」为两个矩阵 QRQR,其中 QQ 为正交矩阵

对于由两个线性独立的(列)向量 a1a_{1}a2a_{2} 所构成的矩阵 AA,将其分解所得到的具体表达式为

A=QR[a1a2]=[q1q2][a1Tq1a2Tq1a1Tq2a2Tq2]\begin{aligned} A\hspace{1.5em}=&\hspace{1.5em}Q \hspace{4em} R \\ \begin{bmatrix} a_{1} & a_{2} \end{bmatrix}=& \begin{bmatrix} q_{1} & q_{2} \end{bmatrix} \begin{bmatrix} a_{1}^{T}q_{1} & a_{2}^{T}q_{1} \\ a_{1}^{T}q_{2} & a_{2}^{T}q_{2} \end{bmatrix} \end{aligned}
说明

其中 RR 为上三角矩阵,由于 q1=AA=aA\displaystyle{q_{1}=\frac{A}{\Vert A \Vert}=\frac{a}{\Vert A \Vert}} 即向量 q1q_{1}aa 方向是相同的,而向量 q1q_{1}q2q_{2} 是正交的,所以 q2q_{2}aa 垂直,则 a1Tq2=0a_{1}^{T}q_{2}=0


Copyright © 2024 Ben

Theme BlogiNote

Icons from Icônes