本节是“正交”部分的最后内容。Gram-Schmidt 过程可以将原空间的一组基转变为标准正交基。
文章目录
1. 标准正交向量 Orthonormal vectors
满足如下条件的向量
q
1
,
q
2
…
,
q
n
q_1,q_2\dots, q_n
q1,q2…,qn为标准正交向量:
q
i
T
q
j
=
{
0
,
i
≠
j
1
,
i
=
j
q _ { i } ^ { T } q _ { j } = \left\{ \begin{array} { l } { 0 , i \neq j } \\ { 1 , i = j } \end{array} \right.
qiTqj={0,i=j1,i=j
换而言之,它们都具有单位长度 1,并且彼此正交。标准正交向量是线性无关的。很多线性代数的计算都建立在标准正交基础上,它让一切变得简单可控(从来不上溢或者下溢)。
2. 标准正交矩阵 Orthonormal matrix
如果矩阵
Q
Q
Q的列向量为标准正交向量,则
Q
T
Q
=
I
Q^TQ=I
QTQ=I为单位阵。
Q
T
Q
=
I
Q ^ { T } Q = I
QTQ=I
注意这里的矩阵 Q Q Q可以不是方阵。我们已经学过了一系列矩阵,包括三角阵、对角阵、置换矩阵、对称矩阵、行最简梯形矩阵、投影矩阵等等,现在有了“标准正交”矩阵。
一个标准正交的方阵我们称之为“正交矩阵”(orthogonal matrix)。如果 Q Q Q为方阵,因为 Q T Q = I Q^TQ=I QTQ=I,所以 Q T = Q − 1 Q^T=Q^{-1} QT=Q−1。 注意必须是方阵,必须是标准正交,而不只是正交。
N:当矩阵为标准正交矩阵,而且为方阵时,才称为是正交矩阵。
例如,置换矩阵 Q = [ 0 0 1 1 0 0 0 1 0 ] Q = \left[ \begin{array} { l l l } { 0 } & { 0 } & { 1 } \\ { 1 } & { 0 } & { 0 } \\ { 0 } & { 1 } & { 0 } \end{array} \right] Q= 010001100 ,则有 Q T = [ 0 1 0 0 0 1 1 0 0 ] Q^T=\left[ \begin{array} { l l l } { 0 } & { 1 } & { 0 } \\ { 0 } & { 0 } & { 1 } \\ { 1 } & { 0 } & { 0 } \end{array} \right] QT= 001100010 ,两者皆为正交矩阵,并且两者乘积为单位阵。
再例如, Q = [ cos θ − sin θ sin θ cos θ ] Q=\left[ \begin{array} { c c } { \operatorname { cos } \theta } & { - \operatorname { sin } \theta } \\ { \operatorname { sin } \theta } & { \operatorname { cos } \theta } \end{array} \right] Q=[cosθsinθ−sinθcosθ]为正交矩阵。而矩阵 [ 1 1 1 − 1 ] \left[ \begin{array} { c c } { 1 } & { 1 } \\ { 1 } & { - 1 } \end{array} \right] [111−1]并不是正交矩阵,而通过调整得到的矩阵 Q = 1 2 [ 1 1 1 − 1 ] Q=\frac { 1 } { \sqrt { 2 } } \left[ \begin{array} { c c } { 1 } & { 1 } \\ { 1 } & { - 1 } \end{array} \right] Q=21[111−1]为正交矩阵,在矩阵外面要除以向量的长度。
再例如, Q = 1 2 [ 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ] Q=\frac{1}{2}\left[ \begin{array} { c c c c } { 1 } & { 1 } & { 1 } & { 1 } \\ { 1 } & { - 1 } & { 1 } & { - 1 } \\ { 1 } & { 1 } & { - 1 } & { - 1 } \\ { 1 } & { - 1 } & { - 1 } & { 1 } \end{array} \right] Q=21 11111−11−111−1−11−1−11 ,也是由-1 和+1 组成的正交矩阵,这种类型的矩阵称之为阿达玛 Hadamard 矩阵,不同阶数矩阵性质不同并且没有规律,无从判断几阶的阿达玛矩阵为正交阵。
再给一个长方形矩阵的例子,其列向量为标准正交:
Q
=
1
3
[
1
−
2
2
−
1
2
2
]
Q=\frac{1}{3}\left[ \begin{array} { l l } { 1 } & { - 2 } \\ { 2 } & { - 1 } \\ { 2 } & { 2 } \end{array} \right]
Q=31
122−2−12
,我们可以拓展其成为正交矩阵
[
1
−
2
2
2
−
1
−
2
2
2
1
]
\left[ \begin{array} { c c c } { 1 } & { - 2 } & { 2 } \\ { 2 } & { - 1 } & { - 2 } \\ { 2 } & { 2 } & { 1 } \end{array} \right]
122−2−122−21
3. 标准正交列向量的优势 Orthonormal columns are good
若
Q
Q
Q的列向量为标准正交向量,则投影到
Q
Q
Q的列空间的投影矩阵为:
P
=
Q
(
Q
T
Q
)
−
1
Q
T
P=Q( Q ^ { T } Q ) ^ { - 1 } Q ^ { T }
P=Q(QTQ)−1QT
证明如下:
A
T
A
x
^
=
A
T
b
A
x
^
=
p
p
=
P
b
\left. \begin{array} { c } { A ^ { T } A \hat { x } = A ^ { T } b } \\ { A \hat { x } = p } \\ { p = P b } \end{array} \right.
ATAx^=ATbAx^=pp=Pb
x ^ = ( A T A ) − 1 A T b \hat { x } = ( A ^ { T } A ) ^ { - 1 } A ^ { T } b x^=(ATA)−1ATb
A x ^ = A ( A T A ) − 1 A T b A\hat { x } = A( A ^ { T } A ) ^ { - 1 } A ^ { T } b Ax^=A(ATA)−1ATb
P = A ( A T A ) − 1 A T P=A( A ^ { T } A ) ^ { - 1 } A ^ { T } P=A(ATA)−1AT
P = Q ( Q T Q ) − 1 Q T P=Q( Q ^ { T } Q ) ^ { - 1 } Q ^ { T } P=Q(QTQ)−1QT
因为 Q T Q = I Q^TQ=I QTQ=I,所以 P = Q Q T P=QQ^T P=QQT。 这种情况会降低很多运算量。
如果 Q Q Q为方阵,则 P = I P=I P=I,因为 Q Q Q的列向量线性无关, Q Q Q的列向量张成了整个空间,投影过程不会对向量有任何改变。当Q为方阵时, Q − 1 = Q T Q^{-1}=Q^T Q−1=QT。
投影矩阵的性质为:投影矩阵为对称矩阵( P T = P P^T=P PT=P);如果投影两次,还会在原有的位置( P 2 = P P^2=P P2=P),代入即为 ( Q Q T ) ( Q Q T ) = ( Q Q T ) (QQ^T)(QQ^T)=(QQ^T) (QQT)(QQT)=(QQT)。这是由于 Q T Q = I Q^TQ=I QTQ=I。
在很多复杂问题中使用标准正交向量之后都变得简单。如果基为标准正交,则方程 A T A x ^ = A T b A ^TA \hat{x} =A^Tb ATAx^=ATb -> Q T Q x ^ = Q T b Q ^TQ \hat{x} =Q^Tb QTQx^=QTb的解变为 x ^ = Q T b \hat{x} =Q^Tb x^=QTb, x ^ \hat{x} x^的分量 x i ^ \hat{x_i} xi^就等于 q i T b q_i^Tb qiTb。
4. 施密特正交化 Gram-Schmidt(A->Q)
从两个线性无关的向量 a 和 b 开始,它们张成了一个空间,我们的目标是希望找到两个标准正交的向量 q 1 q_1 q1, q 2 q_2 q2能张成同样的空间。Schmidt 给出的结论是如果我们有一组正交基 A 和 B,那么我们令它们除以自己的长度就得到标准正交基:
q 1 = A ∥ A ∥ , q 2 = B ∥ B ∥ q _ { 1 } = \frac { A } { \| A \| },q _ { 2 } = \frac { B } { \| B \| } q1=∥A∥A,q2=∥B∥B
Gram 做了重要的工作,令 A=a,我们在 a 和 b 张成的空间中,取与 A 正交向量做成标准正交基,方法就是将 b 投影到 a 的方向,然后取 B = b − p B=b-p B=b−p(B 就是之前谈论过的误差e 的方向)
B = b − A T b A T A A B = b - \frac { A ^ { T } b } { A ^ { T } A } A B=b−ATAATbA,注意这个小节中 A,B,C 均为向量。
如果从等式两端左乘
A
T
A^T
AT,可以得到
A
T
B
=
0
A^TB=0
ATB=0。
如果从三个线性无关的向量 a、 b 和 c 出发,则可以通过从 c 中减去其在 A 和B两个方向的投影来得到C。
C = c − A T c A T A A − B T c B T B B C = c - \frac { A ^ { T } c } { A ^ { T } A } A-\frac { B ^ { T } c } { B ^ { T } B } B C=c−ATAATcA−BTBBTcB
例如 a = [ 1 1 1 ] , b = [ 1 0 2 ] a = \left[ \begin{array} { l } { 1 } \\ { 1 } \\ { 1 } \end{array} \right] , b = \left[ \begin{array} { l } { 1 } \\ { 0 } \\ { 2 } \end{array} \right] a= 111 ,b= 102 ,则有 A = a , B = [ 1 0 2 ] − 3 3 [ 1 1 1 ] = [ 0 1 − 1 ] A=a,B=\left[ \begin{array} { l } { 1 } \\ { 0 } \\ { 2 } \end{array} \right] - \frac { 3 } { 3 } \left[ \begin{array} { l } { 1 } \\ { 1 } \\ { 1 } \end{array} \right] = \left[ \begin{array} { l } { 0 } \\ { 1 } \\ { -1 } \end{array} \right] A=a,B= 102 −33 111 = 01−1 ,验证计算得到 A T B = 0 A^TB=0 ATB=0。
写出
q
1
,
q
2
q_1,q_2
q1,q2所组成的矩阵为:
Q
=
[
q
1
q
2
]
=
[
1
3
0
1
3
−
1
2
1
3
1
2
]
Q = \left[ \begin{array} { l l } { q _ { 1 } } & { q _ { 2 } } \end{array} \right] = \left[ \begin{array} { c c } { \frac { 1 } { \sqrt { 3 } } } & { 0 } \\ { \frac { 1 } { \sqrt { 3 } } } & { \frac { - 1 } { \sqrt { 2 } } } \\ { \frac { 1 } { \sqrt { 3 } } } & { \frac { 1 } { \sqrt { 2 } } } \end{array} \right]
Q=[q1q2]=
31313102−121
Q Q Q列向量的空间就是 a 和 b 张成的空间。 因此矩阵 Q 和矩阵 A = [ 1 1 1 0 1 2 ] A=\left[ \begin{array} { l l } { 1 } & { 1 } \\ { 1 } & { 0 } \\ { 1 } & { 2 } \end{array} \right] A= 111102 有相同的列空间。
Q的列空间与A的列空间是什么关系呢?它们是同一个列空间。
在消元过程中,我们可以对矩阵进行分解得到 A = L U A=LU A=LU,而在对 A A A做施密特正交化的过程也可以用矩阵运算的方式表示为 A = Q R A=QR A=QR。此处 R R R为上三角阵。
R
R
R为上三角阵,则
a
1
T
q
2
=
0
a_1^Tq_2=0
a1Tq2=0。这是因为
a
1
a_1
a1就是
q
1
q_1
q1的方向,而
q
1
q_1
q1和
q
2
q_2
q2为标准正交向量,因此
q
2
q_2
q2 的方向与
a
1
a_1
a1垂直,因此内积为 0。
R
R
R 在
Q
Q
Q右侧相当于对 Q 做列操作,即
A
A
A的列向量是
Q
Q
Q列向量的线性组合,而
Q
Q
Q为
A
A
A 列空间的一组标准正交基,则
R
R
R的元素实际上是
A
A
A的列向量基于
Q
Q
Q 这组标准正交基的权。
左下角为0,但需要注意的是右上角并不一定为0。
采用矩阵的 QR 分解来帮助求解 A x = b Ax=b Ax=b的问题,最大的优势是提高了数值的稳定性。