4.4 标准正交基和格拉姆-施密特正交化

本节的两个目标就是为什么怎么做(why and how)。首先是知道为什么正交性很好:因为它们的点积为零;ATAA^TAATA 是对角矩阵;在求 x^\boldsymbol{\hat x}x^p=Ax^\boldsymbol p=A\boldsymbol{\hat x}p=Ax^ 时也会很简单。第二个目的标是构建正交向量,通过格拉姆-施密特(Gram-Schmidt)正交化的方法选择原始基向量的组合生成直角。原始基向量就是 AAA 的列,它可能不是正交的。标准正交基向量将会是新矩阵 QQQ 的列。

一、标准正交矩阵 Q

一组基包含可张成空间的无关向量,这些基向量可能是以任意角度相交的(不能是 0°0°180°180°180°)。我们所看到的坐标轴,它们都是垂直的,而正交可以简化图形也能大大的减少计算。
一组向量 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,,qn,当它们的点积 qi⋅qj=0\boldsymbol q_i\cdot\boldsymbol q_j=0qiqj=0 时,它们的正交的。更确切的说应该是只要 i≠ji\neq ji=j 时,qiTqj=0\boldsymbol q_i^T\boldsymbol q_j=0qiTqj=0。更进一步,我们将每个向量除以它的长度,这组向量就变成了正交单位向量,它们的长度都为 111(标准),这组基就称为标准正交基(orthonormal)。

