1.正交向量
正交就是垂直,向量的正交:
x
x
x与
y
y
y正交,则
x
T
y
=
y
T
x
=
0
x^Ty=y^Tx=0
xTy=yTx=0。最常见的例子就是直角三角形中的勾股定理,设长边向量为
x
x
x,短边为
y
y
y,斜边为
x
+
y
x+y
x+y,向量的长度用
∣
∣
x
∣
∣
=
x
T
x
||x||=x^Tx
∣∣x∣∣=xTx表示:
∣
∣
x
∣
∣
2
+
∣
∣
y
∣
∣
2
=
∣
∣
x
+
y
∣
∣
2
(
1
)
||x||^2+||y||^2=||x+y||^2(1)
∣∣x∣∣2+∣∣y∣∣2=∣∣x+y∣∣2(1)
实例:
x
=
[
1
2
3
]
,
y
=
[
2
−
1
0
]
,
x
+
y
=
[
3
1
3
]
,
∣
∣
x
∣
∣
2
=
14
,
∣
∣
y
∣
∣
2
=
15
,
∣
∣
x
+
y
∣
∣
2
=
19
x=\begin{bmatrix}1\\2\\3\end{bmatrix},y=\begin{bmatrix}2\\-1\\0\end{bmatrix},x+y=\begin{bmatrix}3\\1\\3\end{bmatrix},||x||^2=14,||y||^2=15,||x+y||^2=19
x=⎣
⎡123⎦
⎤,y=⎣
⎡2−10⎦
⎤,x+y=⎣
⎡313⎦
⎤,∣∣x∣∣2=14,∣∣y∣∣2=15,∣∣x+y∣∣2=19
将式1展开:
x
T
x
+
y
T
y
=
(
x
+
y
)
T
(
x
+
y
)
=
x
T
x
+
x
T
y
+
y
T
x
+
y
T
y
x^Tx+y^Ty=(x+y)^T(x+y)=x^Tx+x^Ty+y^Tx+y^Ty
xTx+yTy=(x+y)T(x+y)=xTx+xTy+yTx+yTy移项可得
x
T
y
+
y
T
x
=
0
x^Ty+y^Tx=0
xTy+yTx=0实际上
x
T
y
x^Ty
xTy和
y
T
x
y^Tx
yTx的计算结果是一样的,因此得出:
2
x
T
y
=
0
即
x
T
y
=
0
2x^Ty=0即x^Ty=0
2xTy=0即xTy=0
2.正交子空间
两个子空间正交,则两空间内的任意两向量都正交。黑板和地板并不是三维空间的正交子空间,他们有共线的部分,连接线同时属于两个子空间,它自己不可能垂直于自己(除非是0向量)。
2.1零空间与行空间正交关系
矩阵的零空间与行空间是正交的。矩阵
A
A
A的行空间就是其各列的线性组合,零空间是满足
A
X
=
0
AX=0
AX=0的所有解,本质上可以写成:
[
A
的第一行
A
的第二行
.
.
.
A
的第
n
行
]
[
x
1
x
2
.
.
.
x
N
]
=
0
\begin{bmatrix}A的第一行\\A的第二行\\...\\A的第n行\end{bmatrix}\begin{bmatrix}x_1\\x_2\\...\\x_N\end{bmatrix}=0
⎣
⎡A的第一行A的第二行...A的第n行⎦
⎤⎣
⎡x1x2...xN⎦
⎤=0
因此
A
A
A的行空间与零空间正交,这一点从开篇图片也能看出来。矩阵的行空间和零空间实际上是把一个
R
n
R^n
Rn空间分割成了两个正交子空间。例如矩阵:
A
=
[
1
2
5
2
4
10
]
,
r
a
n
k
(
A
)
=
1
,
r
a
n
k
(
N
(
A
)
)
=
2
A=\begin{bmatrix}1&2&5\\2&4&10\end{bmatrix},rank(A)=1,rank(N(A))=2
A=[1224510],rank(A)=1,rank(N(A))=2
X
=
[
−
2
1
0
]
[
−
5
0
1
]
是它的一组解,其零空间为
N
(
A
)
=
c
1
[
−
2
1
0
]
+
c
2
[
−
5
0
1
]
X=\begin{bmatrix}-2\\1\\0\end{bmatrix}\begin{bmatrix}-5\\0\\1\end{bmatrix}是它的一组解,其零空间为N(A)=c_1\begin{bmatrix}-2\\1\\0\end{bmatrix}+c_2\begin{bmatrix}-5\\0\\1\end{bmatrix}
X=⎣
⎡−210⎦
⎤⎣
⎡−501⎦
⎤是它的一组解,其零空间为N(A)=c1⎣
⎡−210⎦
⎤+c2⎣
⎡−501⎦
⎤
矩阵行空间为
R
(
A
)
=
c
3
[
1
2
5
]
R(A)=c_3\begin{bmatrix}1&2&5\end{bmatrix}
R(A)=c3[125]
矩阵的行空间和零空间不止是简单的正交关系,二者的维数之和是n,因此又称行空间和零空间为
R
n
R^n
Rn空间内的正交补。
3. A T A A^TA ATA矩阵
如果一个方程组
A
X
=
b
AX=b
AX=b无解,意味着
b
b
b根本不在
A
A
A的列空间里。实际上有很多现实的例子,比如说测量一个卫星的位置,测量了一千次,而实际上可能只需要6个参数去确定卫星的实际位置;随着测量次数的增多,方程组的规模越来越大,那么
b
b
b里面有可能混入太多的“坏数据”导致其不在
A
A
A的列空间中。如何在无解的情况下强行去求解呢?这就需要用到
A
T
A
A^TA
ATA
例如:
A
=
[
1
1
1
2
1
5
]
A=\begin{bmatrix}1&1\\1&2\\1&5\end{bmatrix}
A=⎣
⎡111125⎦
⎤,可以直接看出,
A
A
A不满秩,所以
A
X
=
b
AX=b
AX=b无解,利用
A
T
A
A^TA
ATA改造原方程组:
A
T
A
X
^
=
A
T
b
A^TA\hat{X}=A^Tb
ATAX^=ATb
值得一提的是,改造过后的解,已经跟原来的解不是一个东西了,所以用
X
^
\hat{X}
X^来表示。
A
T
A
=
[
3
8
8
30
]
A^TA=\begin{bmatrix}3&8\\8&30\end{bmatrix}
ATA=[38830]很明显这是一个可逆矩阵,因此可以求解方程组了。但
A
T
A
A^TA
ATA并不是总能得到可逆矩阵,例如:
A
=
[
1
3
1
3
1
3
]
,
A
T
A
=
[
3
9
9
27
]
A=\begin{bmatrix}1&3\\1&3\\1&3\end{bmatrix},A^TA=\begin{bmatrix}3&9\\9&27\end{bmatrix}
A=⎣
⎡111333⎦
⎤,ATA=[39927]这并不是一个可逆矩阵,因此方程组仍然无解。从上面的例子可以看出,当
A
A
A的列是无关组时,才可以使用
A
T
A
A^TA
ATA构造可逆矩阵。