一、投影和投影矩阵
我们以下面两个问题开始,问题一是为了展示投影是很容易视觉化的,问题二是关于 “投影矩阵”(projection matrices)—— 对称矩阵且 P 2 = P P^2=P P2=P。 b \boldsymbol b b 的投影是 P b P\boldsymbol b Pb。
- b = ( 2 , 3 , 4 ) \boldsymbol b=(2,3,4 ) b=(2,3,4) 在 z z z 轴和 x y xy xy 平面的投影是什么?
- 什么样的矩阵
P
1
P_1
P1 和
P
2
P_2
P2 可以产生这条直线和平面上的投影?
当 b \boldsymbol b b 投影到一条直线上时,它的投影 p \boldsymbol p p 是沿着这条直线的一部分。如果 b \boldsymbol b b 投影到一个平面, p \boldsymbol p p 是这条平面的一部分。投影 p \boldsymbol p p 就是 P b P\boldsymbol b Pb。
投影矩阵 P P P 乘 b \boldsymbol b b 得到 p \boldsymbol p p。这一节就是找到 p \boldsymbol p p 和 P P P。
我们将
z
z
z 轴上的投影称为
p
1
\boldsymbol p_1
p1。第二个投影是垂直下降到
x
y
xy
xy 平面的,图像如 Figure 4.5 所示。从
b
=
(
2
,
3
,
4
)
\boldsymbol b=(2,3,4)
b=(2,3,4) 开始,横向的投影
p
1
=
(
0
,
0
,
4
)
\boldsymbol p_1=(0,0,4)
p1=(0,0,4),竖直的投影
p
2
=
(
2
,
3
,
0
)
\boldsymbol p_2=(2,3,0)
p2=(2,3,0),它们分别是
b
\boldsymbol b
b 沿着
z
z
z 轴和在
x
y
xy
xy 平面的部分。
投影矩阵
P
1
P_1
P1 和
P
2
P_2
P2 都是
3
×
3
3\times3
3×3 的矩阵,它们乘上
b
\boldsymbol b
b 的
3
3
3 个分量可以得到投影
p
\boldsymbol p
p(也有
3
3
3 个分量)。投影到一条直线上的矩阵是秩一矩阵,投影到一个平面上的矩阵是秩二矩阵:
投影矩阵
到
z
轴
P
1
=
[
0
0
0
0
0
0
0
0
1
]
到
x
y
平面
P
2
=
[
1
0
0
0
1
0
0
0
0
]
\pmb{投影矩阵}\kern 10pt到\,z\,轴\kern 5ptP_1=\begin{bmatrix}0&0&0\\0&0&0\\0&0&\pmb1\end{bmatrix}\kern 10pt到\,xy\,平面\kern 5ptP_2=\begin{bmatrix}\pmb1&0&0\\0&\pmb1&0\\0&0&0\end{bmatrix}
投影矩阵到z轴P1=
000000001
到xy平面P2=
100010000
P
1
P_1
P1 筛选出每个向量的
z
z
z 轴分量,
P
2
P_2
P2 筛选出
x
x
x 和
y
y
y 分量。为了求出
b
\boldsymbol b
b 的投影
p
1
\boldsymbol p_1
p1 和
p
2
\boldsymbol p_2
p2,将
P
2
P_2
P2 和
P
2
P_2
P2 分别乘上
b
\boldsymbol b
b(小写的
p
\boldsymbol p
p 是向量,大写的
P
P
P 是产生投影向量的矩阵):
p
1
=
P
1
b
=
[
0
0
0
0
0
0
0
0
1
]
[
x
y
z
]
=
[
0
0
z
]
p
2
=
P
2
b
=
[
1
0
0
0
1
0
0
0
0
]
[
x
y
z
]
=
[
x
y
0
]
\boldsymbol p_1=P_1\boldsymbol b=\begin{bmatrix}0&0&0\\0&0&0\\0&0&1\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}\pmb0\\\pmb0\\\pmb z\end{bmatrix}\kern 10pt\boldsymbol p_2=P_2\boldsymbol b=\begin{bmatrix}1&0&0\\0&1&0\\0&0&0\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}\pmb x\\\pmb y\\\pmb0\end{bmatrix}
p1=P1b=
000000001
xyz
=
00z
p2=P2b=
100010000
xyz
=
xy0
这种情况下的投影
p
1
\boldsymbol p_1
p1 和
p
2
\boldsymbol p_2
p2 是垂直的,
x
y
xy
xy 平面和
z
z
z 轴是正交子空间,就像房间的地板和两面墙的交线一样。
它们不仅仅是正交的子空间,这条直线和平面嗨还是正交补,它们的维度相加是
1
+
2
=
3
1+2=3
1+2=3。整个空间的任意向量
b
\boldsymbol b
b 都是这两个子空间部分的和,投影
p
1
\boldsymbol p_1
p1 和
p
2
\boldsymbol p_2
p2 就是
b
\boldsymbol b
b 的这两个部分:
向量得到
p
1
+
p
2
=
b
矩阵得到
P
1
+
P
2
=
I
(
4.2.1
)
向量得到\,\boldsymbol p_1+\boldsymbol p_2=\boldsymbol b\kern 10pt矩阵得到\,P_1+P_2=I\kern 15pt(4.2.1)
向量得到p1+p2=b矩阵得到P1+P2=I(4.2.1)这很完美,对于这个例子,我们的目标达到了。对于任意直线、任意平面和任意的
n
n
n 维子空间,我们有相同的目标,就是寻找在每个子空间的部分
p
\boldsymbol p
p,还有可以得到这个
p
\boldsymbol p
p 的矩阵
P
P
P,即
p
=
P
b
\boldsymbol p=P\boldsymbol b
p=Pb。
R
m
\pmb{\textrm R}^m
Rm 的每个子空间都有自己的
m
×
m
m\times m
m×m 投影矩阵。为了计算
P
P
P,我们需要一个好的可以描述投影到的目标子空间。
子空间的最好的描述就是基,将基向量放到
A
A
A 的列,现在我们投影到
A
A
A 的列空间!
z
z
z 轴就是
3
×
1
3\times1
3×1 矩阵
A
1
A_1
A1 的列空间,
x
y
xy
xy 平面就是
A
2
A_2
A2 的列空间,这个平面同样也是
A
3
A_3
A3 的列空间(一个子空间有很多组基),所以
p
2
=
p
3
\boldsymbol p_2=\boldsymbol p_3
p2=p3,
P
2
=
P
3
P_2=P_3
P2=P3。
A
1
=
[
0
0
1
]
,
A
2
=
[
1
0
0
1
0
0
]
,
A
3
=
[
1
2
2
3
0
0
]
A_1=\begin{bmatrix}0\\0\\1\end{bmatrix},\kern 5ptA_2=\begin{bmatrix}1&0\\0&1\\0&0\end{bmatrix},\kern 5ptA_3=\begin{bmatrix}1&2\\2&3\\0&0\end{bmatrix}
A1=
001
,A2=
100010
,A3=
120230
我们的问题是把任意的
b
\boldsymbol b
b 投影到任意的
m
×
n
m\times n
m×n 矩阵的列空间中。从一条直线开始(维度为
n
=
1
n=1
n=1)。矩阵
A
A
A 只有一列,称为
a
\boldsymbol a
a。
二、投影到一条直线
一条过原点的直线方向是
a
=
(
a
1
,
a
2
,
⋯
,
a
m
)
\boldsymbol a=(a_1,a_2,\cdots,a_m)
a=(a1,a2,⋯,am),我们要找到沿着这条直线的一点
p
\boldsymbol p
p,它离
b
=
(
b
1
,
b
2
,
⋯
,
b
m
)
\boldsymbol b=(b_1,b_2,\cdots,b_m)
b=(b1,b2,⋯,bm) 最近。投影的关键是正交:从
b
\boldsymbol b
b 到
p
\boldsymbol p
p 的直线与向量
a
\boldsymbol a
a 垂直,就是 Figure 4.6左侧标识
e
=
b
−
p
\boldsymbol e=\boldsymbol b-\boldsymbol p
e=b−p 的点线,它代表误差。现在我们使用代数计算
p
\boldsymbol p
p。
投影
p
\boldsymbol p
p 会是
a
\boldsymbol a
a 的某个倍数,记为
p
=
x
^
a
\boldsymbol p=\hat x\boldsymbol a
p=x^a 读作 “
x
hat
x\,\,\textrm{hat}
xhat” 乘
a
\boldsymbol a
a。通过计算
x
^
\hat x
x^ 我们可以得到向量
p
\boldsymbol p
p,然后根据
p
\boldsymbol p
p 的公式可以得到投影矩阵
P
P
P。这三步可以求出所有的投影矩阵:求
x
^
\hat x
x^;然后求向量
p
\boldsymbol p
p;再求出矩阵
P
P
P。
点线
b
−
p
\boldsymbol b-\boldsymbol p
b−p 就是“误差”
e
=
b
−
x
^
a
\boldsymbol e=\boldsymbol b-\hat x\boldsymbol a
e=b−x^a,它与向量
a
\boldsymbol a
a 垂直,由这个条件我们就可以求出
x
^
\hat x
x^。由于
b
−
x
^
a
\boldsymbol b-\hat x\boldsymbol a
b−x^a 和向量
a
\boldsymbol a
a 垂直,所以它们的点积为零:
b 投影到 a 上,误差 e = b − x ^ a a ⋅ ( b − x ^ a ) = 0 或 a ⋅ b − x ^ a ⋅ a = 0 x ^ = a ⋅ b a ⋅ a = a T b a T a ( 4.2.2 ) \begin{matrix}\boldsymbol b\,投影到\,\boldsymbol a\,上,误差\,\boldsymbol e=\boldsymbol b-\hat x\boldsymbol a\\\boldsymbol a\cdot(\boldsymbol b-\hat x\boldsymbol a)=0\,或\,\boldsymbol a\cdot\boldsymbol b-\hat x\boldsymbol a\cdot\boldsymbol a=0\end{matrix}\kern 20pt\begin{matrix}\hat x=\displaystyle\frac{\boldsymbol a\cdot\boldsymbol b}{\boldsymbol a\cdot\boldsymbol a}=\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}\end{matrix}\kern 10pt(4.2.2) b投影到a上,误差e=b−x^aa⋅(b−x^a)=0或a⋅b−x^a⋅a=0x^=a⋅aa⋅b=aTaaTb(4.2.2)
乘法 a T b \boldsymbol a^T\boldsymbol b aTb 和 a ⋅ b \boldsymbol a\cdot\boldsymbol b a⋅b 是一样的,转置的表示方法会更好些,因为它也可以应用在矩阵上。由公式 x ^ = a T b a T a \hat x=\displaystyle\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a} x^=aTaaTb 可以得到投影 p = x ^ a \boldsymbol p=\hat x\boldsymbol a p=x^a。
向量 b 在通过 a 的直线上的投影是向量 p = x ^ a = a T b a T a a 特殊情况 1 :如果 b = a ,则 x ^ = 1 。 a 投影到 a 是它自己。 P a = a 。 特殊情况 2 :如果 b 垂直于 a ,则 a T b = 0 。投影 p = 0. {\color{Blue}向量\,\boldsymbol b\,在通过\,\boldsymbol a\,的直线上的投影是向量\kern 7pt\boldsymbol p=\hat x\boldsymbol a=\displaystyle{\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}\boldsymbol a}}\\\,\\特殊情况1:如果\,\boldsymbol b=\boldsymbol a,则\,\hat x=1。\boldsymbol a\,投影到\,\boldsymbol a\,是它自己。P\boldsymbol a=\boldsymbol a。\\特殊情况2:如果\,\boldsymbol b\,垂直于\,\boldsymbol a,则\,\boldsymbol a^T\boldsymbol b=0。投影\,\boldsymbol p=0.\kern 63pt 向量b在通过a的直线上的投影是向量p=x^a=aTaaTba特殊情况1:如果b=a,则x^=1。a投影到a是它自己。Pa=a。特殊情况2:如果b垂直于a,则aTb=0。投影p=0.
【例1】将
b
=
[
1
1
1
]
\boldsymbol b=\begin{bmatrix}1\\1\\1\end{bmatrix}
b=
111
投影在
a
=
[
1
2
2
]
\boldsymbol a=\begin{bmatrix}1\\2\\2\end{bmatrix}
a=
122
上,求出 Figure 4.6 中的
p
=
x
^
a
\boldsymbol p=\hat x\boldsymbol a
p=x^a。
解: 数字
x
^
\hat x
x^ 是
a
T
b
=
5
\boldsymbol a^T\boldsymbol b=5
aTb=5 和
a
T
a
=
9
\boldsymbol a^T\boldsymbol a=9
aTa=9 的比值,所以投影
p
=
5
9
a
\boldsymbol p=\displaystyle\frac{5}{9}\boldsymbol a
p=95a。
b
\boldsymbol b
b 和
p
\boldsymbol p
p 之间的误差向量是
e
=
b
−
p
\boldsymbol e=\boldsymbol b-\boldsymbol p
e=b−p,向量
p
\boldsymbol p
p 和
e
\boldsymbol e
e 相加可以得到
b
=
(
1
,
1
,
1
)
\boldsymbol b=(1,1,1)
b=(1,1,1):
p
=
5
9
a
=
(
5
9
,
10
9
,
10
9
)
e
=
b
−
p
=
(
4
9
,
−
1
9
,
−
1
9
)
\boldsymbol p=\displaystyle\frac{5}{9}\boldsymbol a=\left(\frac{5}{9},\frac{10}{9},\frac{10}{9}\right)\kern 15pt\boldsymbol e=\boldsymbol b-\boldsymbol p=\left(\frac{4}{9},-\frac{1}{9},-\frac{1}{9}\right)
p=95a=(95,910,910)e=b−p=(94,−91,−91)误差
e
\boldsymbol e
e 垂直于
a
=
(
1
,
2
,
2
)
\boldsymbol a=(1,2,2)
a=(1,2,2):
e
T
a
=
4
9
−
2
9
−
2
9
=
0
\boldsymbol e^T\boldsymbol a=\displaystyle\frac{4}{9}-\frac{2}{9}-\frac{2}{9}=0
eTa=94−92−92=0。
直角三角形
b
,
p
\boldsymbol b,\boldsymbol p
b,p 和
e
\boldsymbol e
e,向量
b
\boldsymbol b
b 分成两部分 —— 沿着直线的分量是
p
\boldsymbol p
p,与直线垂直的部分是
e
\boldsymbol e
e。这两条边
p
\boldsymbol p
p 和
e
\boldsymbol e
e 的长度是
∣
∣
p
∣
∣
=
∣
∣
b
∣
∣
cos
θ
||\boldsymbol p||=||\boldsymbol b||\cos\theta
∣∣p∣∣=∣∣b∣∣cosθ,
∣
∣
e
∣
∣
=
∣
∣
b
∣
∣
sin
θ
||\boldsymbol e||=||\boldsymbol b||\sin\theta
∣∣e∣∣=∣∣b∣∣sinθ。与三角学的点积相匹配:
p
=
a
T
b
a
T
a
a
的长度
∣
∣
p
∣
∣
=
∣
∣
a
∣
∣
∣
∣
b
∣
∣
cos
θ
∣
∣
a
∣
∣
2
∣
∣
a
∣
∣
=
∣
∣
b
∣
∣
cos
θ
(
4.2.3
)
\boldsymbol p=\displaystyle\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}\boldsymbol a\kern 5pt的长度\kern 5pt||\boldsymbol p||=\displaystyle\frac{||\boldsymbol a||||\boldsymbol b||\cos\theta}{||\boldsymbol a||^2}||\boldsymbol a||=||\boldsymbol b||\cos\theta\kern 20pt(4.2.3)
p=aTaaTba的长度∣∣p∣∣=∣∣a∣∣2∣∣a∣∣∣∣b∣∣cosθ∣∣a∣∣=∣∣b∣∣cosθ(4.2.3)点积比上述带有
cos
θ
\cos\theta
cosθ 和
b
\boldsymbol b
b 长度的形式更简洁,本例中会在
cos
θ
=
5
3
3
\cos\theta=\displaystyle\frac{5}{3\sqrt3}
cosθ=335 与
∣
∣
b
∣
∣
=
3
||\boldsymbol b||=\sqrt 3
∣∣b∣∣=3 出现平方根,而投影
p
=
5
9
a
\boldsymbol p=\displaystyle\frac{5}{9}\boldsymbol a
p=95a 没有平方根出现。通过
a
T
b
a
T
a
\displaystyle\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}
aTaaTb 得到
5
9
\displaystyle\frac{5}{9}
95 是比较好的一种方法。
现在来看投影矩阵,在
p
\boldsymbol p
p 的公式中,是哪个矩阵乘
b
\boldsymbol b
b 呢?如果将
x
^
\hat x
x^ 放在
a
\boldsymbol a
a 的右侧,那么就很容易看出这个矩阵:
投影矩阵 P 当矩阵 P = a a T a T a 时, p = a x ^ = a a T b a T a = P b \pmb{投影矩阵\,P}\kern 10pt当矩阵\,{\color{Blue}P=\displaystyle\frac{\boldsymbol a\boldsymbol a^T}{\boldsymbol a^T\boldsymbol a}}\,时,{\color{Blue}p=\boldsymbol a\hat x=\boldsymbol a\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}=P\boldsymbol b} 投影矩阵P当矩阵P=aTaaaT时,p=ax^=aaTaaTb=Pb
P P P 是一列乘一行!列是 a \boldsymbol a a,行是 a T \boldsymbol a^T aT,除以数字 a T a \boldsymbol a^T\boldsymbol a aTa。投影矩阵 P P P 是一个 m × m m\times m m×m 的秩一矩阵,我们对一维子空间做投影,这条直线通过 a \boldsymbol a a,它是 P P P 的列空间。
【例2】求投影在通过
a
=
[
1
2
2
]
\boldsymbol a=\begin{bmatrix}1\\2\\2\end{bmatrix}
a=
122
的直线上的投影矩阵
P
=
a
a
T
a
T
a
P=\displaystyle\frac{\boldsymbol a\boldsymbol a^T}{\boldsymbol a^T\boldsymbol a}
P=aTaaaT。
解: 列
a
\boldsymbol a
a 乘行
a
T
\boldsymbol a^T
aT 再除以
a
T
a
=
9
\boldsymbol a^T\boldsymbol a=9
aTa=9:
投影矩阵
P
=
a
a
T
a
T
a
=
1
9
[
1
2
2
]
[
1
2
2
]
=
1
9
[
1
2
2
2
4
4
2
4
4
]
投影矩阵\kern 10ptP=\displaystyle\frac{\boldsymbol a\boldsymbol a^T}{\boldsymbol a^T\boldsymbol a}=\frac{1}{9}\begin{bmatrix}1\\2\\2\end{bmatrix}\begin{bmatrix}1&2&2\end{bmatrix}=\frac{1}{9}\begin{bmatrix}1&2&2\\2&4&4\\2&4&4\end{bmatrix}
投影矩阵P=aTaaaT=91
122
[122]=91
122244244
这个矩阵可以将任意向量
b
\boldsymbol b
b 投影到
a
\boldsymbol a
a,验证例1中
p
=
P
b
\boldsymbol p=P\boldsymbol b
p=Pb,其中
b
=
(
1
,
1
,
1
)
\boldsymbol b=(1,1,1)
b=(1,1,1):
p
=
P
b
=
1
9
[
1
2
2
2
4
4
2
4
4
]
[
1
1
1
]
=
1
9
[
5
10
10
]
正确
\boldsymbol p=P\boldsymbol b=\frac{1}{9}\begin{bmatrix}1&2&2\\2&4&4\\2&4&4\end{bmatrix}\begin{bmatrix}1\\1\\1\end{bmatrix}=\frac{1}{9}\begin{bmatrix}5\\10\\10\end{bmatrix}\kern 10pt正确
p=Pb=91
122244244
111
=91
51010
正确如果向量
a
\boldsymbol a
a 加倍,矩阵
P
P
P 不变!它仍然是投影在相同的直线上。如果矩阵平方,
P
2
=
P
P^2=P
P2=P。投影两次不会改变任何东西,所以
P
2
=
P
P^2=P
P2=P。对角元素的和
1
9
(
1
+
4
+
4
)
=
1
\displaystyle\frac{1}{9}(1+4+4)=1
91(1+4+4)=1。
矩阵
I
−
P
I-P
I−P 也是投影矩阵,它可以得到三角形的另一边
e
\boldsymbol e
e,即
b
\boldsymbol b
b 的垂直部分。注意
(
I
−
P
)
b
=
b
−
p
(I-P)\boldsymbol b=\boldsymbol b-\boldsymbol p
(I−P)b=b−p 就是左零空间中的
e
\boldsymbol e
e。
当
P
P
P 投影到一个子空间,
I
−
P
I-P
I−P 会投影到垂直的子空间中。这里
I
−
P
I-P
I−P 投影到垂直于
a
\boldsymbol a
a 的平面。
三、投影到一个子空间
下面我们将视角从一维移开,看一下投影在一个
n
n
n 维子空间的情况。
R
m
\textrm{\pmb R}^m
Rm 中有
n
n
n 个向量
a
1
,
a
2
,
⋯
,
a
n
\boldsymbol a_1,\boldsymbol a_2,\cdots,\boldsymbol a_n
a1,a2,⋯,an,假设这些向量都是线性无关的。
问题:
找到离给定向量
b
最近的组合
p
=
x
^
1
a
1
+
x
^
2
a
2
+
⋯
+
x
^
n
a
n
。
{\color{Blue}\pmb{问题:}找到离给定向量\,\boldsymbol b\,最近的组合\,\boldsymbol p=\hat x_1\boldsymbol a_1+\hat x_2\boldsymbol a_2+\cdots+\hat x_n\boldsymbol a_n。}
问题:找到离给定向量b最近的组合p=x^1a1+x^2a2+⋯+x^nan。 我们要将
R
m
\pmb{\textrm R}^m
Rm 中的每个向量
b
\boldsymbol b
b 投影到由
a
′
s
\boldsymbol a's
a′s 所张成的子空间中。
当
n
=
1
n=1
n=1(只有一个向量
a
1
\boldsymbol a_1
a1)时,就是投影到一条直线上,这条直线是
A
A
A 的列空间,此时
A
A
A 只有一列。一般情况下矩阵
A
A
A 有
n
n
n 列,分别是
a
1
,
a
2
,
⋯
,
a
n
\boldsymbol a_1,\boldsymbol a_2,\cdots,\boldsymbol a_n
a1,a2,⋯,an。
R
m
\textrm{\pmb R}^m
Rm 中的组合是列空间中的向量
A
x
A\boldsymbol x
Ax,我们要找到一个特别的组合
p
=
A
x
^
\boldsymbol p=A\hat {\boldsymbol x}
p=Ax^(投影),它离
b
\boldsymbol b
b 是最近的。在
x
^
\hat{\boldsymbol x}
x^ 上的一个帽子表示这是一个最好的选择,它可以得到子空间中最靠近
b
\boldsymbol b
b 的一个向量。当
n
=
1
n=1
n=1 时,选择就是
x
^
=
a
T
b
a
T
a
\hat x=\displaystyle\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}
x^=aTaaTb;当
n
>
1
n>1
n>1 时,就是我们现在要找到的最佳选择
x
^
=
(
x
^
1
,
x
^
2
,
⋯
,
x
^
n
)
\hat {\boldsymbol x}=(\hat x_1,\hat x_2,\cdots,\hat x_n)
x^=(x^1,x^2,⋯,x^n)。
和一维的情况一样,我们同样用三个步骤来计算在
n
n
n 维子空间的投影:找到向量
x
^
\hat{\boldsymbol x}
x^;找到投影
p
=
A
x
^
\boldsymbol p=A\hat{\boldsymbol x}
p=Ax^;找到投影矩阵
P
P
P。
这里的关键就在几何方面!Figure 4.6 中的点线是从
b
\boldsymbol b
b 到子空间最近的点
A
x
^
A\hat{\boldsymbol x}
Ax^,误差向量
b
−
A
x
^
\boldsymbol b-A\hat{\boldsymbol x}
b−Ax^ 垂直于子空间。误差
b
−
A
x
^
\boldsymbol b-A\hat{\boldsymbol x}
b−Ax^ 和所有的基向量
a
1
,
a
2
,
⋯
,
a
n
\boldsymbol a_1,\boldsymbol a_2,\cdots,\boldsymbol a_n
a1,a2,⋯,an 都有一个直角,这
n
n
n 个直角可以得到
n
n
n 个
x
^
\hat{\boldsymbol x}
x^ 的方程:
a 1 T ( b − A x ^ ) = 0 ⋮ a n T ( b − A x ^ ) = 0 或 [ − a 1 T − ⋮ − a n T − ] [ b − A x ^ ] = [ 0 ] ( 4.2.4 ) \begin{matrix}\boldsymbol a_1^T(\boldsymbol b-A\hat{\boldsymbol x})=0\\\vdots\\\boldsymbol a_n^T(\boldsymbol b-A\hat{\boldsymbol x})=0\end{matrix}\kern 5pt或\kern 5pt\begin{bmatrix}-\boldsymbol a_1^T-\\\vdots\\-\boldsymbol a_n^T-\end{bmatrix}\begin{bmatrix}\boldsymbol b-A\hat{\boldsymbol x}\end{bmatrix}=\begin{bmatrix}\,\\0\\\,\end{bmatrix}\kern 15pt(4.2.4) a1T(b−Ax^)=0⋮anT(b−Ax^)=0或 −a1T−⋮−anT− [b−Ax^]= 0 (4.2.4)
行是
a
i
T
\boldsymbol a_i^T
aiT 的据说是
A
T
A^T
AT,这
n
n
n 个方程就是
A
T
(
b
−
A
x
^
)
=
0
A^T(\boldsymbol b-A\hat{\boldsymbol x})=\boldsymbol 0
AT(b−Ax^)=0。
将
A
T
(
b
−
A
x
^
)
=
0
A^T(\boldsymbol b-A\hat{\boldsymbol x})=\boldsymbol 0
AT(b−Ax^)=0 改写成著名的形式
A
T
A
x
^
=
A
T
b
A^TA\hat{\boldsymbol x}=A^T\boldsymbol b
ATAx^=ATb,这个就是
x
^
\hat{\boldsymbol x}
x^ 的方程,系数矩阵是
A
T
A
A^TA
ATA。现在我们就可以按照顺序求出
x
^
、
p
\hat{\boldsymbol x}、\boldsymbol p
x^、p 和
P
P
P。
组合 p = x ^ 1 a 1 + x ^ 2 a 2 + ⋯ + x ^ n a n = A x ^ \boldsymbol p=\hat x_1\boldsymbol a_1+\hat x_2\boldsymbol a_2+\cdots+\hat x_n\boldsymbol a_n=A\hat{\boldsymbol x} p=x^1a1+x^2a2+⋯+x^nan=Ax^ 是由 x ^ \hat{\boldsymbol x} x^ 得到的距离 b \boldsymbol b b 最近的点: 求 x ^ ( n × 1 ) A T ( b − A x ^ ) = 0 或 A T A x ^ = A T b ( 4.2.5 ) 求\,\hat{\boldsymbol x}\,\,(n\times1)\kern 10ptA^T(\boldsymbol b-A\hat{\boldsymbol x})=\boldsymbol 0\,\,或\,\,A^TA\hat{\boldsymbol x}=A^T\boldsymbol b\kern 15pt(4.2.5) 求x^(n×1)AT(b−Ax^)=0或ATAx^=ATb(4.2.5) A T A A^TA ATA 是 n × n n\times n n×n 的对称矩阵,如果 a ′ s \boldsymbol a's a′s 是无关的,则它可逆,解是 x ^ = ( A T A ) − 1 A T b \hat{\boldsymbol x}=(A^TA)^{-1}A^T\boldsymbol b x^=(ATA)−1ATb。 b \boldsymbol b b 在子空间的投影是 p \boldsymbol p p: 求 p ( m × 1 ) p = A x ^ = A ( A T A ) − 1 A T b ( 4.2.6 ) 求\,\boldsymbol p\,\,(m\times1)\kern 15pt\boldsymbol p=A\hat{\boldsymbol x}=A(A^TA)^{-1}A^T\boldsymbol b\kern 35pt(4.2.6) 求p(m×1)p=Ax^=A(ATA)−1ATb(4.2.6)下个公式是投影矩阵,就是(4.2.6)中乘 b \boldsymbol b b 的部分: 求 P ( m × m ) P = A ( A T A ) − 1 A T ( 4.2.7 ) 求\,P\,\,(m\times m)\kern 20ptP=A(A^TA)^{-1}A^T\kern 55pt(4.2.7) 求P(m×m)P=A(ATA)−1AT(4.2.7)
对比一下在直线上的投影,当 A A A 只有一列时: A T A A^TA ATA 就是 a T a \boldsymbol a^T\boldsymbol a aTa。
当 n = 1 , x ^ = a T b a T a , p = a a T b a T a , P = a a T a T a 当\,n=1,\kern 20pt\hat x=\displaystyle\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a},\boldsymbol p=\boldsymbol a\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a},P=\frac{\boldsymbol a\boldsymbol a^T}{\boldsymbol a^T\boldsymbol a} 当n=1,x^=aTaaTb,p=aaTaaTb,P=aTaaaT
这些公式和(4.2.5)、(4.2.6)、(4.2.7)是一致的,数字
a
T
a
\boldsymbol a^T\boldsymbol a
aTa 变成了矩阵
A
T
A
A^TA
ATA,当它是数字时,我们可以直接除以它;当它是矩阵时,我们取它的逆。新的公式里是
(
A
T
A
)
−
1
(A^TA)^{-1}
(ATA)−1 而不是
1
/
a
T
a
1/\boldsymbol a^T\boldsymbol a
1/aTa。列
a
1
,
a
2
,
⋯
,
a
n
\boldsymbol a_1,\boldsymbol a_2,\cdots,\boldsymbol a_n
a1,a2,⋯,an 的线性无关保证了逆矩阵的存在。
关键的步骤是
A
T
(
b
−
A
x
^
)
=
0
A^T(\boldsymbol b-A\hat{\boldsymbol x})=\boldsymbol 0
AT(b−Ax^)=0,在这里使用了几何性质(
e
\boldsymbol e
e 与每个
a
\boldsymbol a
a 正交)。线性代数用快速又漂亮的方法也给出了 “正态方程”(normal equation):
- 子空间是 A A A 的列空间
- 误差向量 b − A x ^ \boldsymbol b-A\hat{\boldsymbol x} b−Ax^ 垂直于这个列空间
- 因此 b − A x ^ \boldsymbol b-A\hat{\boldsymbol x} b−Ax^ 在 A T A^T AT 的零空间中!就是 A T ( b − A x ^ ) = 0 A^T(\boldsymbol b-A\hat{\boldsymbol x})=\boldsymbol 0 AT(b−Ax^)=0 的意思。
左零空间在投影中非常重要, A T A^T AT 的零空间包含误差向量 b − A x ^ \boldsymbol b-A\hat{\boldsymbol x} b−Ax^。向量 b \boldsymbol b b 分成了投影 p \boldsymbol p p 和误差 e = b − p \boldsymbol e=\boldsymbol b-\boldsymbol p e=b−p。投影产生了三个边分别是 p , e \boldsymbol p,\boldsymbol e p,e 和 b \boldsymbol b b 的三角形。
【例3】如果
A
=
[
1
0
1
1
1
2
]
A=\begin{bmatrix}1&0\\1&1\\1&2\end{bmatrix}
A=
111012
,
b
=
[
6
0
0
]
\boldsymbol b=\begin{bmatrix}6\\0\\0\end{bmatrix}
b=
600
,求
x
^
、
p
\hat{\boldsymbol x}、\boldsymbol p
x^、p 和
P
P
P。
解: 计算方阵
A
T
A
A^TA
ATA 和向量
A
T
b
A^T\boldsymbol b
ATb:
A
T
A
=
[
1
1
1
0
1
2
]
[
1
0
1
1
1
2
]
=
[
3
3
3
5
]
,
A
T
b
=
[
1
1
1
0
1
2
]
[
6
0
0
]
=
[
6
0
]
A^TA=\begin{bmatrix}1&1&1\\0&1&2\end{bmatrix}\begin{bmatrix}1&0\\1&1\\1&2\end{bmatrix}=\begin{bmatrix}3&3\\3&5\end{bmatrix},A^T\boldsymbol b=\begin{bmatrix}1&1&1\\0&1&2\end{bmatrix}\begin{bmatrix}6\\0\\0\end{bmatrix}=\begin{bmatrix}6\\0\end{bmatrix}
ATA=[101112]
111012
=[3335],ATb=[101112]
600
=[60]下面求解正态方程
A
T
A
x
^
=
A
T
b
A^TA\hat{\boldsymbol x}=A^T\boldsymbol b
ATAx^=ATb,得到
x
^
\hat{\boldsymbol x}
x^:
[
3
3
3
5
]
[
x
^
1
x
^
2
]
=
[
6
0
]
解得
x
^
=
[
x
^
1
x
^
2
]
=
[
5
−
3
]
(
4.2.8
)
\begin{bmatrix}3&3\\3&5\end{bmatrix}\begin{bmatrix}\hat x_1\\\hat x_2\end{bmatrix}=\begin{bmatrix}6\\0\end{bmatrix}解得\,\hat{\boldsymbol x}=\begin{bmatrix}\hat x_1\\\hat x_2\end{bmatrix}=\begin{bmatrix}\kern 7pt5\\-3\end{bmatrix}\kern 15pt(4.2.8)
[3335][x^1x^2]=[60]解得x^=[x^1x^2]=[5−3](4.2.8)组合
p
=
A
x
^
\boldsymbol p=A\hat{\boldsymbol x}
p=Ax^ 是
b
\boldsymbol b
b 在
A
A
A 列空间上的投影:
p
=
5
[
1
1
1
]
−
3
[
0
1
2
]
=
[
5
2
−
1
]
,误差是
e
=
b
−
p
=
[
1
−
2
1
]
(
4.2.9
)
\boldsymbol p=5\begin{bmatrix}1\\1\\1\end{bmatrix}-3\begin{bmatrix}0\\1\\2\end{bmatrix}=\begin{bmatrix}\kern 7pt5\\\kern 7pt2\\-1\end{bmatrix},误差是\,\boldsymbol e=\boldsymbol b-\boldsymbol p=\begin{bmatrix}\kern 7pt1\\-2\\\kern 7pt1\end{bmatrix}\kern 10pt(4.2.9)
p=5
111
−3
012
=
52−1
,误差是e=b−p=
1−21
(4.2.9)在计算上要检查两个地方,第一,误差
e
=
(
1
,
−
2
,
1
)
\boldsymbol e=(1,-2,1)
e=(1,−2,1) 与两列
(
1
,
1
,
1
)
(1,1,1)
(1,1,1) 和
(
0
,
1
,
2
)
(0,1,2)
(0,1,2) 都垂直;第二,矩阵
P
P
P 乘
b
=
(
6
,
0
,
0
)
\boldsymbol b=(6,0,0)
b=(6,0,0) 能够正确得到
p
=
(
5
,
2
,
−
1
)
\boldsymbol p=(5,2,-1)
p=(5,2,−1)。我们得到矩阵
P
P
P 后,就可以立刻对特定的
b
\boldsymbol b
b 的投影进行求解。
投影矩阵是
P
=
A
(
A
T
A
)
−
1
A
T
P=A(A^TA)^{-1}A^T
P=A(ATA)−1AT,
A
T
A
A^TA
ATA 的行列式是
15
−
9
=
6
15-9=6
15−9=6,很容易就可以求出
(
A
T
A
)
−
1
(A^TA)^{-1}
(ATA)−1。
A
A
A 乘
(
A
T
A
)
−
1
(A^TA)^{-1}
(ATA)−1 乘
A
T
A^T
AT 得到
P
P
P:
(
A
T
A
)
−
1
=
1
6
[
5
−
3
−
3
3
]
,
P
=
1
6
[
5
2
−
1
2
2
2
−
1
2
5
]
(
4.2.10
)
(A^TA)^{-1}=\frac{1}{6}\begin{bmatrix}\kern 7pt5&-3\\-3&\kern 7pt3\end{bmatrix},P=\frac{1}{6}\begin{bmatrix}\kern 7pt5&2&-1\\\kern 7pt2&2&\kern 7pt2\\-1&2&\kern 7pt5\end{bmatrix}\kern 15pt(4.2.10)
(ATA)−1=61[5−3−33],P=61
52−1222−125
(4.2.10)一定有
P
2
=
P
P^2=P
P2=P,因为第二次投影不会改变第一次投影。
警告: 矩阵
P
=
A
(
A
T
A
)
−
1
A
T
P=A(A^TA)^{-1}A^T
P=A(ATA)−1AT 会具有误导性,如果将
(
A
T
A
)
−
1
(A^TA)^{-1}
(ATA)−1 分成
A
−
1
A^{-1}
A−1 乘
(
A
T
)
−
1
(A^T)^{-1}
(AT)−1,然后将它们继续代入
P
P
P,则会发现
P
=
A
A
−
1
(
A
T
)
−
1
A
T
P=AA^{-1}(A^T)^{-1}A^T
P=AA−1(AT)−1AT,此时全部都消去了,看起来就像是
P
=
I
P=I
P=I,是一个单位矩阵。但是这是错误的。
矩阵
A
A
A 是矩形,大部分情况下是没有逆矩阵的。我们不能将
(
A
T
A
)
−
1
(A^TA)^{-1}
(ATA)−1 拆成
A
−
1
A^{-1}
A−1 乘
(
A
T
)
−
1
(A^T)^{-1}
(AT)−1,因为
A
−
1
A^{-1}
A−1 都不一定存在。
以我们的经验来看,牵涉到矩形矩阵的情况大多数都会得到
A
T
A
A^TA
ATA,如果
A
A
A 的列是无关的,则
A
T
A
A^TA
ATA 是可逆的。这个事实很重要,我们会清楚的描述并证明。
A T A 可逆当且仅当 A 的列是线性无关的。 {\color{Blue}A^TA\,可逆当且仅当\,A\,的列是线性无关的。} ATA可逆当且仅当A的列是线性无关的。
证明:
A
T
A
A^TA
ATA 是一个方阵
(
n
×
n
)
(n\times n)
(n×n)。对于每个矩阵
A
A
A,下面会证明
A
T
A
A^TA
ATA 和
A
A
A 有相同的零空间。若
A
A
A 的列线性无关,则它的零空间只有零向量,由于
A
T
A
A^TA
ATA 和
A
A
A 有相同的零空间,可得
A
T
A
A^TA
ATA 可逆。
对于任意的矩阵
A
A
A,如果
x
\boldsymbol x
x 在它的零空间中,则
A
x
=
0
A\boldsymbol x=\boldsymbol 0
Ax=0,左乘
A
T
A^T
AT 得
A
T
A
x
=
0
A^TA\boldsymbol x=\boldsymbol 0
ATAx=0,所以
x
\boldsymbol x
x 也在
A
T
A
A^TA
ATA 的零空间中。
现在从
A
T
A
A^TA
ATA 的零空间开始,我们由
A
T
A
x
=
0
A^TA\boldsymbol x=\boldsymbol 0
ATAx=0 证明
A
x
=
0
A\boldsymbol x=\boldsymbol 0
Ax=0。我们不能在左边乘上
(
A
T
)
−
1
(A^T)^{-1}
(AT)−1,一般来说它不存在。我们左乘
x
T
\boldsymbol x^T
xT:
(
x
T
)
A
T
A
x
=
0
即
(
A
x
)
T
(
A
x
)
=
0
或
∣
∣
A
x
∣
∣
2
=
0
(
4.2.11
)
(\boldsymbol x^T)A^TA\boldsymbol x=0\,即\,(A\boldsymbol x)^T(A\boldsymbol x)=0\,或\,||A\boldsymbol x||^2=0\kern 20pt(4.2.11)
(xT)ATAx=0即(Ax)T(Ax)=0或∣∣Ax∣∣2=0(4.2.11)这里证明了若
A
T
A
x
=
0
A^TA\boldsymbol x=\boldsymbol 0
ATAx=0,那么
A
x
A\boldsymbol x
Ax 的长度为零,所以
A
x
=
0
A\boldsymbol x=\boldsymbol 0
Ax=0。每个向量
x
\boldsymbol x
x 在其中一个的零空间中也在另外一个的零空间。所以
A
T
A
A^TA
ATA 和
A
A
A 有相同的零空间。如果
A
T
A
A^TA
ATA 有相关列,那么
A
A
A 也一样;如果
A
T
A
A^TA
ATA 是无关列,则
A
A
A 也是,这种情况很好,此时
A
T
A
A^TA
ATA 可逆。
当
A
的列线性无关时,
A
T
A
是方形、对称且可逆的矩阵。
{\color{Blue}当\,A\,的列线性无关时,A^TA\,是方形、对称且可逆的矩阵。}
当A的列线性无关时,ATA是方形、对称且可逆的矩阵。再次强调:
A
T
A
A^TA
ATA 是(
n
×
m
n\times m
n×m)乘
(
m
×
n
)
(m\times n)
(m×n) ,则
A
T
A
A^TA
ATA 是方阵(
n
×
n
n\times n
n×n)。对称是因为
(
A
T
A
)
T
=
A
T
(
A
T
)
T
=
A
T
A
(A^TA)^T=A^T(A^T)^T=A^TA
(ATA)T=AT(AT)T=ATA。我们刚刚证明了当
A
A
A 的列线性无关时,
A
T
A
A^TA
ATA 可逆。注意无关列和相关列的差别:
A
T
A
A
T
A
A
T
A
A
T
A
[
1
1
0
2
2
0
]
[
1
2
1
2
0
0
]
=
[
2
4
4
8
]
[
1
1
0
2
2
1
]
[
1
2
1
2
0
1
]
=
[
2
4
4
9
]
相关
奇异
无关
可逆
\begin{matrix}\kern 14ptA^T\kern 31ptA\kern 37ptA^TA&\kern 13ptA^T\kern 31ptA\kern 35ptA^TA\\\begin{bmatrix}1&1&0\\2&2&0\end{bmatrix}\begin{bmatrix}1&2\\1&2\\0&0\end{bmatrix}=\begin{bmatrix}2&4\\4&8\end{bmatrix}&\begin{bmatrix}1&1&0\\2&2&1\end{bmatrix}\begin{bmatrix}1&2\\1&2\\0&1\end{bmatrix}=\begin{bmatrix}2&4\\4&9\end{bmatrix}\\\kern 51pt相关\kern 28pt奇异&\kern 51pt无关\kern 28pt可逆\end{matrix}
ATAATA[121200]
110220
=[2448]相关奇异ATAATA[121201]
110221
=[2449]无关可逆非常简短的总结:为了求出投影
p
=
x
^
1
a
1
+
x
^
2
a
2
+
⋯
+
x
^
n
a
n
\boldsymbol p=\hat x_1\boldsymbol a_1+\hat x_2\boldsymbol a_2+\cdots+\hat x_n\boldsymbol a_n
p=x^1a1+x^2a2+⋯+x^nan,求解
A
T
A
x
^
=
A
T
b
A^TA\hat{\boldsymbol x}=A^T\boldsymbol b
ATAx^=ATb,得到
x
^
\hat{\boldsymbol x}
x^。投影
p
=
A
x
^
\boldsymbol p=A\hat{\boldsymbol x}
p=Ax^,误差是
e
=
b
−
p
=
b
−
A
x
^
\boldsymbol e=\boldsymbol b-\boldsymbol p=\boldsymbol b-A\hat{\boldsymbol x}
e=b−p=b−Ax^。投影矩阵
P
=
A
(
A
T
A
)
−
1
A
T
P=A(A^TA)^{-1}A^T
P=A(ATA)−1AT 得到
p
=
P
b
\boldsymbol p=P\boldsymbol b
p=Pb。
投影矩阵满足
P
2
=
P
。从
b
到子空间
C
(
A
)
的距离是
∣
∣
e
∣
∣
。
\pmb{投影矩阵满足\,P^2=P。从\,\boldsymbol b\,到子空间\,\pmb C(A)\,的距离是\,||\boldsymbol e||。}
投影矩阵满足P2=P。从b到子空间C(A)的距离是∣∣e∣∣。
四、主要内容总结
- b \boldsymbol b b 在通过 a \boldsymbol a a 的直线上的投影是 p = a x ^ = a a T b a T a \boldsymbol p=\boldsymbol a\hat x=\boldsymbol a\displaystyle \frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a} p=ax^=aaTaaTb。
- 秩一的投影矩阵 P = a a T a T a P=\displaystyle\frac{\boldsymbol a\boldsymbol a^T}{\boldsymbol a^T\boldsymbol a} P=aTaaaT 乘 b \boldsymbol b b 得到 p \boldsymbol p p。
- 把 b \boldsymbol b b 投影到子空间会有 e = b − p \boldsymbol e=\boldsymbol b-\boldsymbol p e=b−p 垂直于这个子空间。
- 当 A A A 有列满秩 n n n 时,由方程 A T A x ^ = A T b A^TA\hat{\boldsymbol x}=A^T\boldsymbol b ATAx^=ATb 可以得到 x ^ \hat{\boldsymbol x} x^ 和 p = A x ^ \boldsymbol p=A\hat{\boldsymbol x} p=Ax^。
- 投影矩阵 P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)−1AT,有 P T = P 、 P 2 = P 、 P b = p P^T=P、P^2=P、P\boldsymbol b=\boldsymbol p PT=P、P2=P、Pb=p。
五、例题
【例4】将
b
=
(
3
,
4
,
4
)
\boldsymbol b=(3,4,4)
b=(3,4,4) 投影在一条过
a
=
(
2
,
2
,
1
)
\boldsymbol a=(2,2,1)
a=(2,2,1) 的直线上,然后将它投影在同时包含
a
∗
=
(
1
,
0
,
0
)
\boldsymbol a^*=(1,0,0)
a∗=(1,0,0) 的平面上。验证第一个误差向量
b
−
p
\boldsymbol b-\boldsymbol p
b−p 垂直于
a
\boldsymbol a
a,第二个误差向量
e
∗
=
b
−
p
∗
\boldsymbol e^*=\boldsymbol b-\boldsymbol p^*
e∗=b−p∗ 也垂直于
a
∗
\boldsymbol a^*
a∗。
求出将向量投影在包含有
a
\boldsymbol a
a 和
a
∗
\boldsymbol a^*
a∗ 平面上的
3
×
3
3\times3
3×3 的投影矩阵
P
P
P。找到一个在这个平面上的投影是零向量的向量,为什么它就是误差
e
∗
\boldsymbol e^*
e∗?
解:
b
\boldsymbol b
b 在通过
a
=
(
2
,
2
,
1
)
\boldsymbol a=(2,2,1)
a=(2,2,1) 直线上的投影是
p
=
2
a
\boldsymbol p=2\boldsymbol a
p=2a:
投影在直线
p
=
a
T
b
a
T
a
a
=
18
9
(
2
,
2
,
1
)
=
(
4
,
4
,
2
)
=
2
a
\pmb{投影在直线}\kern 20pt\boldsymbol p=\displaystyle\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}\boldsymbol a=\frac{18}{9}(2,2,1)=(4,4,2)=2\boldsymbol a
投影在直线p=aTaaTba=918(2,2,1)=(4,4,2)=2a误差向量
e
=
b
−
p
=
(
−
1
,
0
,
2
)
\boldsymbol e=\boldsymbol b-\boldsymbol p=(-1,0,2)
e=b−p=(−1,0,2) 垂直于
a
=
(
2
,
2
,
1
)
\boldsymbol a=(2,2,1)
a=(2,2,1),所以
p
\boldsymbol p
p 是正确的。
a
=
(
2
,
2
,
1
)
\boldsymbol a=(2,2,1)
a=(2,2,1) 和
a
∗
=
(
1
,
0
,
0
)
\boldsymbol a^*=(1,0,0)
a∗=(1,0,0) 所形成的平面是
A
=
[
a
a
∗
]
A=\begin{bmatrix}\boldsymbol a&\boldsymbol a^*\end{bmatrix}
A=[aa∗] 的列空间:
A
=
[
2
1
2
0
1
0
]
,
A
T
A
=
[
9
2
2
1
]
,
(
A
T
A
)
−
1
=
1
5
[
1
−
2
−
2
9
]
,
P
=
1
5
[
5
0
0
0
4
2
0
2
1
]
A=\begin{bmatrix}2&1\\2&0\\1&0\end{bmatrix},\kern 5ptA^TA=\begin{bmatrix}9&2\\2&1\end{bmatrix},\kern 5pt(A^TA)^{-1}=\frac{1}{5}\begin{bmatrix}\kern 7pt1&-2\\-2&\kern 7pt9\end{bmatrix},\kern 5ptP=\frac{1}{5}\begin{bmatrix}5&0&0\\0&4&2\\0&2&1\end{bmatrix}
A=
221100
,ATA=[9221],(ATA)−1=51[1−2−29],P=51
500042021
可得
p
∗
=
P
b
=
(
3
,
24
5
,
12
5
)
\boldsymbol p^*=P\boldsymbol b=\displaystyle(3,\frac{24}{5},\frac{12}{5})
p∗=Pb=(3,524,512),误差向量
e
∗
=
b
−
p
∗
=
(
0
,
−
4
5
,
8
5
)
\boldsymbol e^*=\boldsymbol b-\boldsymbol p^*=(0,-\displaystyle\frac{4}{5},\frac{8}{5})
e∗=b−p∗=(0,−54,58) 垂直于
a
\boldsymbol a
a 和
a
∗
\boldsymbol a^*
a∗。
e
∗
\boldsymbol e^*
e∗ 在
P
P
P 的零空间,它的投影是零!注意
P
2
=
P
=
P
T
P^2=P=P^T
P2=P=PT。
【例5】假设测量你的心跳每分钟是 x = 70 x=70 x=70,然后是 x = 80 x=80 x=80,再然后是 x = 120 x=120 x=120。这三个方程 A x = b A\boldsymbol x=\boldsymbol b Ax=b 只有一个未知数,且 A = [ 1 1 1 ] A=\begin{bmatrix}1&1&1\end{bmatrix} A=[111], b = ( 70 , 80 , 120 ) \boldsymbol b=(70,80,120) b=(70,80,120)。则最好的 x ^ \hat{\boldsymbol x} x^ 是 70 , 80 , 120 70,80,120 70,80,120 的 _____。使用微积分和投影:
- 由 d E d x = 0 \displaystyle\frac{\textrm dE}{\textrm dx}=0 dxdE=0,最小化 E = ( x − 70 ) 2 + ( x − 80 ) 2 + ( x − 120 ) 2 E=(x-70)^2+(x-80)^2+(x-120)^2 E=(x−70)2+(x−80)2+(x−120)2。
- 将 b \boldsymbol b b 投影到 a = ( 1 , 1 , 1 ) \boldsymbol a=(1,1,1) a=(1,1,1),求解 x ^ = a T b a T a \hat x=\displaystyle\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a} x^=aTaaTb。
解: 最接近高度 70 、 80 、 120 70、80、120 70、80、120 的水平线是平均值 x ^ = 90 \hat x=90 x^=90: d E d x = 2 ( x − 70 ) + 2 ( x − 80 ) + 2 ( x − 120 ) = 0 解得 x ^ = 70 + 80 + 120 3 = 90 \frac{\textrm dE}{\textrm dx}=2(x-70)+2(x-80)+2(x-120)=0\kern 5pt解得\kern 5pt\hat x=\frac{70+80+120}{3}=90 dxdE=2(x−70)+2(x−80)+2(x−120)=0解得x^=370+80+120=90 用投影求解: x ^ = a T b a T a = ( 1 , 1 , 1 ) T ( 70 , 80 , 120 ) ( 1 , 1 , 1 ) T ( 1 , 1 , 1 ) = 70 + 80 + 120 3 = 90 用投影求解:\hat x=\frac{\boldsymbol a^T\boldsymbol b}{\boldsymbol a^T\boldsymbol a}=\frac{(1,1,1)^T(70,80,120)}{(1,1,1)^T(1,1,1)}=\frac{70+80+120}{3}=90 用投影求解:x^=aTaaTb=(1,1,1)T(1,1,1)(1,1,1)T(70,80,120)=370+80+120=90在递归最小二乘法中,第四个测量数据 130 130 130 将会把平均值 x ^ o l d = 90 \hat x_{old}=90 x^old=90 变成 x ^ n e w = 100 \hat x_{new}=100 x^new=100。验证新的公式 x ^ n e w = x ^ o l d + 1 4 ( 130 − x ^ o l d ) \hat x_{new}=\hat x_{old}+\displaystyle\frac{1}{4}(130-\hat x_{old}) x^new=x^old+41(130−x^old)。当我们有一个新的测量值时,不需要把旧的测量值再次平均。