定义 \kern 5pt向量 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,,qn 标准正交,如果:qiTqj={0,i≠j(正交向量)1,i=j(单位向量:∣∣qi∣∣=1)\boldsymbol q_i^T\boldsymbol q_j=\left\{\begin{array}{l}0,\kern 10pti\neq j\kern 5pt(\pmb{正交}向量)\\1,\kern 10pti=j\kern 5pt(\pmb{单位}向量:||\boldsymbol q_i||=1)\end{array}\right.qiTqj={0,i=j(正交向量)1,i=j(单位向量:∣∣qi∣∣=1)标准正交列的矩阵用指定字母 QQQ 表示。

矩阵 QQQ 很容易处理,因为 QTQ=IQ^TQ=IQTQ=I。用矩阵语言来说就是列 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,,qn 是标准正交的,QQQ 不一定要是方阵。

有标准正交列的矩阵 QQQ 满足 QTQ=I\color{blue}{Q^TQ=I}QTQ=IQTQ=[−− q1T−−−− q2T−−⋮−− qnT−−][∣∣∣q1q2⋯qn∣∣∣]=[10⋯001⋯0⋮⋮⋱⋮00⋯1]=I(4.4.1){\color{blue}{Q^TQ}}=\begin{bmatrix}--\,\boldsymbol q_1^T--\\--\,\boldsymbol q_2^T--\\\vdots\\--\,\boldsymbol q^T_n--\end{bmatrix}\begin{bmatrix}|&|&&|\\\boldsymbol q_1&\boldsymbol q_2&\cdots&\boldsymbol q_n\\|&|&&|\end{bmatrix}=\begin{bmatrix}1&0&\cdots&0\\0&1&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1\end{bmatrix}={\color{blue}I}\kern 10pt(4.4.1)QTQ=q1Tq2TqnTq1q2qn=100010001=I(4.4.1)

QTQ^TQT 的第 iii 行乘 QQQ 的第 jjj 列,点积是 qiTqj\boldsymbol q_i^T\boldsymbol q_jqiTqj,非对角线(i≠ji\neq ji=j)上的元素因为正交性它们的点积都为零;对角线(i=ji=ji=j)上的元素是 111,因为单位向量有 qiTqi=∣∣qi∣∣2=1\boldsymbol q_i^T\boldsymbol q_i=||\boldsymbol q_i||^2=1qiTqi=∣∣qi2=1。通常 QQQ 是矩形(m>nm>nm>n),有时也有 m=nm=nm=n当 Q 是方阵时,QTQ=I 意味着 QT=Q−1:转置=逆\color{blue}当\,Q\,是方阵时,Q^TQ=I\,意味着\,Q^T=Q^{-1}:转置=逆Q是方阵时,QTQ=I意味着QT=Q1:转置=如果列仅仅是正交但不是单位矩阵,点积仍然得到对角矩阵(不是单位矩阵)。对角矩阵和单位矩阵 III 基本上一样,重要的是正交性 —— 单位化很简单。
重复:尽管 QQQ 是个矩形矩阵,仍然有 QTQ=IQ^TQ=IQTQ=I,这种情况下 QTQ^TQT 只是左逆矩阵。对于方阵来说,也有 QTQ=IQ^TQ=IQTQ=I,所以 QTQ^TQTQQQ 的双边逆矩阵。方阵 QQQ 的行像它的列一样都是正交的,此时逆矩阵就是转置矩阵。方阵的情况下我们称 QQQ正交矩阵。(只有当 QQQ 是方阵时我们才称为正交矩阵:orthogonal matrix。)
下面是正交矩阵的三个例子:旋转(rotation)、置换(permutation)和反射(reflection)。最快的检验方法就是检查 QTQ=IQ^TQ=IQTQ=I

例1】(旋转QQQ 将平面的任意向量旋转角度 θ\thetaθ

Q=[cos⁡θ−sin⁡θsin⁡θcos⁡θ]和QT=Q−1=[cos⁡θsin⁡θ−sin⁡θcos⁡θ]Q=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}\kern 5pt和\kern 5ptQ^T=Q^{-1}=\begin{bmatrix}\cos\theta&\sin\theta\\-\sin\theta&\cos\theta\end{bmatrix}Q=[cosθsinθsinθcosθ]QT=Q1=[cosθsinθsinθcosθ]

QQQ 的列是正交的(可以通过它们的点积进行验证),它们也是单位向量,因为 sin⁡2θ+cos⁡2θ=1\sin^2\theta+\cos^2\theta=1sin2θ+cos2θ=1。这些列是平面 R2\pmb{\textrm R}^2R2 的一组标准正交基
QQQ 将标准基向量 i\boldsymbol iij\boldsymbol jj 旋转 θ\thetaθ 角(如 Figure 4.10a);Q−1Q^{-1}Q1 将向量旋转 −θ-\thetaθ 角旋转回来,它与 QTQ^TQT 是一样的,因为 cos⁡(−θ)=cos⁡θ\cos(-\theta)=\cos\thetacos(θ)=cosθsin⁡(−θ)=−sin⁡θ\sin(-\theta)=-\sin\thetasin(θ)=sinθ。我们有 QTQ=IQ^TQ=IQTQ=IQQT=IQQ^T=IQQT=I

例2】(置换)这些矩阵改变将向量分量的顺序变为 (y,z,x)(y,z,x)(y,z,x)(y,x)(y,x)(y,x)[010001100][xyz]=[yzx],[0110][xy]=[yx]\begin{bmatrix}0&1&0\\0&0&1\\1&0&0\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}y\\z\\x\end{bmatrix},\kern 10pt\begin{bmatrix}0&1\\1&0\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}y\\x\end{bmatrix}001100010xyz=yzx[0110][xy]=[yx]QQQ 的每一列的都是单位向量(它们的长度很明显都是 111),且都是正交的(111 是在不同的位置)。置换矩阵的逆矩阵就是它的转置:Q−1=QTQ^{-1}=Q^TQ1=QT。逆矩阵将向量的分量又变回原先的顺序:逆=转置:[001100010][yzx]=[xyz],[0110][yx]=[xy]\pmb{逆=转置}:\kern 10pt\begin{bmatrix}0&0&1\\1&0&0\\0&1&0\end{bmatrix}\begin{bmatrix}y\\z\\x\end{bmatrix}=\begin{bmatrix}x\\y\\z\end{bmatrix},\kern 5pt\begin{bmatrix}0&1\\1&0\end{bmatrix}\begin{bmatrix}y\\x\end{bmatrix}=\begin{bmatrix}x\\y\end{bmatrix}=转置010001100yzx=xyz[0110][yx]=[xy]

每个置换矩阵都是一个正交矩阵

例3】(反射)如果 u\boldsymbol uu 是任意的单位向量,令 Q=I−2uuTQ=I-2\boldsymbol {uu}^TQ=I2uuT。注意 uuT\boldsymbol{uu}^TuuT 是一个矩阵,而 uTu\boldsymbol u^T\boldsymbol uuTu 是一个数字,且 ∣∣u∣∣2=1||\boldsymbol u||^2=1∣∣u2=1。则 QTQ^TQTQ−1Q^{-1}Q1 都等于 QQQQT=I−2uuT=Q且QTQ=I−4uuT+4uuTuuT=I(4.4.2){\color{blue}Q^T=I-2\boldsymbol{uu}^T=Q}\kern 5pt且\kern 5ptQ^TQ=I-4\boldsymbol{uu}^T+4\boldsymbol{uu}^T\boldsymbol{uu}^T=I\kern 10pt(4.4.2)QT=I2uuT=QQTQ=I4uuT+4uuTuuT=I(4.4.2)反射矩阵 I−2uuTI-2\boldsymbol{uu}^TI2uuT 是对称且正交的矩阵,将它平方可以得到单位矩阵:Q2=QTQ=IQ^2=Q^TQ=IQ2=QTQ=I。通过镜子反射两次会回到原始状态,就像 (−1)2=1(-1)^2=1(1)2=1。注意方程(4.4.2) 4uuTuuT4\boldsymbol{uu}^T\boldsymbol{uu}^T4uuTuuT 中的 uTu=1\boldsymbol u^T\boldsymbol u=1uTu=1

在这里插入图片描述
图中选择的方向是 u=(−12,12)\boldsymbol u=(\displaystyle-\frac{1}{\sqrt2},\frac{1}{\sqrt2})u=(21,21)。计算 2uuT2\boldsymbol{uu}^T2uuT(列乘行)然后将其从 III 中减去就可以得到在方向 u\boldsymbol uu 的反射矩阵 QQQ反射:Q=I−2[1/2−1/2−1/21/2]=[0110],[0110][xy]=[yx]\pmb{反射}:Q=I-2\begin{bmatrix}1/2&-1/{2}\\-1/2&1/2\end{bmatrix}=\begin{bmatrix}0&1\\1&0\end{bmatrix},\begin{bmatrix}0&1\\1&0\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}y\\x\end{bmatrix}反射Q=I2[1/21/21/21/2]=[0110][0110][xy]=[yx]它会使得 (x,y)(x,y)(x,y) 变为 (y,x)(y,x)(y,x),但是像 (3,3)(3,3)(3,3) 这样的向量不会改变,这是因为它就在反射线上。
旋转会保留每个向量的长度,反射和置换也一样。任何正交矩阵 QQQ 乘上向量 —— 向量的长度和角度不会改变。(此处角度指的是相对角度,例如 v\boldsymbol vvw\boldsymbol ww。)
证明: ∣∣Qx∣∣2=∣∣x∣∣2||Q\boldsymbol x||^2=||\boldsymbol x||^2∣∣Qx2=∣∣x2,因为 (Qx)T(Qx)=xTQTQx=xTIx=xTx(Q\boldsymbol x)^T(Q\boldsymbol x)=\boldsymbol x^TQ^TQ\boldsymbol x=\boldsymbol x^TI\boldsymbol x=\boldsymbol x^T\boldsymbol x(Qx)T(Qx)=xTQTQx=xTIx=xTx

如果 QQQ 有标准正交列 QTQ=IQ^TQ=IQTQ=I,那么它会保持长度不变:Qx 和 x 有相同的长度对任意的向量 x 有:∣∣Qx∣∣=∣∣x∣∣(4.4.3)Q\boldsymbol x\,和\,\boldsymbol x\,有相同的长度\kern 10pt{\color{blue}对任意的向量\,\boldsymbol x\,有:||Q\boldsymbol x||=||\boldsymbol x||}\kern 15pt(4.4.3)Qxx有相同的长度对任意的向量x有:∣∣Qx∣∣=∣∣x∣∣(4.4.3)QQQ 也会维持点积不变:(Qx)T(Qy)=xTQTQy=xTy{\color{blue}(Q\boldsymbol x)^T(Q\boldsymbol y)=\boldsymbol x^TQ^TQ\boldsymbol y=\boldsymbol x^T\boldsymbol y}(Qx)T(Qy)=xTQTQy=xTy。仅使用了 QTQ=IQ^TQ=IQTQ=I

二、使用标准正交基投影:Q 代替 A

