线性代数 -- 子空间的投影(一)

##前言
Q:为什么要讲投影?

A:就像Ax=b有时会出现无解的情况, 但是我又要求出一个解来, 所以我就只能求一个最接近的解, 将Ax=b转化成Ax=P, P就是b在列空间上的投影。 但是记住此时的x并不是原来的x, 只是一个最接近x的解

##一维
我们先来看下面这个一维空间投影的例子

[外链图片转存失败(img-1Wfe6sDW-1565930737149)(http://i.imgur.com/oMd25AL.png)]

要求是在a向量中寻找距离b向量最近的点, 一个容易想到的做法就是通过b做投影, 投影是p点; 那么这个p点就是距离b最近的点, 连接pb, 得到向量e=b-p。 因为p点在向量a上, 所以p可以用p=xa来表示。因为e与a相互垂直, 所以可以得到:aT(b-xa)=0。可以解得x=(aTb)/(aTa)。 前面已经说过p=xa, 所以p=a(aTb)/(aTa), 这就是投影。 通过p=a(aTb)/(aTa)这个式子我们可以看出, 当b增大到原来的两倍时, p也会相应的增大到原来的两倍; 但是如果是改变a, 那么p不会变; 因为a如何改变, b在a上面的投影仍然是在a的这条线上。

下面我们主要来看看p的这个式子:p=a(aTb)/(aTa), 它是一个矩阵, 因为组成这个式子的a、b都是向量。 向量b的投影是一个矩阵, 我们把它叫做投影矩阵。 记为Pb(因为是b的投影, 如果是a的投影, 就记为Pa)。 这里我们来看一下这个P(注意是大写的)到底是什么, 在p的这个式子:p=a(aTb)/(aTa)中, 我们可以将括号的位置换一下得到:p=(aaT)b/(aTa), 注意aaT和aTa的结果并不是一样的(aaT是一个n*n矩阵(列*行), 而aTa是一个数字), 到这里P已经显而易见了P=(aaT)/(aTa)。

这里我们主要看看(aaT)/(aTa))这个矩阵, 这个矩阵的列空间是什么? 列空间的作用就是无论你用什么向量b乘以这个矩阵 结果总会在这个列空间里面, 上面那个Pb就在列空间之内。 可以知道矩阵的列空间就是通过a的一条直线, 这个矩阵的秩就是:1. 这是一个秩一矩阵, 这个矩阵是由列乘以行得到, 所以它的矩阵的列空间的基就是列。 这个列就是a。一维。 来看看其余两个性质:P是否是对称矩阵? 投影两次会是什么结果? 答案是P是对称矩阵, 因为PT=P。 那投影两次呢? 我们知道b投影一次得到点p, 由于直线上的点在该直线上的投影还是改点, 所以有P2=P。这样我们就得到了投影公式:PT=P=P2。 对于一维的情况我们最好把x=(aTb)/(aTa)、p=a(aTb)/(aTa)、P=(aaT)/(aTa), 这几个公式最好记住。


下一章会讨论高维的情况

你可能感兴趣的:(线性代数)