线性代数之——正交矩阵和 Gram-Schmidt 正交化

本文探讨了正交矩阵的特性及其在向量长度保持和点积保留中的作用,介绍了如何利用Gram-Schmidt正交化过程创建正交向量,并详细解释了矩阵的QR分解方法,展示了这一分解在解决最小二乘问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1. 标准正交基

向量 q1,⋯ ,qnq_1, \cdots, q_nq1,,qn 是标准正交的,如果它们满足如下条件:

qiTqj={0,if i̸=j(正交向量)1,if i=j(单位向量)q_i^Tq_j = \begin{cases} 0,&\text{if } i \not = j \quad(正交向量)\\ 1, &\text{if } i = j \quad(单位向量) \end{cases}qiTqj={01if i̸=j()if i=j()

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

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

  • 旋转(Rotation)

旋转矩阵 QQQ 就是将任意向量逆时针旋转 θ\thetaθ,其逆矩阵 Q−1Q^{-1}Q1 就是将任意向量顺时针旋转 θ\thetaθ

  • 置换(Permutation)

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

  • 镜像(Reflection)

如果 uuu 是任意单位向量,那么 Q=I−2uuTQ = I-2uu^TQ=I2uuT 是一个正交矩阵。

Q2=QTQ=IQ^2=Q^TQ=IQ2=QTQ=I

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

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

Q1Q_1Q1 将任意向量 (x,y)(x, y)(x,y) 变为 (−x,y)(-x, y)(x,y)yyy 轴是镜像轴。Q2Q_2Q2 将任意向量 (x,y)(x, y)(x,y) 变为 (y,x)(y, x)(y,x)45°45°45° 轴是镜像轴。

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

∣∣Qx∣∣=∣∣x∣∣||Qx||=||x||Qx=x

∣∣Qx∣∣2=(Qx)T(Qx)=xTQTQx=xTIx=∣∣x∣∣2||Qx||^2 = (Qx)^T(Qx) = x^TQ^TQx = x^TIx=||x||^2Qx2=(Qx)T(Qx)=xTQTQx=xTIx=x2

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

(Qx)T(Qy)=xTQTQy=xTy(Qx)^T(Qy) = x^TQ^TQy = x^Ty(Qx)T(Qy)=xTQTQy=xTy

2. 正交矩阵的投影

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

ATAx^=ATb→x^=QTbA^TA\hat x=A^Tb \to \hat x=Q^TbATAx^=ATbx^=QTb

p=Ax^→p=Qx^=QQTbp=A\hat x \to p=Q\hat x = QQ^Tbp=Ax^p=Qx^=QQTb

P=A(ATA)−1AT→P=QQTP = A(A^TA)^{-1}A^T \to P = QQ^TP=A(ATA)1ATP=QQT

QQQ 为方阵的时候,子空间为整个空间,有 QT=Q−1Q^T=Q^{-1}QT=Q1x^=QTb\hat x = Q^Tbx^=QTb 就等同于 x=Q−1bx=Q^{-1}bx=Q1b,也就是有唯一解,bbb 的投影即为它本身。

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

3. Gram-Schmidt 正交化和 AAAQRQRQR 分解

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

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

B=b−ATbATAAB = b - \frac{A^Tb}{A^TA}AB=bATAATbA

接着,我们再用 ccc 减去其在 AAABBB 的投影,就得到我们要找的 CCC

C=c−ATcATAA−BTcBTBBC = c - \frac{A^Tc}{A^TA}A-\frac{B^Tc}{B^TB}BC=cATAATcABTBBTcB

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

可以看到,q1=a/∣∣a∣∣q_1=a/||a||q1=a/a,没有涉及到其它向量,aaaq1q_1q1AAA 都位于一条线上。第二步中 bbb 也只是 AAABBB 的线性组合,不涉及到后面的向量,a,ba,ba,bq1,q2q_1,q_2q1,q2A,BA,BA,B 都位于一个平面内。在每一个步骤中,a1,a2,⋯ ,aka_1, a_2, \cdots, a_ka1,a2,,ak 只是 q1,q2,⋯ ,qkq_1, q_2, \cdots, q_kq1,q2,,qk 的线性组合,后面的 qqq 没有涉及到。

联系 AAAQQQ 的矩阵 RRR 是上三角形矩阵,有 A=QRA=QRA=QR

任意 m×nm×nm×n 的矩阵 AAA,如果其列是不相关的,那么就可以分解成 QRQRQRQQQ 的列是标准正交的,而 RRR 是上三角矩阵并且对角线元素为正,为向量 ⋯B,C⋯\cdots B,C\cdotsB,C 的长度。

然后,最小二乘就变成了

ATAx^=ATb→RTQTQRx^=RTQTb→RTRx^=RTQTb→Rx^=QTb→x^=R−1QTbA^TA\hat x=A^Tb \to R^TQ^TQR\hat x=R^TQ^Tb \to R^TR\hat x=R^TQ^Tb \to R\hat x=Q^Tb \to \hat x = R^{-1}Q^TbATAx^=ATbRTQTQRx^=RTQTbRTRx^=RTQTbRx^=QTbx^=R1QTb

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值