正交矩阵非常适合计算 —— 当向量长度固定时,数字的变化不会太大,稳定的计算机代码尽可能的使用 QQQ
投影到一个子空间的所有公式都和 ATAA^TAATA 有关,ATAA^TAATA 的元素是基向量 a1,a2,⋯ ,an\boldsymbol a_1,\boldsymbol a_2,\cdots,\boldsymbol a_na1,a2,,an 的点积 aiTaj\boldsymbol a^T_i\boldsymbol a_jaiTaj
假设基向量是标准正交的,向量 a\boldsymbol aa 将变为 q\boldsymbol qq,则 ATAA^TAATA 可以简化为 QTQ=IQ^TQ=IQTQ=I。看看改善后的 x^\boldsymbol{\hat x}x^p\boldsymbol ppPPP。下面使用空行来替代 QTQQ^TQQTQ,它是一个单位矩阵:__x^=QTb,p=Qx^,P=Q__QT(4.4.4)\_\_\boldsymbol{\hat x}=Q^T\boldsymbol b,\kern 10pt\boldsymbol p=Q\boldsymbol{\hat x},\kern 10ptP=Q\_\_Q^T\kern 15pt(4.4.4)__x^=QTbp=Qx^P=Q__QT(4.4.4)Qx=b 的最小二乘解是 x^=QTb。投影矩阵是 QQT。\color{blue}Q\boldsymbol x=\boldsymbol b\,的最小二乘解是\,\boldsymbol{\hat x}=Q^T\boldsymbol b。投影矩阵是\,QQ^T。Qx=b的最小二乘解是x^=QTb。投影矩阵是QQT这里不需要求矩阵的逆,这是标准正交基的关键所在。最优的 x^=QTb\boldsymbol{\hat x}=Q^T\boldsymbol bx^=QTb 只有 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,,qnb\boldsymbol bb 的点积,我们有一维的投影!“耦合矩阵(coupling matrix)” 或 “关联矩阵(correlation matrix)” ATAA^TAATA 现在是 QTQ=IQ^TQ=IQTQ=I,不存在耦合了。当 AAAQQQ 时,因为有标准正交列,则此时 p=Qx^=QQTb\boldsymbol p=Q\boldsymbol{\hat x}=QQ^T\boldsymbol bp=Qx^=QQTb

在 q′s的投影p=[∣∣∣q1q2⋯qn∣∣∣][q1Tbq2Tb⋮qnTb]=q1(q1Tb)+q2(q2Tb)+⋯+qn(qnTb)(4.4.5)在\,\boldsymbol q's 的投影\kern 20pt{\color{blue}\boldsymbol p}=\begin{bmatrix}|&|&&|\\\boldsymbol q_1&\boldsymbol q_2&\cdots&\boldsymbol q_n\\|&|&&|\end{bmatrix}\begin{bmatrix}\boldsymbol q_1^T\boldsymbol b\\\boldsymbol q_2^T\boldsymbol b\\\vdots\\\boldsymbol q^T_n\boldsymbol b\end{bmatrix}={\color{blue}\boldsymbol q_1(\boldsymbol q_1^T\boldsymbol b)+\boldsymbol q_2(\boldsymbol q^T_2\boldsymbol b)+\cdots+\boldsymbol q_n(\boldsymbol q^T_n\boldsymbol b)}\kern 15pt(4.4.5)qs的投影p=q1q2qnq1Tbq2TbqnTb=q1(q1Tb)+q2(q2Tb)++qn(qnTb)(4.4.5)

重要情况:QQQ 是方阵 m=nm=nm=n 时,子空间是整个空间,则因为 QT=Q−1Q^T=Q^{-1}QT=Q1,所以 x^=QTb\boldsymbol{\hat x}=Q^T\boldsymbol bx^=QTb 就与 x=Q−1b\boldsymbol x=Q^{-1}\boldsymbol bx=Q1b 是一样的,这个解是确切的唯一解!b\boldsymbol bb 在整个空间的投影就是 b\boldsymbol bb 自己。这种情况下,p=b\boldsymbol p=\boldsymbol bp=bP=QQT=IP=QQ^T=IP=QQT=I
你可能会认为在整个空间的投影不值一提,但是当 p=b\boldsymbol p=\boldsymbol bp=b 时,我们的公式可以将 b\boldsymbol bb 从它的一维投影中聚集起来。如果 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,,qn 是整个空间的标准正交基,那么 QQQ 是一个方阵,任意 b=QQTb\boldsymbol b=QQ^T\boldsymbol bb=QQTb 都是它沿着 q′s\boldsymbol q'sqs 的分量的和:

b=q1(q1Tb)+q2(q2Tb)+⋯+qn(qnTb)(4.4.6)\boldsymbol b=\boldsymbol q_1(\boldsymbol q^T_1\boldsymbol b)+\boldsymbol q_2(\boldsymbol q^T_2\boldsymbol b)+\cdots+\boldsymbol q_n(\boldsymbol q^T_n\boldsymbol b)\kern 25pt(4.4.6)b=q1(q1Tb)+q2(q2Tb)++qn(qnTb)(4.4.6)

变换: QQT=IQQ^T=IQQT=I 是傅里叶级数的基础,也是其他所有应用数学中伟大 “变换” 的基础。它将 b\boldsymbol bb 或函数 f(x)f(x)f(x) 分解成垂直的片段,然后用 (4.4.6)(4.4.6)(4.4.6) 将它们加起来,逆变换可以将 b\boldsymbol bbf(x)f(x)f(x) 恢复。

