首页 > 代码库 > 漫步线性代数十七——正交基和格拉姆-施密特正交化(上)

漫步线性代数十七——正交基和格拉姆-施密特正交化(上)

对于一个正交基,每个向量和其他所有向量垂直,坐标轴就是互相正交的。我们还可以进一步改善:每个向量除以它的长度得到单位向量,这样的话正交基变成了标准正交基:

16、如果

qTiqj={01ij,i=j,
<script type="math/tex; mode=display" id="MathJax-Element-10673"> q_i^Tq_j= \begin{cases} 0&i\neq j,\text{给出正交性}\1&i=j,\text{给出归一性} \end{cases}</script>

那么q1,,qn<script type="math/tex" id="MathJax-Element-10674">q_1,\ldots,q_n</script>就是是标准正交基,由标准正交列组成的矩阵叫做Q<script type="math/tex" id="MathJax-Element-10675">Q</script>。

最重要的例子是标准基,对于x?y<script type="math/tex" id="MathJax-Element-10676">x-y</script>平面,最熟悉的e1=(1,0)e2=(0,1)<script type="math/tex" id="MathJax-Element-10677">e_1=(1,0),e_2=(0,1)</script>水平和竖直方向都是垂直的,Q<script type="math/tex" id="MathJax-Element-10678">Q</script>是2×2<script type="math/tex" id="MathJax-Element-10679">2\times 2</script>的单位矩阵。在n<script type="math/tex" id="MathJax-Element-10680">n</script>为空间里标准基e1,,en<script type="math/tex" id="MathJax-Element-10681">e_1,\ldots,e_n</script>由Q=I<script type="math/tex" id="MathJax-Element-10682">Q=I</script>的列组成:

e1=?????????100?0?????????,e2=?????????010?0?????????,?,en=?????????000?1?????????.
<script type="math/tex; mode=display" id="MathJax-Element-10683"> e_1=\begin{bmatrix} 1\\0\\0\\\vdots\\0 \end{bmatrix}, e_2=\begin{bmatrix} 0\\1\\0\\\vdots\\0 \end{bmatrix} ,\cdots, e_n=\begin{bmatrix} 0\\0\\0\\\vdots\\1 \end{bmatrix}. </script>

这不是唯一的正交基!我们在不改变直角的情况下悬着这些轴,依然是正交基,旋转得到的矩阵我们用Q<script type="math/tex" id="MathJax-Element-10684">Q</script>来表示。

如果我们有一个Rn<script type="math/tex" id="MathJax-Element-10685">R^n</script>的子空间,标准向量ei<script type="math/tex" id="MathJax-Element-10686">e_i</script>可能不在这个子空间,但是子空间肯定有一个正交基,我们可以通过一种简单的方法来构造出来,本质上就是将这些倾斜的轴变成正交的,这就是所谓的格拉姆-施密特正交化(Gram-Schmidt othogonalization)。

接下来,说一些本篇文章的是三个主题:

  1. 正交矩阵Q<script type="math/tex" id="MathJax-Element-10687">Q</script>的定义和性质。
  2. Qx=b<script type="math/tex" id="MathJax-Element-10688">Qx=b</script>的解,其中Q<script type="math/tex" id="MathJax-Element-10689">Q</script>可以是n×n<script type="math/tex" id="MathJax-Element-10690">n\times n</script>方阵,也可以是长方形矩阵(最小二乘)。
  3. 格拉姆-施密特方法的具体步骤以及新的矩阵分解A=QR<script type="math/tex" id="MathJax-Element-10691">A=QR</script>。

正交矩阵

17、如果Q<script type="math/tex" id="MathJax-Element-10210">Q</script>(正方行或长方形)的列是正交的,那么QTQ=I<script type="math/tex" id="MathJax-Element-10211">Q^TQ=I</script>:

??????????qT1qT2?qTn?????????????|q1||q2|?|qn|???=?????10?001?0????00?1?????(1)
<script type="math/tex; mode=display" id="MathJax-Element-10212">\begin{equation} \begin{bmatrix} -&q_1^T&-\-&q_2^T&-\&\vdots&\-&q_n^T&- \end{bmatrix} \begin{bmatrix} |&|&&|\q_1&q_2&\cdots&q_n\|&|&&| \end{bmatrix} =\begin{bmatrix} 1&0&\cdot&0\0&1&\cdot&0\\cdot&\cdot&\cdot&\cdot\0&0&\cdot&1 \end{bmatrix}\tag1 \end{equation}</script>

正交矩阵就是列是单位正交的方阵,它的转置等于它的逆,即QT=Q?1<script type="math/tex" id="MathJax-Element-10213">Q^T=Q^{-1}</script>。

QT<script type="math/tex" id="MathJax-Element-10214">Q^T</script>的i<script type="math/tex" id="MathJax-Element-10215">i</script>行乘以Q<script type="math/tex" id="MathJax-Element-10216">Q</script>的j<script type="math/tex" id="MathJax-Element-10217">j</script>列时,结果为零qTiqj=0<script type="math/tex" id="MathJax-Element-10218">q_i^Tq_j=0</script>,而对角线上i=j<script type="math/tex" id="MathJax-Element-10219">i=j</script>,得到qTiqi=1<script type="math/tex" id="MathJax-Element-10220">q_i^Tq_i=1</script>,也就是长度为1的单位矩阵归一化。

注意即便Q<script type="math/tex" id="MathJax-Element-10221">Q</script>是长方形矩阵,QTQ=I<script type="math/tex" id="MathJax-Element-10222">Q^TQ=I</script>依然成立,但是QT<script type="math/tex" id="MathJax-Element-10223">Q^T</script>仅仅是左逆。

例1:

Q=[cosθsinθ?sinθcosθ],QT=Q?1=[cosθ?sinθsinθcosθ]
<script type="math/tex; mode=display" id="MathJax-Element-10224"> Q=\begin{bmatrix} \cos\theta&-\sin\theta\\sin\theta&\cos\theta \end{bmatrix},\quad Q^T=Q^{-1}= \begin{bmatrix} \cos\theta&\sin\theta\-\sin\theta&\cos\theta \end{bmatrix} </script>

Q<script type="math/tex" id="MathJax-Element-10225">Q</script>将每个向量旋转θ<script type="math/tex" id="MathJax-Element-10226">\theta</script>度,而QT<script type="math/tex" id="MathJax-Element-10227">Q^T</script>旋转?θ<script type="math/tex" id="MathJax-Element-10228">-\theta</script>度,相当于有回到原点了。这些列明显都是正交的,因为sin2θ+cos2θ=1<script type="math/tex" id="MathJax-Element-10229">\sin^2\theta+\cos^2\theta=1</script>。

例2:置换矩阵P<script type="math/tex" id="MathJax-Element-10230">P</script>都是正交矩阵,它的列都是单位向量,而且正交。因为每一列在不同的位置有一个1,它的转置也等于它的逆:

P=???001100010???P?1=PT=???001100010???
<script type="math/tex; mode=display" id="MathJax-Element-10231"> P=\begin{bmatrix} 0&1&0\\0&0&1\\1&0&0 \end{bmatrix}\text{那么} \quad P^{-1}=P^T=\begin{bmatrix} 0&1&0\\0&0&1\\1&0&0 \end{bmatrix} </script>

反对角线P<script type="math/tex" id="MathJax-Element-10232">P</script>上的元素P13=P22=P31=I<script type="math/tex" id="MathJax-Element-10233">P_{13}=P_{22}=P_{31}=I</script>将x?y?z<script type="math/tex" id="MathJax-Element-10234">x-y-z</script>轴变成了z?y?x<script type="math/tex" id="MathJax-Element-10235">z-y-x</script>轴——也就是右手系统变成了左手系统,所以如我们说每个正交矩阵Q<script type="math/tex" id="MathJax-Element-10236">Q</script>表示一个旋转的话就不是很准确,因为反射也能做到:

P=[0110]
<script type="math/tex; mode=display" id="MathJax-Element-10237"> P=\begin{bmatrix} 0&1\\1&0 \end{bmatrix} </script>

将点(x,y)<script type="math/tex" id="MathJax-Element-10238">(x,y)</script>反射成(y,x)<script type="math/tex" id="MathJax-Element-10239">(y,x)</script>,它的镜像是45°<script type="math/tex" id="MathJax-Element-10240">45^{\circ}</script>斜线。从几何上来看,正交矩阵Q<script type="math/tex" id="MathJax-Element-10241">Q</script>是旋转矩阵和反射矩阵的乘积。

有一个性质是旋转矩阵和反射共有的,当然也就意味着每个正交矩阵也具有。但投影矩阵没有这个性质,因为它不正交或者说不可逆,投影会使向量的长度变小,而正交矩阵却保持长度不变,这个性质非常重要也非常具有代表性:

18、Q<script type="math/tex" id="MathJax-Element-10242">Q</script>乘以任何向量保持向量长度不变:

Qx=x(2)
<script type="math/tex; mode=display" id="MathJax-Element-10243">\begin{equation} \Vert Qx\Vert=\Vert x\Vert\tag2 \end{equation}</script>

它也保持内积和夹角不变,因为(Qx)T(Qy)=xTQTQy=xTy<script type="math/tex" id="MathJax-Element-10244">(Qx)^T(Qy)=x^TQ^TQy=x^Ty</script>。对于长度而言,直接从QTQ=I<script type="math/tex" id="MathJax-Element-10245">Q^TQ=I</script>就能看出来:

Qx2=x2(Qx)T(Qx)=xTQTQx=xTx(3)
<script type="math/tex; mode=display" id="MathJax-Element-10246">\begin{equation} \Vert Qx\Vert^2=\Vert x\Vert^2\text{即}\quad (Qx)^T(Qx)=x^TQ^TQx=x^Tx\tag3 \end{equation}</script>

当空间被旋转或反射时,所有的内积和长度都保持不变。

接下来我们利用性质QT=Q?1<script type="math/tex" id="MathJax-Element-10247">Q^T=Q^{-1}</script>进行计算。如果已知一组基,那么任何向量都可以用基向量来表示,对于一组标准正交基来说这是非常简便的,之后我们会看到傅里叶级数背后实际就是这一想法,所以现在问题变成找基向量的系数:

bb=x1q1+x2q2+?+xnqn
<script type="math/tex; mode=display" id="MathJax-Element-10248"> \text{将$b$写成一个基向量的组合}b=x_1q_1+x_2q_2+\cdots+x_nq_n </script>

在计算x1<script type="math/tex" id="MathJax-Element-10249">x_1</script>时有一个小技巧,方程两边同时乘以qT1<script type="math/tex" id="MathJax-Element-10250">q_1^T</script>,那么左边就变成qT1b<script type="math/tex" id="MathJax-Element-10251">q_1^Tb</script>,右边除了第一项外其余项都消失了(因为qT1qj=0<script type="math/tex" id="MathJax-Element-10252">q_1^Tq_j=0</script>),最后留下:

qT1b=x1qT1q1
<script type="math/tex; mode=display" id="MathJax-Element-10253"> q_1^Tb=x_1q_1^Tq_1 </script>

因为qT1q1=1<script type="math/tex" id="MathJax-Element-10254">q_1^Tq_1=1</script>,所以x1=qT1b<script type="math/tex" id="MathJax-Element-10255">x_1=q_1^Tb</script>,同样的可以得出第二个系数x2=qT2b<script type="math/tex" id="MathJax-Element-10256">x_2=q_2^Tb</script>,得出所有系数后代入b<script type="math/tex" id="MathJax-Element-10257">b</script>的方程的:

(qT1b)q1+(qT2b)q2+?+(qTnb)qn(4)
<script type="math/tex; mode=display" id="MathJax-Element-10258">\begin{equation} (q_1^Tb)q_1+(q_2^Tb)q_2+\cdots+(q_n^Tb)q_n\tag4 \end{equation}</script>

接下来将标准正交基放到方阵Q<script type="math/tex" id="MathJax-Element-10259">Q</script>中,向量方程x1q1+?+xnqn=b<script type="math/tex" id="MathJax-Element-10260">x_1q_1+\cdots+x_nq_n=b</script>等价于Qx=b<script type="math/tex" id="MathJax-Element-10261">Qx=b</script>,(Q<script type="math/tex" id="MathJax-Element-10262">Q</script>的列乘以x<script type="math/tex" id="MathJax-Element-10263">x</script> 中的元素)它的解是x=Q?1b<script type="math/tex" id="MathJax-Element-10264">x=Q^{-1}b</script>,但是因为Q?1=QT<script type="math/tex" id="MathJax-Element-10265">Q^{-1}=Q^T</script>——正交矩阵的性质——所有解也可以写成x=QTb<script type="math/tex" id="MathJax-Element-10266">x=Q^Tb</script>:

x=QTb=???????qT1?qTn??????????b???=????qT1b?qTnb????(5)
<script type="math/tex; mode=display" id="MathJax-Element-10267">\begin{equation} x=Q^Tb=\begin{bmatrix} -&q_1^T&-\-&\vdots&-\-&q_n^T&- \end{bmatrix} \begin{bmatrix} \\b\\ \\end{bmatrix} =\begin{bmatrix} q_1^Tb\\\vdots\\q_n^Tb \end{bmatrix}\tag5 \end{equation}</script>

x<script type="math/tex" id="MathJax-Element-10268">x</script>的元素就是内积qTib<script type="math/tex" id="MathJax-Element-10269">q_i^T b</script>,也就是方程(4)。

矩阵形式也展示了在列向量不是标准正交时发生了什么,我们依然将b<script type="math/tex" id="MathJax-Element-10270">b</script>表示为x1a1+?+xnan<script type="math/tex" id="MathJax-Element-10271">x_1a_1+\cdots+x_n a_n</script>的组合来求解Ax=b<script type="math/tex" id="MathJax-Element-10272">Ax=b</script>,基向量表示成A<script type="math/tex" id="MathJax-Element-10273">A</script>,为了求解,我们需要A?1<script type="math/tex" id="MathJax-Element-10274">A^{-1}</script>,在标准正交时仅仅需要QT<script type="math/tex" id="MathJax-Element-10275">Q^T</script>。

注解1:前面我们将b<script type="math/tex" id="MathJax-Element-10276">b</script>投影到直线上时出现了aTb/aTa<script type="math/tex" id="MathJax-Element-10277">a^Tb/a^Ta</script>,而这里的a<script type="math/tex" id="MathJax-Element-10278">a</script>就是q1<script type="math/tex" id="MathJax-Element-10279">q_1</script>,这是一维的,并且投影是(qT1)q1<script type="math/tex" id="MathJax-Element-10280">(q_1^T)q_1</script>,所以我们可以重新解释公式(4):每个向量b<script type="math/tex" id="MathJax-Element-10281">b</script>是投影到一维直线上的总和。

因为这些投影是正交的,那么可以应用毕达哥拉斯定理,斜边的平方等于各项平方的和:

b2=(qT1b)2+(qT2b)2+?+(qTnb)2QTb2(6)
<script type="math/tex; mode=display" id="MathJax-Element-10282">\begin{equation} \Vert b\Vert^2=(q_1^Tb)^2+(q_2^Tb)^2+\cdots+(q_n^Tb)^2\text{也就是$\Vert Q^Tb\Vert^2$}\tag6 \end{equation}</script>

注解2:因为QT=Q?1<script type="math/tex" id="MathJax-Element-10283">Q^T=Q^{-1}</script>,所以QQT=I<script type="math/tex" id="MathJax-Element-10284">QQ^T=I</script>。当我们计算QQT<script type="math/tex" id="MathJax-Element-10285">QQ^T</script>时,得到的是Q<script type="math/tex" id="MathJax-Element-10286">Q</script>行的内积结果(QTQ<script type="math/tex" id="MathJax-Element-10287">Q^TQ</script>是列的内积)。因为这个结果也是单位矩阵,由此我们得出一个结论:方阵的行是正交的。行的方向和列完全不同,从几何上看不出为何正交,但是他们真的就是正交:

Q=???1/31/31/31/20?1/21/6?2/61/6???
<script type="math/tex; mode=display" id="MathJax-Element-10288"> Q=\begin{bmatrix} 1/\sqrt{3}&1/\sqrt{2}&1/\sqrt{6}\1/\sqrt{3}&0&-2/\sqrt{6}\1/\sqrt{3}&-1/\sqrt{2}&1/\sqrt{6} \end{bmatrix} </script>

长方形矩阵

这一小节讲一下Ax=b<script type="math/tex" id="MathJax-Element-10581">Ax=b</script>,其中A<script type="math/tex" id="MathJax-Element-10582">A</script>是长方形矩阵。考虑Qx=b<script type="math/tex" id="MathJax-Element-10583">Qx=b</script>,我们现在允许行数大于列数,也就是说Q<script type="math/tex" id="MathJax-Element-10584">Q</script>中有n<script type="math/tex" id="MathJax-Element-10585">n</script>个正交列qi<script type="math/tex" id="MathJax-Element-10586">q_i</script>,而m>n<script type="math/tex" id="MathJax-Element-10587">m>n</script>,此时Q<script type="math/tex" id="MathJax-Element-10588">Q</script>是m×n<script type="math/tex" id="MathJax-Element-10589">m\times n</script>矩阵并且不能精确的求解Qx=b<script type="math/tex" id="MathJax-Element-10590">Qx=b</script>,也就是需要用到最小二乘。

标准正交列一般会让问题简化,在方阵中我们已经看到了效果,现在我们在长方形矩阵使用一下,重点是注意到QQ=I<script type="math/tex" id="MathJax-Element-10591">Q^Q=I</script>,所以QT<script type="math/tex" id="MathJax-Element-10592">Q^T</script>依然是Q<script type="math/tex" id="MathJax-Element-10593">Q</script>的左逆。

对于最小二乘,在Ax=b<script type="math/tex" id="MathJax-Element-10594">Ax=b</script>两边乘以矩阵的转置得到正规方程ATAx^=ATb<script type="math/tex" id="MathJax-Element-10595">A^TA\hat{x}=A^Tb</script>,而这里的正规方程就是QTQ=QTb<script type="math/tex" id="MathJax-Element-10596">Q^TQ=Q^Tb</script>,但是QTQ=I<script type="math/tex" id="MathJax-Element-10597">Q^TQ=I</script>!因此x^=QTb<script type="math/tex" id="MathJax-Element-10598">\hat{x}=Q^Tb</script>,当Q<script type="math/tex" id="MathJax-Element-10599">Q</script>是方阵时x^<script type="math/tex" id="MathJax-Element-10600">\hat{x}</script> 就是精确解,或者Q<script type="math/tex" id="MathJax-Element-10601">Q</script>是长方形矩阵,此时就需要最小二乘了。

19、如果Q<script type="math/tex" id="MathJax-Element-10602">Q</script>的列是标准正交的,那么最小二乘问题就变得容易了:对于大多数b<script type="math/tex" id="MathJax-Element-10603">b</script>,长方形矩阵形式没有解

QxQTQx^x^pp=b=QTb=QTb=Qx^=QQTbbx^QTQ=Ix^iqTibb(qT1b)q1+?+(qTnb)qnP=QQT
<script type="math/tex; mode=display" id="MathJax-Element-10604"> \begin{array}{rll} Qx&=b&\text{对于大多数$b$没有解}\Q^TQ\hat{x}&=Q^Tb&\text{正规方程有最佳解$\hat{x}$,其中$Q^TQ=I$}\\hat{x}&=Q^Tb&\text{$\hat{x}_i$就是$q_i^Tb$}\p&=Q\hat{x}&\text{$b$的投影是$(q_1^Tb)q_1+\cdots+(q_n^Tb)q_n$}\p&=QQ^Tb&\text{投影矩阵是$P=QQ^T$} \end{array} </script>

最后一个方程像p=Ax^P=A(ATA)?1AT<script type="math/tex" id="MathJax-Element-10605">p=A\hat{x},P=A(A^TA)^{-1}A^T</script>,当列是标准正交时,矩阵ATA<script type="math/tex" id="MathJax-Element-10606">A^TA</script>变成QTQ=I<script type="math/tex" id="MathJax-Element-10607">Q^TQ=I</script>,也就是说当向量标准正交时最小二乘中难计算的部分没有了,在轴上的投影不在耦合了,p<script type="math/tex" id="MathJax-Element-10608">p</script>是各项的和p=(qT1b)q1+?+(qTnb)qn<script type="math/tex" id="MathJax-Element-10609">p=(q_1^Tb)q_1+\cdots+(q_n^Tb)q_n</script>。

我们强调以下,投影不是重新构建b<script type="math/tex" id="MathJax-Element-10610">b</script>,只有在m=n<script type="math/tex" id="MathJax-Element-10611">m=n</script>的方阵情况下才是这样,而对于m>n<script type="math/tex" id="MathJax-Element-10612">m>n</script>的长方形矩阵,他们不是重建,给出的投影p<script type="math/tex" id="MathJax-Element-10613">p</script>已经不是原来的向量b<script type="math/tex" id="MathJax-Element-10614">b</script>。投影矩阵一般是A(ATA)?1AT<script type="math/tex" id="MathJax-Element-10615">A(A^TA)^{-1}A^T</script>,而这里简化为

P=Q(QTQ)?1QTP=QQT(7)
<script type="math/tex; mode=display" id="MathJax-Element-10616">\begin{equation} P=Q(Q^TQ)^{-1}Q^T\text{或者}P=QQ^T\tag7 \end{equation}</script>

注意QTQ<script type="math/tex" id="MathJax-Element-10617">Q^TQ</script>是n×n<script type="math/tex" id="MathJax-Element-10618">n\times n</script>的单位矩阵,而QQT<script type="math/tex" id="MathJax-Element-10619">QQ^T</script>是m×m<script type="math/tex" id="MathJax-Element-10620">m\times m</script>的投影矩阵P<script type="math/tex" id="MathJax-Element-10621">P</script>,它是Q<script type="math/tex" id="MathJax-Element-10622">Q</script>列向量上的单位矩阵,但是QQT<script type="math/tex" id="MathJax-Element-10623">QQ^T</script>的正交补是零矩阵(QT<script type="math/tex" id="MathJax-Element-10624">Q^T</script>的零空间)。

例3:下面的例子比较简单但是非常典型。假设我们将点b=(x,y,z)<script type="math/tex" id="MathJax-Element-10625">b=(x,y,z)</script>投影到x?y<script type="math/tex" id="MathJax-Element-10626">x-y</script>平面上,那么它的投影是p=(x,y,0)<script type="math/tex" id="MathJax-Element-10627">p=(x,y,0)</script>,并且是分别在x<script type="math/tex" id="MathJax-Element-10628">x</script>轴和y<script type="math/tex" id="MathJax-Element-10629">y</script>轴上投影之和:

q1=???100???,(qT1b)q1=???x00???;q2=???010???,(qT2b)q2=???0y0???
<script type="math/tex; mode=display" id="MathJax-Element-10630"> q_1=\begin{bmatrix} 1\\0\\0 \end{bmatrix}, (q_1^Tb)q_1=\begin{bmatrix} x\\0\\0 \end{bmatrix}; q_2=\begin{bmatrix} 0\\1\\0 \end{bmatrix}, (q_2^Tb)q_2=\begin{bmatrix} 0\\y\\0 \end{bmatrix} </script>

这个投影矩阵是

P=q1qT1+q2qT2=???100010000???,P???xyz???=???xy0???
<script type="math/tex; mode=display" id="MathJax-Element-10631"> P=q_1q_1^T+q_2q_2^T= \begin{bmatrix} 1&0&0\\0&1&0\\0&0&0 \end{bmatrix}, P\begin{bmatrix} x\\y\\z \end{bmatrix} =\begin{bmatrix} x\\y\\0 \end{bmatrix} </script>

在平面上的投影=在标准正交向量q1,q2<script type="math/tex" id="MathJax-Element-10632">q_1,q_2</script>上投影之和。

例4:当测试时间的平均值是零时,拟合直线得到的是正交列。我们取t1=?3,t2=0,t3=3<script type="math/tex" id="MathJax-Element-10633">t_1=-3,t_2=0,t_3=3</script>,然后拟合y=C+Dt<script type="math/tex" id="MathJax-Element-10634">y=C+Dt</script>得到含有两个未知量的三个方程:

CCC+++Dt1Dt2Dt3===y1y2y3,???111?303???[CD]=???y1y2y3???
<script type="math/tex; mode=display" id="MathJax-Element-10635"> \begin{array}{ccccc} C&+&Dt_1&=&y_1\C&+&Dt_2&=&y_2\C&+&Dt_3&=&y_3 \end{array},\text{或者} \begin{bmatrix} 1&-3\\1&0\\1&3 \end{bmatrix} \begin{bmatrix} C\\D \end{bmatrix}= \begin{bmatrix} y_1\\y_2\\y_3 \end{bmatrix} </script>

(1,1,1),(?3,0,?3)<script type="math/tex" id="MathJax-Element-10636">(1,1,1),(-3,0,-3)</script>是正交的,我们可以分别计算他们的投影,分别求出最佳系数C^,D^<script type="math/tex" id="MathJax-Element-10637">\hat{C},\hat{D}</script>:

C^=[111][y1y2y3]T12+12+12,D^=[?303][y1y2y3]T(?3)2+02+32,
<script type="math/tex; mode=display" id="MathJax-Element-10638"> \hat{C}=\frac{\begin{bmatrix}1&1&1\end{bmatrix}\begin{bmatrix}y_1&y_2&y_3\end{bmatrix}^T}{1^2+1^2+1^2}, \hat{D}=\frac{\begin{bmatrix}-3&0&3\end{bmatrix}\begin{bmatrix}y_1&y_2&y_3\end{bmatrix}^T}{(-3)^2+0^2+3^2}, </script>

注意C^=(y1+y2+y3)/3<script type="math/tex" id="MathJax-Element-10639">\hat{C}=(y_1+y_2+y_3)/3</script>是数据的均值,它给出了水平线的最佳拟合,而D^t<script type="math/tex" id="MathJax-Element-10640">\hat{D}t</script>是通过原点直线的最佳拟合。这些列是正交的,所以这两部分的和就是所以直线的最佳拟。因为列不是单位限量,所以C^,D^<script type="math/tex" id="MathJax-Element-10641">\hat{C},\hat{D}</script>都需要除以各自的长度。

正交列的确对求解问题带来许多方便。考虑另一种情况,如果测量时间的平均值不是0,tˉ=(t1+?+tm)/m<script type="math/tex" id="MathJax-Element-10642">\bar{t}=(t_1+\cdots+t_m)/m</script>,那么时间原点就变成了tˉ<script type="math/tex" id="MathJax-Element-10643">\bar{t}</script>,我们不再使用y=C+Dt<script type="math/tex" id="MathJax-Element-10644">y=C+Dt</script>,而是用y=c+d(t?tˉ)<script type="math/tex" id="MathJax-Element-10645">y=c+d(t-\bar{t})</script>,距离说明:

c^=[1?1][y1?ym]T12+12+?+12=y1+?+ymm,d^=[(t1?tˉ)?(tm?tˉ)][y1?ym]T(t1?tˉ)2+?+(tm?tˉ)2=Σ(ti?tˉ)yiΣ(ti?tˉ)2(8)
<script type="math/tex; mode=display" id="MathJax-Element-10646">\begin{align} &\hat{c}=\frac{\begin{bmatrix}1&\cdots&1\end{bmatrix}\begin{bmatrix}y_1&\cdots&y_m\end{bmatrix}^T}{1^2+1^2+\cdots+1^2}=\frac{y_1+\cdots+y_m}{m},\nonumber\&\hat{d}=\frac{\begin{bmatrix}(t_1-\bar{t})&\cdots&(t_m-\bar{t})\end{bmatrix}\begin{bmatrix}y_1&\cdots&y_m\end{bmatrix}^T}{(t_1-\bar{t})^2+\cdots+(t_m-\bar{t})^2}=\frac{\Sigma(t_i-\bar{t})y_i}{\Sigma(t_i-\bar{t})^2}\tag8 \end{align}</script>

最佳解c^<script type="math/tex" id="MathJax-Element-10647">\hat{c}</script>是均值,同时得到d^<script type="math/tex" id="MathJax-Element-10648">\hat{d}</script>的简化形式。之前ATA<script type="math/tex" id="MathJax-Element-10649">A^TA</script>的反对角线元素是Σti<script type="math/tex" id="MathJax-Element-10650">\Sigma t_i</script>,转变了时间t^<script type="math/tex" id="MathJax-Element-10651">\hat{t}</script>后变成零,而这个转变就是格拉姆-施密特过程。

正交矩阵在数值线性代数中非常重要,因为他们引入了不稳定性。当长度保持不变的时候,可以控制住舍入误差。正交向量已经是非常基本的技术,可能出了消元法它就是第二基本的方法了。并且由它得到的分解A=QR<script type="math/tex" id="MathJax-Element-10652">A=QR</script>和A=LU<script type="math/tex" id="MathJax-Element-10653">A=LU</script>一样出名。

<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    漫步线性代数十七——正交基和格拉姆-施密特正交化(上)