zoukankan      html  css  js  c++  java
  • 线性代数之——正交矩阵和 Gram-Schmidt 正交化

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

    1. 标准正交基

    向量 (q_1, cdots, q_n) 是标准正交的,如果它们满足如下条件:

    [q_i^Tq_j = egin{cases} 0,& ext{if } i ot = j quad(正交向量)\ 1, & ext{if } i = j quad(单位向量) end{cases}]

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

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

    • 旋转(Rotation)

    旋转矩阵 (Q) 就是将任意向量逆时针旋转 ( heta),其逆矩阵 (Q^{-1}) 就是将任意向量顺时针旋转 ( heta)

    • 置换(Permutation)

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

    • 镜像(Reflection)

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

    [Q^2=Q^TQ=I ]

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

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

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

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

    [||Qx||=||x|| ]

    [||Qx||^2 = (Qx)^T(Qx) = x^TQ^TQx = x^TIx=||x||^2 ]

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

    [(Qx)^T(Qy) = x^TQ^TQy = x^Ty ]

    2. 正交矩阵的投影

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

    [A^TAhat x=A^Tb o hat x=Q^Tb ]

    [p=Ahat x o p=Qhat x = QQ^Tb ]

    [P = A(A^TA)^{-1}A^T o P = QQ^T ]

    (Q) 为方阵的时候,子空间为整个空间,有 (Q^T=Q^{-1})(hat x = Q^Tb) 就等同于 (x=Q^{-1}b),也就是有唯一解,(b) 的投影即为它本身。

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

    3. Gram-Schmidt 正交化和 (A)(QR) 分解

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

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

    [B = b - frac{A^Tb}{A^TA}A ]

    接着,我们再用 (c) 减去其在 (A)(B) 的投影,就得到我们要找的 (C)

    [C = c - frac{A^Tc}{A^TA}A-frac{B^Tc}{B^TB}B ]

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

    可以看到,(q_1=a/||a||),没有涉及到其它向量,(a)(q_1)(A) 都位于一条线上。第二步中 (b) 也只是 (A)(B) 的线性组合,不涉及到后面的向量,(a,b)(q_1,q_2)(A,B) 都位于一个平面内。在每一个步骤中,(a_1, a_2, cdots, a_k) 只是 (q_1, q_2, cdots, q_k) 的线性组合,后面的 (q) 没有涉及到。

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

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

    然后,最小二乘就变成了

    [A^TAhat x=A^Tb o R^TQ^TQRhat x=R^TQ^Tb o R^TRhat x=R^TQ^Tb o Rhat x=Q^Tb o hat x = R^{-1}Q^Tb ]

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

  • 相关阅读:
    解决:The content of element type "web-app" must match "(icon?display
    [转]实体类与数据库字段不匹配问题,java.sql.SQLSyntaxErrorException: Unknown column 'xxx' in 'field list'
    IDEA中导入其它由Maven管理的java web项目并运行,提示“Error:(3, 38) java: 程序包org.springframework.stereotype不存在”问题的解决
    动态规划题目汇总
    数组题目汇总
    c++11 push_back与emplace_back之间的区别
    字符串题目汇总
    链表题目汇总
    C++ stringstream与getline()
    二叉树题目汇总
  • 原文地址:https://www.cnblogs.com/seniusen/p/10023218.html
Copyright © 2011-2022 走看看