例4】正交矩阵 QQQ 的列是标准正交向量 q1,q2,q3\boldsymbol q_1,\boldsymbol q_2,\boldsymbol q_3q1,q2,q3m=n=3Q=13[−1222−1222−1]有QTQ=QQT=Im=n=3\kern 15ptQ=\frac{1}{3}\begin{bmatrix}-1&\kern 7pt2&\kern 7pt2\\\kern 7pt2&-1&\kern 7pt2\\\kern 7pt2&\kern 7pt2&-1\end{bmatrix}有\kern 5ptQ^TQ=QQ^T=Im=n=3Q=31122212221QTQ=QQT=Ib=(0,0,1)\boldsymbol b=(0,0,1)b=(0,0,1)q1,q2,q3\boldsymbol q_1,\boldsymbol q_2,\boldsymbol q_3q1,q2,q3 上的投影分别是 p1,p2,p3\boldsymbol p_1,\boldsymbol p_2,\boldsymbol p_3p1,p2,p3q1(q1Tb)=23q1,q2(q2Tb)=23q2,q3(q3Tb)=−13q3\boldsymbol q_1(\boldsymbol q_1^T\boldsymbol b)=\frac{2}{3}\boldsymbol q_1,\kern 5pt\boldsymbol q_2(\boldsymbol q^T_2\boldsymbol b)=\frac{2}{3}\boldsymbol q_2,\kern 5pt\boldsymbol q_3(\boldsymbol q_3^T\boldsymbol b)=-\frac{1}{3}\boldsymbol q_3q1(q1Tb)=32q1,q2(q2Tb)=32q2,q3(q3Tb)=31q3前两项的和是 b\boldsymbol bbq1\boldsymbol q_1q1q2\boldsymbol q_2q2 平面上的投影,所有项的和是 b\boldsymbol bb 在整个空间的投影 —— p1+p2+p3=b\boldsymbol p_1+\boldsymbol p_2+\boldsymbol p_3=\boldsymbol bp1+p2+p3=b 就是它本身:重构 bb=p1+p2+p323q1+23q2−13q3=19[−2+4−24−2−24+4+1]=[001]=b\begin{array}{l}重构\,\boldsymbol b\\\boldsymbol b=\boldsymbol p_1+\boldsymbol p_2+\boldsymbol p_3\end{array}\kern 10pt\frac{2}{3}\boldsymbol q_1+\frac{2}{3}\boldsymbol q_2-\frac{1}{3}\boldsymbol q_3=\frac{1}{9}\begin{bmatrix}-2+4-2\\4-2-2\\4+4+1\end{bmatrix}=\begin{bmatrix}0\\0\\1\end{bmatrix}=\boldsymbol b重构bb=p1+p2+p332q1+32q231q3=912+424224+4+1=001=b

三、格拉姆-施密特正交化步骤

投影与最小二乘都含有 ATAA^TAATA,当这个矩阵是 QTQ=IQ^TQ=IQTQ=I 时,我们也就不需要再求逆矩阵了,一维的投影不是耦合的,最优的 x^\boldsymbol{\hat x}x^ 就是 QTbQ^T\boldsymbol bQTb(就是 nnn 个分开的点积)。为了实现这个目标,我们需要向量是 “标准正交向量”。下面介绍格拉姆-施密特方法创造标准正交向量
我们从三个无关的向量 a,b,c\boldsymbol a,\boldsymbol b,\boldsymbol ca,b,c 开始,我们的目的是创造三个正交向量 A,B,C\boldsymbol A,\boldsymbol B,\boldsymbol CA,B,C,然后我们分别除以它们自己的长度(通常最后做比较容易)以单位化。这样就可以得到三个标准正交向量 q1=A∣∣A∣∣,q2=B∣∣B∣∣,q3=C∣∣C∣∣\boldsymbol q_1=\displaystyle\frac{\boldsymbol A}{||\boldsymbol A||},\boldsymbol q_2=\frac{\boldsymbol B}{||\boldsymbol B||},\boldsymbol q_3=\frac{\boldsymbol C}{||\boldsymbol C||}q1=∣∣A∣∣Aq2=∣∣B∣∣Bq3=∣∣C∣∣C
格拉姆-施密特: 首先让 A=a\boldsymbol A=\boldsymbol aA=a,第一个就选择第一个方向,第二个方向 B\boldsymbol BB 要与 A\boldsymbol AA 垂直。b\boldsymbol bb 减去它在 A\boldsymbol AA 方向上的投影,会保留垂直的部分,这部分就是正交向量 B\boldsymbol BB格拉姆−施密特第一步B=b−ATbATAA(4.4.7)\pmb{格拉姆-施密特第一步}\kern 15pt{\color{blue}\boldsymbol B=\boldsymbol b-\frac{\boldsymbol A^T\boldsymbol b}{\boldsymbol A^T\boldsymbol A}\boldsymbol A}\kern 20pt(4.4.7)格拉姆施密特第一步B=bATAATbA(4.4.7)如 Figure 4.11,A\boldsymbol AAB\boldsymbol BB 是正交的,方程(4.4.7)左乘 AT\boldsymbol A^TAT 可以验证 ATB=ATb−ATb=0\boldsymbol A^T\boldsymbol B=\boldsymbol A^T\boldsymbol b-\boldsymbol A^T\boldsymbol b=0ATB=ATbATb=0。向量 B\boldsymbol BB 就是我们称之为误差向量的 e\boldsymbol ee,它垂直于 A\boldsymbol AA。注意方程(4.4.7)中的 B\boldsymbol BB 不为零(否则 a\boldsymbol aab\boldsymbol bb 就是相关的了)。A\boldsymbol AAb\boldsymbol bb 的方向现在定好了。
第三个方向从 c\boldsymbol cc 开始,它不是 A\boldsymbol AAB\boldsymbol BB 的组合(因为 c\boldsymbol cc 不是 a\boldsymbol aab\boldsymbol bb 的组合)。大多数情况下 c\boldsymbol cc 不会和 A\boldsymbol AAB\boldsymbol BB 垂直的,所以 c\boldsymbol cc 减去它在两个方向上的分量就可以得到垂直的方向 C\boldsymbol CC格拉姆−施密特的下一步C=c−ATcATAA−BTcBTBB(4.4.8)\pmb{格拉姆-施密特的下一步}\kern 15pt{\color{blue}\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}\kern 15pt(4.4.8)格拉姆施密特的下一步C=cATAATcABTBBTcB(4.4.8)这个就是格拉姆-施密特方法的思路。从每个新向量中减去它在已经定好的方向的投影。这个思想在每个步骤中都重复使用。如果我们有第四个向量 d\boldsymbol dd,我们要让它减去它在 A,B,C\boldsymbol A,\boldsymbol B,\boldsymbol CA,B,C 这三个方向上的投影得到 D\boldsymbol DD

