首先是正交向量组, 正交向量组是一组向量,任取两个向量都正交.
标准正交向量组则是一个正交向量组, 不过所有向量都是单位向量, 长度为 1 1 1.
设 q 1 , q 2 , . . . , q n q_1, q_2, ... , q_n q1,q2,...,qn两两正交, m ∗ n m*n m∗n维矩阵 Q Q Q的各列分别是 q 1 , q 2 , . . . , q n q_1, q_2, ... , q_n q1,q2,...,qn.
那么 Q T Q Q^TQ QTQ是对角矩阵, 对角线上的元素分别为 ∣ ∣ q 1 ∣ ∣ 2 , ∣ ∣ q 2 ∣ ∣ 2 , . . . , ∣ ∣ q n ∣ ∣ 2 ||q_1||^2, ||q_2||^2, ... ,||q_n||^2 ∣∣q1∣∣2,∣∣q2∣∣2,...,∣∣qn∣∣2. 因为2个正交向量的内积为零.
特别地, 如果 q 1 , q 2 , . . . , q n q_1, q_2, ... , q_n q1,q2,...,qn构成一个标准正交向量组, 那么 Q T Q = I Q^TQ=I QTQ=I.
对于这样的矩阵 Q Q Q, ∣ ∣ Q x ∣ ∣ = ∣ ∣ x ∣ ∣ ||Qx||=||x|| ∣∣Qx∣∣=∣∣x∣∣, 因为 ( Q x ) T ( Q x ) = x T Q T Q x = x T x (Qx)^T(Qx)=x^TQ^TQx=x^Tx (Qx)T(Qx)=xTQTQx=xTx, 也就是说, 向量左乘 Q Q Q不会对向量内积的大小做出改变.
更特别地, 如果 q 1 , q 2 , . . . , q n q_1, q_2, ... , q_n q1,q2,...,qn构成一个标准正交向量组, 且 q 1 , q 2 , . . . , q n q_1, q_2, ... , q_n q1,q2,...,qn是 n n n维向量, 也就是说 Q Q Q是 n n n维方阵, 那么 Q T = Q − 1 Q^T=Q^{-1} QT=Q−1, Q Q Q被称为正交矩阵.
显然 q 1 , q 2 , . . . , q n q_1, q_2, ... , q_n q1,q2,...,qn是线性无关的, 所以 Q Q Q满秩, 因而 Q Q Q有逆矩阵, 逆矩阵就是 Q T Q^T QT.
显然这是一个非常好的性质, 而旋转矩阵, 置换矩阵, 翻折矩阵都是正交矩阵.
如果 Q Q Q的各列是由标准正交向量组组成的, 那么对于 Q T Q x = Q T b Q^TQx=Q^Tb QTQx=QTb, 则有 x = Q T b x=Q^Tb x=QTb, x i = q i T b x_i=q_i^Tb xi=qiTb, q i x i = q i q i T b q_ix_i=q_iq_i^Tb qixi=qiqiTb就是 b b b在 q i q_i qi方向投影的分量. b b b到 Q Q Q上的投影矩阵 P = Q ( Q T Q ) − 1 Q T = Q Q T P=Q(Q^TQ)^{-1}Q^T=QQ^T P=Q(QTQ)−1QT=QQT, 若 Q Q Q是正交矩阵, P = Q Q T = Q Q − 1 = I P=QQ^T=QQ^{-1}=I P=QQT=QQ−1=I, b = ∑ i = 1 n q i ( q i T b ) b= \sum_{i=1}^n q_i(q_i^Tb) b=∑i=1nqi(qiTb), 也就是说, b b b可以由在各个基的一维投影表示出来, 这正是傅里叶级数用到的思想.
Gram-Schmidt正交化是把一个列满秩的矩阵 A A A转化为各列都是标准正交向量的矩阵 Q Q Q的过程, 同时不改变 A A A的列空间, 即 C ( A ) = C ( Q ) C(A)=C(Q) C(A)=C(Q)
Gram-Schmidt正交化的思想就是, 如果前 i − 1 i-1 i−1个列向量 a 1 , a 2 , . . . , a i − 1 a_1, a_2, ... , a_{i-1} a1,a2,...,ai−1已经正交化为 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1(还没有标准化), 对于第 i i i个列向量 a i a_i ai, 我们从 a i a_i ai中减去 a i a_i ai在 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1所张成空间的投影, 那么这样 a i a_i ai不就正交于 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1所张成空间, 也就正交于 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1了吗. 减去 a i a_i ai在 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1所张成空间上的投影, 只要分别减去 a i a_i ai在 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1上的投影就可以了.
我们知道, a i a_i ai在 q j q_j qj上的投影为 q j T a i q j T q q j \frac{q_j^Ta_i}{q_j^Tq}q_j qjTqqjTaiqj, 那么
q i = a i − ∑ j = 1 i − 1 q j T a i q j T q q j q_i=a_i-\sum_{j=1}^{i-1}\frac{q_j^Ta_i}{q_j^Tq}q_j qi=ai−∑j=1i−1qjTqqjTaiqj
还有两个问题, a 1 a_1 a1怎么办? 其实 a 1 a_1 a1什么也不用做, 只用标准化就可以了. 如果 a i a_i ai就在 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1张成的空间里怎么办? 那么会得到 q i = 0 q_i=0 qi=0, 所以我们做Gram-Schmidt正交化的前提是 A A A中各列线性无关. 最后不要忘记对求得的正交向量组做标准化.
像对 A A A做行初等变换可以表示为 A = L U A=LU A=LU一样, 对 A A A做标准正交化同样可以表示为 A = Q R A=QR A=QR, 为什么呢? C ( A ) = C ( Q ) C(A)=C(Q) C(A)=C(Q), 显然 Q Q Q的各列是其列空间的一组基, 那么 A A A的每个列向量显然可以表示为 Q Q Q中各列的线性组合.
R R R有什么性质? A = Q R A=QR A=QR两边同时左乘 Q T Q^T QT, 得到 R = Q T A R=Q^TA R=QTA, 也就是 R i j = q i T a j R_{ij}=q_i^Ta_j Rij=qiTaj.
q i q_i qi与 q 1 , q 2 , . . . , q i − 1 q_1, q_2, ..., q_{i-1} q1,q2,...,qi−1张成的空间正交, 也就是与 a 1 , a 2 , . . . , a i − 1 a_1, a_2, ..., a_{i-1} a1,a2,...,ai−1张成的空间正交(正交化不会改变列空间), 所以 i > j i>j i>j时, R i j = q i T a j = 0 R_{ij}=q_i^Ta_j=0 Rij=qiTaj=0, R R R是上三角矩阵.
也就是说, 任意一个列满秩的矩阵 A A A, 都可以表示为 A = Q R A=QR A=QR, 其中 Q Q Q是一个 m × n m \times n m×n维矩阵, 各列标准正交, R R R是 n × n n \times n n×n维上三角矩阵. 这正是矩阵的正交分解.
对于列满秩矩阵 A A A, A T A x = A T b A^TAx=A^Tb ATAx=ATb即 R T Q T Q R x = R T Q T b R^TQ^TQRx=R^TQ^Tb RTQTQRx=RTQTb即 R T R x = R T Q T b R^TRx=R^TQ^Tb RTRx=RTQTb即 R x = Q T b Rx=Q^Tb Rx=QTb即 x = R − 1 Q T b x=R^{-1}Q^Tb x=R−1QTb.