• 线性代数学习笔记5-3:标准正交基、正交矩阵、施密特正交化、QR分解


    正交矩阵

    一组标准正交向量Orthonormal vectors满足:
    q i T q j = { 0 i ≠ j 1 i = j \mathbf{q}_{i}^{T} \mathbf{q}_{j}=\left\{

    0ij1i=j" role="presentation" style="position: relative;">0ij1i=j
    \right. qiTqj={01i=ji=j
    “标准”是指各个向量长度都为1,“正交”指任意两个向量正交;标准正交基础让问题变得简单可控

    一组标准正交向量作为列向量,得到的矩阵为 Q \mathbf Q Q
    根据上面的性质,这个矩阵一定满足 Q T Q = [ q 1 T q 2 T q 3 T ] [ q 1 q 2 q 3 ] = I \mathbf Q^T\mathbf Q=

    [q1Tq2Tq3T]" role="presentation" style="position: relative;">[q1Tq2Tq3T]
    [q1q2q3]" role="presentation" style="position: relative;">[q1q2q3]
    =\mathbf I QTQ= q1Tq2Tq3T [q1q2q3]=I(但是 Q T Q ≠ I \mathbf Q^T\mathbf Q\neq \mathbf I QTQ=I,除非 Q \mathbf Q Q方阵

    ps. Q \mathbf Q Q不一定为方阵,例如三维空间中两个正交的基向量,也可以构成一个 Q \mathbf Q Q
    但是,如果 Q \mathbf Q Q方阵,则其列向量就是 R n \mathbf R^n Rn空间的一组标准正交基( n n n个长度为1的 n × 1 n \times 1 n×1基向量)

    Q \mathbf Q Q方阵时,这样以一组标准正交基作为列向量的矩阵称为正交矩阵 Orthogonal matrix
    正交矩阵满足 Q T Q = Q Q T = I \mathbf Q^T\mathbf Q=\mathbf Q\mathbf Q^T=\mathbf I QTQ=QQT=I Q − 1 = Q T \mathbf Q^{-1}=\mathbf Q^T Q1=QT

    正交矩阵举例

    • 置换矩阵 Q = [ 0 0 1 1 0 0 0 1 0 ] \boldsymbol{Q}=\left[
      001100010" role="presentation" style="position: relative;">001100010
      \right]
      Q= 010001100
    • Q = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] \boldsymbol{Q}=\left[
      cosθsinθsinθcosθ" role="presentation" style="position: relative;">cosθsinθsinθcosθ
      \right]
      Q=[cosθsinθsinθcosθ]
    • Q = 1 2 [ 1 1 1 − 1 ] \boldsymbol{Q}=\frac{1}{\sqrt 2}\left[
      1111" role="presentation" style="position: relative;">1111
      \right]
      Q=2 1[1111]
      ,其中 1 2 \frac{1}{\sqrt 2} 2 1是为了保证每个列向量长度都是 1 1 1
    • 阿达玛Hadamard矩阵 Q = 1 2 [ 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ] \boldsymbol{Q}=\frac{1}{2}\left[
      1111111111111111" role="presentation" style="position: relative;">1111111111111111
      \right]
      Q=21 1111111111111111
    • 三维空间中两个正交向量组成的矩阵,可以“补出”第三个基向量,得到正交矩阵
      Q = 1 2 [ 1 − 2 2 − 1 2 2 ] \boldsymbol{Q}=\frac{1}{2}\left[
      122122" role="presentation" style="position: relative;">122122
      \right]
      Q=21 122212
      变为 Q = 1 2 [ 1 − 2 2 2 − 1 − 2 2 2 1 ] \boldsymbol{Q}=\frac{1}{2}\left[
      122212221" role="presentation" style="position: relative;">122212221
      \right]
      Q=21 122212221

    标准正交基/正交矩阵的优势

    之前说过,如果想要将一个向量 b \boldsymbol b b投影到矩阵 A \mathbf A A的列空间内,做法是使用投影矩阵 P \mathbf P P
    将向量 b \boldsymbol b b投影到平面上得到的投影为 p = P b \boldsymbol p=\mathbf P\boldsymbol b p=Pb,其中投影矩阵 P = A ( A T A ) − 1 A T \mathbf P=\mathbf A(\mathbf A^T\mathbf A )^{-1}\mathbf A^T P=A(ATA)1AT

    对应这里,如果要将向量投影到正交矩阵 Q \mathbf Q Q的列空间内,对应的投影矩阵 P = Q ( Q T Q ) − 1 Q T = Q Q T = I \mathbf P=\mathbf Q(\mathbf Q^T\mathbf Q )^{-1}\mathbf Q^T=\mathbf Q\mathbf Q^T=\mathbf I P=Q(QTQ)1QT=QQT=I
    这表明:正交矩阵这个方阵,其列空间就是整个 R n \mathbf R^n Rn空间(投影后仍在原点)

    之前说过, A x = b \mathbf A \boldsymbol x=\boldsymbol b Ax=b无解时,转而求解 A T A x ^ = A T b \mathbf A^T\mathbf A \hat{\boldsymbol x}=\mathbf A^T\boldsymbol b ATAx^=ATb,该方程的解 x ~ \tilde{\boldsymbol x} x~会是“最优解”

    对于正交矩阵 Q \mathbf Q Q(或者列向量都为标准正交向量的非方阵 Q \mathbf Q Q),直接得到 Q T Q x ^ = x ^ = Q T b \mathbf Q^T\mathbf Q \hat{\boldsymbol x}=\hat{\boldsymbol x}=\mathbf Q^T\boldsymbol b QTQx^=x^=QTb

    采用矩阵的QR分解(后面会介绍,即从列向量线性无关的矩阵 A \mathbf A A施密特正交化,得到正交矩阵 Q \mathbf Q Q)来帮助求解 A x = b \mathbf A \boldsymbol x=\boldsymbol b Ax=b的问题,最大的优势是提高了数值的稳定性

    线性无关向量组的标准正交化:施密特正交化Gram-Schmidt

    已知一组线性无关的向量,希望用它们导出一组标准正交向量
    或者说,将满秩的矩阵,变为一个正交矩阵,
    方法是施密特正交化Gram-Schmidt

    例如,对于任意 R n \mathbf R^n Rn空间中的三个线性无关向量 a \boldsymbol a a b \boldsymbol b b c \boldsymbol c c,对应构造的正交的向量为 A \boldsymbol A A B \boldsymbol B B C \boldsymbol C C

    1. 对于 a \boldsymbol a a,我们就采用其本身,得到正交化的向量 A \boldsymbol A A
      对于 b \boldsymbol b b,我们只需要对 A \boldsymbol A A做投影 p \boldsymbol p p,然后取误差向量 e = b − p \boldsymbol e=\boldsymbol b-\boldsymbol p e=bp作为正交化的向量 B \boldsymbol B B
      (回忆之前的内容,求向量在另一向量上的投影,为 p = a T b a T a a \boldsymbol p=\frac{\boldsymbol {a}^{T} \boldsymbol {b}}{\boldsymbol {a}^{T} \boldsymbol {a}}\boldsymbol a p=aTaaTba
      因此, B = b − A T b A T A A \boldsymbol B=\boldsymbol b-\frac{\boldsymbol {A}^{T} \boldsymbol {b}}{\boldsymbol {A}^{T} \boldsymbol {A}}\boldsymbol A B=bATAATbA
      同理,对于第三个向量 c \boldsymbol c c也是“修剪掉”其“超出”已正交化的两个向量的那部分多余分量,得到
      C = c − A T c A T A A − B T c B T B B \boldsymbol C=\boldsymbol c-\frac{\boldsymbol {A}^{T} \boldsymbol {c}}{\boldsymbol {A}^{T} \boldsymbol {A}}\boldsymbol A-\frac{\boldsymbol {B}^{T} \boldsymbol {c}}{\boldsymbol {B}^{T} \boldsymbol {B}}\boldsymbol B C=cATAATcABTBBTcB
      在这里插入图片描述
    2. 最后,所有正交化的向量,除以其长度,进行“标准化”,得到一组标准正交向量
      q 1 = A ∥ A ∥ \boldsymbol q_1=\frac{\boldsymbol A}{\|\boldsymbol A\|} q1=AA, q 2 = B ∥ B ∥ \boldsymbol q_2=\frac{\boldsymbol B}{\|\boldsymbol B\|} q2=BB, q 3 = C ∥ C ∥ \boldsymbol q_3=\frac{\boldsymbol C}{\|\boldsymbol C\|} q3=CC

    QR分解

    在消元部分,学习了矩阵的LU分解得到 A = L U \mathbf{A=LU} A=LU

    列向量线性无关的矩阵 A \mathbf A A的施密特正交化,也可表示为 A = Q R \mathbf{A=QR} A=QR形式,并且 Q \mathbf Q Q必为上三角阵
    另外注意,正交化后列空间不变 C ( A ) = C ( Q ) C(\mathbf A)=C(\mathbf Q) C(A)=C(Q)(正交化只不过是调整了我们使用的“基向量”,使其正交)

    原理:
    若有 A = Q R \mathbf{A=QR} A=QR,则 R = Q − 1 A = Q T A \mathbf R=\mathbf Q^{-1}\mathbf A=\mathbf Q^{T}\mathbf A R=Q1A=QTA(因为 Q \mathbf Q Q为正交矩阵),由此我们得到了矩阵 R \mathbf R R

    矩阵 R \mathbf R R中的元素应该为 q 1 T a 1 \boldsymbol q_1^T\boldsymbol a_1 q1Ta1等,但由于这是向量点积,结果是一个数字,因此下面写作 a 1 T q 2 \boldsymbol a_1^T\boldsymbol q_2 a1Tq2也可以

    并且矩阵 R \mathbf R R必然为上三角阵:
    在这里插入图片描述
    其中,由于 a 1 \boldsymbol a_1 a1 q 2 \boldsymbol q_2 q2必然正交( q 2 \boldsymbol q_2 q2来自于 a 2 \boldsymbol a_2 a2的正交化),因此元素 a 1 T q 2 = 0 \boldsymbol a_1^T\boldsymbol q_2=0 a1Tq2=0

    理解:

    • 由于矩阵右乘对应于列的线性组合, A = Q R \mathbf{A=QR} A=QR可以视为:矩阵 R \mathbf R R对于正交矩阵 Q \mathbf Q Q的列向量做操作
    • Q \mathbf Q Q的列向量为一组标准正交基,用 R \mathbf R R中的元素对标准正交基加权组合,得到了另一组线性无关的向量,即 A \mathbf A A的列向量
      由此也能进一步理解为何 R \mathbf R R为上三角矩阵:这样保证了一组标准正交基经过线性组合后, A \mathbf A A不会出现线性相关的向量(每个向量仍然都贡献 / 张成一个新的维度)
  • 相关阅读:
    【Java 基础篇】Java 模块化详解
    Qt扫盲-QBrush理论使用总结
    微服务实战 06 分布式事务常见解决方案
    担心侵权?必备无版权素材网站分享,不用担心视频剪辑缺素材
    Java中的高级特性与最佳实践
    06:串口通信一
    Docker技术入门| Part03:Dockerfile详解(Dockerfile概念、Dockerfile 指令、使用Dockerfile构建镜像)
    Spring 中的 Bean
    ps打开找不到MSVCP140.dll重新安装方法,安装ps出现msvcp140.dll缺失解决方法
    Linux:CentOS7 开启路由转发
  • 原文地址:https://blog.csdn.net/Insomnia_X/article/details/126077005