在这里插入图片描述
最后,或者是在得道每项以后,将这些正交向量 A,B,C,D\boldsymbol A,\boldsymbol B,\boldsymbol C,\boldsymbol DA,B,C,D 分别除以它们的长度。最终得到的就是标准正交向量 q1,q2,q3,q4\boldsymbol q_1,\boldsymbol q_2,\boldsymbol q_3,\boldsymbol q_4q1,q2,q3,q4
格拉姆-施密特的例题:假设有 333 个无关的非正交向量 a,b,c\boldsymbol a,\boldsymbol b,\boldsymbol ca,b,c 是:a=[1−10],b=[20−2],c=[3−33]\boldsymbol a=\begin{bmatrix}\kern 7pt\pmb1\\\pmb{-1}\\\kern 7pt\pmb0\end{bmatrix},\kern 5pt\boldsymbol b=\begin{bmatrix}\kern 7pt2\\\kern 7pt0\\-2\end{bmatrix},\kern 5pt\boldsymbol c=\begin{bmatrix}\kern 7pt3\\-3\\\kern 7pt3\end{bmatrix}a=110,b=202,c=333A=a\boldsymbol A=\boldsymbol aA=aATA=2\boldsymbol A^T\boldsymbol A=2ATA=2ATb=2\boldsymbol A^T\boldsymbol b=2ATb=2b\boldsymbol bb 减去它在 A\boldsymbol AA 上的投影 p\boldsymbol pp第一步B=b−ATbATAA=b−22A=[11−2]\pmb{第一步}\kern 20pt\boldsymbol B=\boldsymbol b-\frac{\boldsymbol A^T\boldsymbol b}{\boldsymbol A^T\boldsymbol A}\boldsymbol A=\boldsymbol b-\frac{2}{2}\boldsymbol A=\begin{bmatrix}\kern 7pt\pmb1\\\kern 7pt\pmb1\\\pmb{-2}\end{bmatrix}第一步B=bATAATbA=b22A=112检验:ATB=0\boldsymbol A^T\boldsymbol B=0ATB=0 符合要求。下面用 c\boldsymbol cc 减去它在 A\boldsymbol AAB\boldsymbol BB 方向上的投影得到 C\boldsymbol CC下一步C=c−ATcATAA−BTcBTBB=c−62A+66B=[111]\pmb{下一步}\kern 20pt\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=\boldsymbol c-\frac{6}{2}\boldsymbol A+\frac{6}{6}\boldsymbol B=\begin{bmatrix}\pmb1\\\pmb1\\\pmb1\end{bmatrix}下一步C=cATAATcABTBBTcB=c26A+66B=111 检验:C=(1,1,1)\boldsymbol C=(1,1,1)C=(1,1,1)A\boldsymbol AAB\boldsymbol BB 都垂直。最后,将 A,B,C\boldsymbol A,\boldsymbol B,\boldsymbol CA,B,C 都转化为单位向量(长度为 111 的标准正交向量)。A,B,C\boldsymbol A,\boldsymbol B,\boldsymbol CA,B,C 的长度分别为 2,6\sqrt2,\sqrt62,63\sqrt33,分别除以它们的长度的单一组标准正交基:q1=12[1−10],q2=16[11−2],q3=13[111]\boldsymbol q_1=\frac{1}{\sqrt2}\begin{bmatrix}\kern 7pt1\\-1\\\kern 7pt0\end{bmatrix},\boldsymbol q_2=\frac{1}{\sqrt6}\begin{bmatrix}\kern 7pt1\\\kern 7pt1\\-2\end{bmatrix},\boldsymbol q_3=\frac{1}{\sqrt3}\begin{bmatrix}1\\1\\1\end{bmatrix}q1=21110q2=61112q3=31111通常 A,B,C\boldsymbol A,\boldsymbol B,\boldsymbol CA,B,C 都含有分数,大部分的 q1,q2,q3\boldsymbol q_1,\boldsymbol q_2,\boldsymbol q_3q1,q2,q3 都会有平方根。

四、A = QR 分解

我们从矩阵 AAA 开始,它的列是 a,b,c\boldsymbol a,\boldsymbol b,\boldsymbol ca,b,c;以矩阵 QQQ 结束,QQQ 的列是 q1,q2,q3\boldsymbol q_1,\boldsymbol q_2,\boldsymbol q_3q1,q2,q3。那么这些矩阵有什么关系呢?因为向量 a,b,c\boldsymbol a,\boldsymbol b,\boldsymbol ca,b,cq′s\boldsymbol q'sqs 的组合(反之也是),那么肯定会有一个矩阵将 AAAQQQ 联系起来,这个矩阵就是 A=QRA=QRA=QR 中的三角矩阵 RRR
第一步是 q1=a∣∣a∣∣\boldsymbol q_1=\displaystyle\frac{\boldsymbol a}{||\boldsymbol a||}q1=∣∣a∣∣a(没有其它向量参与),第二步就是方程(4.4.7),b\boldsymbol bbA\boldsymbol AAB\boldsymbol BB 的组合,在这一步 C\boldsymbol CCq3\boldsymbol q_3q3 没有参与。后面的向量不参与前面的运算是格拉姆-施密特的关键点:

  • 向量 a\boldsymbol aaA\boldsymbol AAq1\boldsymbol q_1q1 都沿着同一条直线。
  • 向量 a,b\boldsymbol a,\boldsymbol ba,bA,B\boldsymbol A,\boldsymbol BA,Bq1,q2\boldsymbol q_1,\boldsymbol q_2q1,q2 都在同一平面。
  • 向量 a,b,c\boldsymbol a,\boldsymbol b,\boldsymbol ca,b,cA,B,C\boldsymbol A,\boldsymbol B,\boldsymbol CA,B,Cq1,q2,q3\boldsymbol q_1,\boldsymbol q_2,\boldsymbol q_3q1,q2,q3 都在同一个子空间(333 维的)。

每一步 a1,a2,⋯ ,ak\boldsymbol a_1,\boldsymbol a_2,\cdots,\boldsymbol a_ka1,a2,,akq1,q2,⋯ ,qk\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_kq1,q2,,qk 的组合,后面的 q′s\boldsymbol q'sqs 都没有参与。这里的关联矩阵 RRR 是三角矩阵,有 A=QRA=QRA=QR

[abc ]=[q1q2q3 ][q1Taq1Tbq1Tcq2Tbq2Tcq3Tc]或A=QR(4.4.9)\begin{bmatrix}\\\boldsymbol a&\boldsymbol b&\boldsymbol c\\\,\end{bmatrix}=\begin{bmatrix}\\\boldsymbol q_1&\boldsymbol q_2&\boldsymbol q_3\\\,\end{bmatrix}\begin{bmatrix}\boldsymbol q_1^T\boldsymbol a&\boldsymbol q_1^T\boldsymbol b&\boldsymbol q_1^T\boldsymbol c\\&\boldsymbol q_2^T\boldsymbol b&\boldsymbol q_2^T\boldsymbol c\\&&\boldsymbol q_3^T\boldsymbol c\end{bmatrix}或\kern 5pt{\color{blue}A=QR}\kern 16pt(4.4.9)abc=q1q2q3q1Taq1Tbq2Tbq1Tcq2Tcq3TcA=QR(4.4.9)

A=QRA=QRA=QR 是格拉姆-施密特的概括,上式左乘 QTQ^TQT 得到 R=QTAR=Q^TAR=QTA.

(格拉姆-施密特) 从无关的向量 a1,a2,⋯ ,an\boldsymbol a_1,\boldsymbol a_2,\cdots,\boldsymbol a_na1,a2,,an 开始,格拉姆-施密特构造标准正交向量 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,,qn。这些列构成的矩阵满足 A=QRA=QRA=QR,则 R=QTAR=Q^TAR=QTA 是上三角矩阵,因为后面的 q′s\boldsymbol q'sqs 与前面的 a′s\boldsymbol a'sas 正交。

下面的例子就是原始的向量 a′s\boldsymbol a'sas 和最终的向量 q′s\boldsymbol q'sqsR=QTAR=Q^TAR=QTAi,ji,ji,j 元素是 QTQ^TQT 的第 iii 行乘 AAA 的第 jjj 列,RRR 中的元素是点积 qiTaj\boldsymbol q_i^T\boldsymbol a_jqiTaj,有 A=QRA=QRA=QRA=[123−10−30−23]=[1/21/61/3−1/21/61/30−2/61/3][221806−6003]=QRA=\begin{bmatrix}\kern 7pt1&\kern 7pt2&\kern 7pt3\\-1&\kern 7pt0&-3\\\kern 7pt0&-2&\kern 7pt3\end{bmatrix}=\begin{bmatrix}\kern 7pt1/\sqrt2&\kern 7pt1/\sqrt6&1/\sqrt3\\-1/\sqrt2&\kern 7pt1/\sqrt6&1/\sqrt3\\0&-2/\sqrt6&1/\sqrt3\end{bmatrix}\begin{bmatrix}\pmb{\sqrt2}&\sqrt2&\kern 7pt\sqrt{18}\\\pmb0&\pmb{\sqrt6}&-\sqrt6\\\pmb0&\pmb0&\kern 7pt\pmb{\sqrt3}\end{bmatrix}=QRA=110202333=1/21/201/61/62/61/31/31/32002601863=QR仔细看一下 QQQRRRRRR 的对角线元素 2,6,3\sqrt2,\sqrt6,\sqrt32,6,3A,B,C\boldsymbol A,\boldsymbol B,\boldsymbol CA,B,C 的长度,QQQ 的列是标准正交的。由于存在平方根,QRQRQR 可能看起来比 LULULU 要难些,但是这两种分解都是线性代数计算的绝对中心。
任意的有线性无关列的 m×nm\times nm×n 矩阵都可以分解成 A=QRA=QRA=QRm×nm\times nm×n 的矩阵 QQQ 有标准正交列,方阵 RRR 是上三角矩阵,它的对角线都是正的。我们需要记住为什么这对最小二乘很有用:ATA=(QR)TQR=RTQTQR=RTRA^TA=(QR)^TQR=R^TQ^TQR=R^TRATA=(QR)TQR=RTQTQR=RTR。最小二乘方程 ATAx^=ATbA^TA\boldsymbol{\hat x}=A^T\boldsymbol bATAx^=ATb 可以简化为 RTRx^=RTQTbR^TR\boldsymbol{\hat x}=R^TQ^T\boldsymbol bRTRx^=RTQTb,最终得到 Rx^=QTbR\boldsymbol{\hat x}=Q^T\boldsymbol bRx^=QTb:这很好。

最小二乘RTRx^=RTQTb或Rx^=QTb或x^=R−1QTb(4.4.10)\pmb{最小二乘}\kern 20ptR^TR\boldsymbol{\hat x}=R^TQ^T\boldsymbol b\kern 5pt或\kern 5ptR\boldsymbol{\hat x}=Q^T\boldsymbol b\kern 5pt或\kern5pt{\color{blue}\boldsymbol{\hat x}=R^{-1}Q^T\boldsymbol b}\kern 15pt(4.4.10)最小二乘RTRx^=RTQTbRx^=QTbx^=R1QTb(4.4.10)

我们不求解 Ax=bA\boldsymbol x=\boldsymbol bAx=b,这个是不可能的,我们通过回代求解 Rx^=QTbR\boldsymbol{\hat x}=Q^T\boldsymbol bRx^=QTb —— 这个很快。格拉姆-施密特程序的实际计算成本是 mn2mn^2mn2 次乘法,我们需要构造正交矩阵 QQQ 和上三角矩阵 RRR 得到 A=QRA=QRA=QR
下面是修正格拉姆-施密特的 MATLAB 代码,它从 j=1,j=2j=1,j=2j=1,j=2, 一直到 j=nj=nj=n 执行方程 (4.4.11)。重要的是第 4−54-545 行,从 v=aj\boldsymbol v=\boldsymbol a_jv=aj 减去它在每个 qi\boldsymbol q_iqi 方向上的投影,这里 i<ji<ji<j。最后一行代码是标准化向量 v\boldsymbol vv(除以 rii=∣∣v∣∣r_{ii}=||\boldsymbol v||rii=∣∣v∣∣)得到单位向量 qj\boldsymbol q_jqjrkj=∑i=1mqikvijvij=vij−qikrkjrjj=(∑i=1mvij2)1/2qij=vijrjj(4.4.11)\begin{array}{l}r_{kj}=\displaystyle\sum^m_{i=1}q_{ik}v_{ij}\\v_{ij}=v_{ij}-q_{ik}r_{kj}\\r_{jj}=(\displaystyle\sum_{i=1}^mv^2_{ij})^{1/2}\\q_{ij}=\displaystyle\frac{v_{ij}}{r_{jj}}\end{array}\kern 25pt(4.4.11)rkj=i=1mqikvijvij=vijqikrkjrjj=(i=1mvij2)1/2qij=rjjvij(4.4.11)rkjr_{kj}rkj 就是 A=QRA=QRA=QR 分解中 QQQ 的第 (k,j)(k,j)(k,j)元素,就是 qkTaj\boldsymbol q_k^T\boldsymbol a_jqkTajvij−qikrkjv_{ij} -q_{ik}r_{kj}vijqikrkj 是每次减去在 qkq_{k}qk 上的投影,kkk111j−1j-1j1
a,b,c\boldsymbol a,\boldsymbol b,\boldsymbol ca,b,c 开始,这段代码会构造出 q1\boldsymbol q_1q1,然后是 B,q2\boldsymbol B, \boldsymbol q_2B,q2,再然后是 C,q3\boldsymbol C,\boldsymbol q_3C,q3q1=a1/∣∣a1∣∣B=a2−(q1Ta2)q1q2=B/∣∣B∣∣C∗=a3−(q1Ta3)q1C=C∗−(q2TC∗)q2q3=C/∣∣C∣∣\begin{array}{ll}\boldsymbol q_1=\boldsymbol a_1/||\boldsymbol a_1||&\boldsymbol B=\boldsymbol a_2-(\boldsymbol q_1^T\boldsymbol a_2)\boldsymbol q_1&\boldsymbol q_2=\boldsymbol B/||\boldsymbol B||\\\boldsymbol{C^*} = \boldsymbol a_3-(\boldsymbol q_1^T\boldsymbol a_3)\boldsymbol q_1&\boldsymbol C=\boldsymbol {C^*}-(\boldsymbol q_2^T\boldsymbol{C^*})\boldsymbol q_2&\boldsymbol q_3=\boldsymbol C/||\boldsymbol C||\end{array}q1=a1/∣∣a1∣∣C=a3(q1Ta3)q1B=a2(q1Ta2)q1C=C(q2TC)q2q2=B/∣∣B∣∣q3=C/∣∣C∣∣ 方程(4.4.11)一次减去一个投影,如 C∗\boldsymbol{C^*}CC\boldsymbol CC,减去在 q1\boldsymbol q_1q1 上的投影得到 C∗\boldsymbol {C^*}C,然后再用 C∗\boldsymbol{C^*}C 减去在 q2\boldsymbol q_2q2 上的投影得到 C\boldsymbol CC。这项改变称为 “修正的格拉姆-施密特”。这套代码的数值计算要比方程(4.4.8)稳定,方程(4.4.8)是一次性减去所有的投影。

for j = 1:n							% 修正的格拉姆-施密特
	v = A(:, j);					% v 从原始的矩阵 A 的第 j 列开始
	for i = 1:j-1					% Q 的第 1 列 q_1 到 j-1 列 q_{j-1} 已经设置完成(j=1时该循环不执行)
		R(i, j) = Q(:, i)' * v; 	% 计算 R_{ij} = {q_i}^T*(a_j) 就是 {q_i}^T*v
		v = v - R(i, j) * Q(:, i);	% 减去投影 ({q_i}^T*v)q_i
	end								% v 现在与所有的 q_1,q_2,...,q_{j-1} 垂直
	R(j, j) = norm(v);				% 对角线元素 R_{jj} 是 v 的长度
	Q(:, j) = v/R(j, j);			% 除以 v 的长度得到下一个 q_j
end									% for j = 1:n 这个循环生成所有的 q_j

下图是 n=3n=3n=3 时的运行结果,矩阵 AAA 如代码所示:
在这里插入图片描述
要恢复 AAA 的第 jjj 列,我们要反着执行上述代码,从最后一步到中间步骤:R(j,j)qj=(v 减去它的投影)=(A 的列 j)−∑i=1j−1R(i,j)qi(4.4.12)R(j,j)\boldsymbol q_j=(\boldsymbol v\,减去它的投影)=(A\,的列\,j)-\sum_{i=1}^{j-1}R(i,j)\boldsymbol q_i\kern 12pt(4.4.12)R(j,j)qj=(v减去它的投影)=(A的列j)i=1j1R(i,j)qi(4.4.12)将累加和移到左边,则列 jjj 可以由 QR=AQR=AQR=A 得到。
好的软件,如 LAPACK,用好的系统上,如 MATLAB、Julia 和 Python,它们不会使用这个格拉姆-施密特代码。现在有更好的方法,“豪斯霍尔德反射(Householder reflections)” 作用在 AAA 上得到上三角矩阵 RRR,它用同样的方法每次处理一列,就像消元法得到 LULULU 中的 UUU 同样的方法。
反射矩阵 I−2uuTI-2\boldsymbol{uu}^TI2uuT 是数值线性代数的内容,如果 AAA 是三角矩阵,我们甚至可以简化成 2×22\times22×2 的旋转矩阵,结果总是 A=QRA=QRA=QR,MATLAB 正交化 AAA 的指令是 [Q,R]=qr(A)[Q,R]=\textrm{qr}(A)[Q,R]=qr(A)。格拉姆-施密特是一个很容易理解的程序,但是反射和旋转可以得到更好的 QQQ

五、主要内容总结

  1. 如果标准正交向量 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,,qnQQQ 的列,则 qiTqj=0,qiTqi=1\boldsymbol q_i^T\boldsymbol q_j=0,\boldsymbol q_i^T\boldsymbol q_i=1qiTqj=0qiTqi=1,转换成矩阵乘法就是 QTQ=IQ^TQ=IQTQ=I
  2. 如果 QQQ 是方阵(正交矩阵)则 QT=Q−1Q^T=Q^{-1}QT=Q1转置 = 逆
  3. QxQ\boldsymbol xQx 的长度等于 x\boldsymbol xx 的长度:∣∣Qx∣∣=∣∣x∣∣||Q\boldsymbol x||=||\boldsymbol x||∣∣Qx∣∣=∣∣x∣∣
  4. 投影到 QQQ 列空间的投影矩阵是 P=QQTP=QQ^TP=QQTQQQq′s\boldsymbol q'sqs 生成。
  5. 如果 QQQ 是方阵,则 P=QQT=IP=QQ^T=IP=QQT=I,每个 b=q1(q1Tb)+q2(q2Tb)+⋯+qn(qnTb)\boldsymbol b=\boldsymbol q_1(\boldsymbol q_1^T\boldsymbol b)+\boldsymbol q_2(\boldsymbol q_2^T\boldsymbol b)+\cdots+\boldsymbol q_n(\boldsymbol q_n^T\boldsymbol b)b=q1(q1Tb)+q2(q2Tb)++qn(qnTb)
  6. 格拉姆-施密特从无关向量 a,b,c\boldsymbol a,\boldsymbol b,\boldsymbol ca,b,c 生成标准正交向量 q1,q2,q3\boldsymbol q_1,\boldsymbol q_2,\boldsymbol q_3q1,q2,q3。用矩阵形式就是分解 A=QR=(正交的 Q)(上三角 R)A=QR=(正交的\,Q)(上三角\,R)A=QR=(正交的Q)(上三角R)

六、例题

例5】二外增加两个元素都是 111−1-11 的列,使得这个 4×44\times44×4 的 “哈达玛矩阵(Hadamard matrix)” 的列都正交。如何将 H4H_4H4 变为正交矩阵 Q4Q_4Q4H2=[111−1]H4=[11xx1−1xx11xx1−1xx]Q4=[]H_2=\begin{bmatrix}1&\kern 7pt1\\1&-1\end{bmatrix}\kern 10ptH_4=\begin{bmatrix}1&\kern 7pt1&x&x\\1&-1&x&x\\1&\kern 7pt1&x&x\\1&-1&x&x\end{bmatrix}\kern 15ptQ_4=\begin{bmatrix}&&&\\&&&\\&&&\\&&&\end{bmatrix}H2=[1111]H4=11111111xxxxxxxxQ4=分块矩阵 H8=[H4H4H4−H4]H_8=\begin{bmatrix}H_4&\kern 7ptH_4\\H_4&-H_4\end{bmatrix}H8=[H4H4H4H4] 是下一个元素都是 111−1-11 的哈达玛矩阵,乘积 H8TH8H_8^TH_8H8TH8 是什么?
b=(6,0,0,2)\boldsymbol b=(6,0,0,2)b=(6,0,0,2)H4H_4H4 第一列的投影是 p1=(2,2,2,2)\boldsymbol p_1=(2,2,2,2)p1=(2,2,2,2),在第二列的投影是 p2=(1,−1,1,−1)\boldsymbol p_2=(1,-1,1,-1)p2=(1,1,1,1),那么 b\boldsymbol bb 在由前两列所生成的 222 维空间的投影 p1,2\boldsymbol p_{1,2}p1,2 是什么?
解: H4H_4H4 可以由 H2H_2H2 得到,和 H8H_8H8H4H_4H4 得到一样:H4=[H2H2H2−H2]=[11111−11−111−1−11−1−11]有正交列H_4=\begin{bmatrix}H_2&\kern 7ptH_2\\H_2&-H_2\end{bmatrix}=\begin{bmatrix}1&\kern 7pt1&\kern 7pt1&\kern 7pt1\\1&-1&\kern 7pt1&-1\\1&\kern 7pt1&-1&-1\\1&-1&-1&\kern 7pt1\end{bmatrix}有正交列H4=[H2H2H2H2]=1111111111111111有正交列Q4=H4/2Q_4=H_4/2Q4=H4/2 有标准正交列,除以列的长度以单位化。5×55\times55×5 的哈达玛矩阵是不存在的,因为列的点积会有 555111−1-11,它们的和不可能等于零。H8H_8H8 正交列的长度是 8\sqrt88H8TH8=[H4TH4TH4T−H4T][H4H4H4−H4]=[2H4TH4002H4TH4]=[8I008I],Q8=H88H_8^TH_8=\begin{bmatrix}H_4^T&\kern 7ptH_4^T\\H_4^T&-H_4^T\end{bmatrix}\begin{bmatrix}H_4&\kern 7ptH_4\\H_4&-H_4\end{bmatrix}=\begin{bmatrix}2H_4^TH_4&0\\0&2H_4^TH_4\end{bmatrix}=\begin{bmatrix}8I&0\\0&8I\end{bmatrix},\kern 10ptQ_8=\frac{H_8}{\sqrt8}H8TH8=[H4TH4TH4TH4T][H4H4H4H4]=[2H4TH4002H4TH4]=[8I008I],Q8=8H8在平面上的投影等于在两个正交直线上的投影之和 p1,2=p1+p2=(3,1,3,1)\boldsymbol p_{1,2}=\boldsymbol p_1+\boldsymbol p_2=(3,1,3,1)p1,2=p1+p2=(3,1,3,1)

例6正交列的关键是什么
答:ATAA^TAATA 是对角矩阵,很容易求逆。我们可以将向量投影到正交列上,然后将它们相加,轴是正交的。

例7】对 A = eye(4)-diag([1 1 1], -1) 进行 QR 分解,让后按比例放大 Q 的列,得到整数列。
解:

A = eye(4) - diag([1 1 1], -1)  % diag(v, k) 创建对角矩阵,将向量 v 的元素放在第 k 条对角线上,k<0 在主对角线下
[Q, R] = qr(A)	                % 对 A 进行 QR 分解,满足 A = QR,Q 是正交矩阵,R 是上三角矩阵

在这里插入图片描述QQQ 是一个正交矩阵,即 Q=[−2/2−6/6−3/61/22/2−6/6−3/61/206/3−3/61/2003/21/2]Q=\begin{bmatrix}-\sqrt2/2&-\sqrt6/6&-\sqrt3/6&1/2\\\kern 7pt\sqrt2/2&-\sqrt6/6&-\sqrt3/6&1/2\\0&\kern 7pt\sqrt6/3&-\sqrt3/6&1/2\\0&0&\kern 7pt\sqrt3/2&1/2\end{bmatrix}Q=2/22/2006/66/66/303/63/63/63/21/21/21/21/2QQQ 按比例放大到整数列,则可得[1111−11110−21100−31]\begin{bmatrix}\kern 7pt1&\kern 7pt1&\kern 7pt1&1\\-1&\kern 7pt1&\kern 7pt1&1\\\kern 7pt0&-2&\kern 7pt1&1\\\kern 7pt0&\kern 7pt0&-3&1\end{bmatrix}1100112011131111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值