正交矩阵
一组标准正交向量Orthonormal vectors满足:
q i T q j = { 0 i ≠ j 1 i = j \mathbf{q}_{i}^{T} \mathbf{q}_{j}=\left\{\begin{array}{ll} 0 & i \neq j \\ 1 & i=j \end{array}\right. qiTqj={01i=ji=j
“标准”是指各个向量长度都为1,“正交”指任意两个向量正交;标准正交基础让问题变得简单可控
将一组标准正交向量作为列向量,得到的矩阵为
Q
\mathbf Q
Q
根据上面的性质,这个矩阵一定满足
Q
T
Q
=
[
q
1
T
q
2
T
q
3
T
]
[
q
1
q
2
q
3
]
=
I
\mathbf Q^T\mathbf Q=\begin{bmatrix}q_1^T\\q_2^T\\q_3^T\end{bmatrix}\begin{bmatrix}q_1&q_2&q_3\end{bmatrix}=\mathbf I
QTQ=⎣
⎡q1Tq2Tq3T⎦
⎤[q1q2q3]=I(但是
Q
T
Q
≠
I
\mathbf Q^T\mathbf Q\neq \mathbf I
QTQ=I,除非
Q
\mathbf Q
Q为方阵)
ps. Q \mathbf Q Q不一定为方阵,例如三维空间中两个正交的基向量,也可以构成一个 Q \mathbf Q Q;
但是,如果 Q \mathbf Q Q为方阵,则其列向量就是 R n \mathbf R^n Rn空间的一组标准正交基( n n n个长度为1的 n × 1 n \times 1 n×1基向量)
当
Q
\mathbf Q
Q为方阵时,这样以一组标准正交基作为列向量的矩阵称为正交矩阵 Orthogonal matrix
正交矩阵满足
Q
T
Q
=
Q
Q
T
=
I
\mathbf Q^T\mathbf Q=\mathbf Q\mathbf Q^T=\mathbf I
QTQ=QQT=I,
Q
−
1
=
Q
T
\mathbf Q^{-1}=\mathbf Q^T
Q−1=QT
正交矩阵特性
- 正交矩阵
Q
\mathbf Q
Q几何上对应单纯的旋转
进而,任意正交矩阵的乘积 Q 1 Q 2 \mathbf Q_1\mathbf Q_2 Q1Q2仍为正交矩阵 - 正交矩阵与向量相乘,不改变其长度
∥ Q x ∥ 2 = ( Q x ) T Q x = x T Q T Q x = ∥ x ∥ 2 \|\mathbf Q\mathbf x\|^2=(\mathbf Q\mathbf x)^T\mathbf Q\mathbf x=\mathbf x^T\mathbf Q^T\mathbf Q\mathbf x=\|\mathbf x\|^2 ∥Qx∥2=(Qx)TQx=xTQTQx=∥x∥2
或者说, Q \mathbf Q Q对应的线性变换是单纯的旋转,不会拉伸基向量、不改变基向量之间的正交关系,从而该变换不会改变向量长度 - 正交矩阵
Q
\mathbf Q
Q特征值满足
∣
λ
∣
=
1
|\lambda|=1
∣λ∣=1(可能为复数)
证明:由 Q x = λ x \mathbf Q\mathbf x=\lambda\mathbf x Qx=λx得到 ∥ Q x ∥ 2 = λ 2 ∥ x ∥ 2 \|\mathbf Q\mathbf x\|^2=\lambda^2\|\mathbf x\|^2 ∥Qx∥2=λ2∥x∥2;根据上面,又有 ∥ Q x ∥ 2 = ∥ x ∥ 2 \|\mathbf Q\mathbf x\|^2=\|\mathbf x\|^2 ∥Qx∥2=∥x∥2
则 λ 2 = 1 \lambda^2=1 λ2=1, ∣ λ ∣ = 1 |\lambda|=1 ∣λ∣=1
正交矩阵举例
- 置换矩阵 Q = [ 0 0 1 1 0 0 0 1 0 ] \boldsymbol{Q}=\left[\begin{array}{lll} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{array}\right] Q=⎣ ⎡010001100⎦ ⎤
- Q = [ cos θ − sin θ sin θ cos θ ] \boldsymbol{Q}=\left[\begin{array}{rr} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{array}\right] Q=[cosθsinθ−sinθcosθ]
- Q = 1 2 [ 1 1 1 − 1 ] \boldsymbol{Q}=\frac{1}{\sqrt 2}\left[\begin{array}{rr} 1&1\\ 1&-1 \end{array}\right] Q=21[111−1],其中 1 2 \frac{1}{\sqrt 2} 21是为了保证每个列向量长度都是 1 1 1
- 阿达玛Hadamard矩阵 Q = 1 2 [ 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ] \boldsymbol{Q}=\frac{1}{2}\left[\begin{array}{rrrr} 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⎦ ⎤
- 三维空间中两个正交向量组成的矩阵,可以“补出”第三个基向量,得到正交矩阵
Q = 1 2 [ 1 − 2 2 − 1 2 2 ] \boldsymbol{Q}=\frac{1}{2}\left[\begin{array}{rr} 1&-2\\ 2&-1\\ 2&2 \end{array}\right] Q=21⎣ ⎡122−2−12⎦ ⎤变为 Q = 1 2 [ 1 − 2 2 2 − 1 − 2 2 2 1 ] \boldsymbol{Q}=\frac{1}{2}\left[\begin{array}{rr} 1&-2&2\\ 2&-1&-2\\ 2&2&1 \end{array}\right] Q=21⎣ ⎡122−2−122−21⎦ ⎤
标准正交基/正交矩阵的优势
之前说过,如果想要将一个向量 b \boldsymbol b b投影到矩阵 A \mathbf A A的列空间内,做法是使用投影矩阵 P \mathbf P P:
将向量 b \boldsymbol b b投影到平面上得到的投影为 p = P b \boldsymbol p=\mathbf P\boldsymbol b p=Pb,其中投影矩阵 P = A ( A T A ) − 1 A T \mathbf P=\mathbf A(\mathbf A^T\mathbf A )^{-1}\mathbf A^T P=A(ATA)−1AT
对应这里,如果要将向量投影到正交矩阵
Q
\mathbf Q
Q的列空间内,对应的投影矩阵
P
=
Q
(
Q
T
Q
)
−
1
Q
T
=
Q
Q
T
=
I
\mathbf P=\mathbf Q(\mathbf Q^T\mathbf Q )^{-1}\mathbf Q^T=\mathbf Q\mathbf Q^T=\mathbf I
P=Q(QTQ)−1QT=QQT=I
这表明:正交矩阵这个方阵,其列空间就是整个
R
n
\mathbf R^n
Rn空间(投影后仍在原点)
之前说过, A x = b \mathbf A \boldsymbol x=\boldsymbol b Ax=b无解时,转而求解 A T A x ^ = A T b \mathbf A^T\mathbf A \hat{\boldsymbol x}=\mathbf A^T\boldsymbol b ATAx^=ATb,该方程的解 x ~ \tilde{\boldsymbol x} x~会是“最优解”
对于正交矩阵 Q \mathbf Q Q(或者列向量都为标准正交向量的非方阵 Q \mathbf Q Q),直接得到 Q T Q x ^ = x ^ = Q T b \mathbf Q^T\mathbf Q \hat{\boldsymbol x}=\hat{\boldsymbol x}=\mathbf Q^T\boldsymbol b QTQx^=x^=QTb
采用矩阵的QR分解(后面会介绍,即从列向量线性无关的矩阵 A \mathbf A A施密特正交化,得到正交矩阵 Q \mathbf Q Q)来帮助求解 A x = b \mathbf A \boldsymbol x=\boldsymbol b Ax=b的问题,最大的优势是提高了数值的稳定性
线性无关向量组的标准正交化:施密特正交化Gram-Schmidt
已知一组线性无关的向量,希望用它们导出一组标准正交向量,
或者说,将满秩的矩阵,变为一个正交矩阵,
方法是施密特正交化Gram-Schmidt
例如,对于任意 R n \mathbf R^n Rn空间中的三个线性无关向量 a \boldsymbol a a、 b \boldsymbol b b和 c \boldsymbol c c,对应构造的正交的向量为 A \boldsymbol A A、 B \boldsymbol B B和 C \boldsymbol C C
- 对于
a
\boldsymbol a
a,我们就采用其本身,得到正交化的向量
A
\boldsymbol A
A
对于 b \boldsymbol b b,我们只需要对 A \boldsymbol A A做投影 p \boldsymbol p p,然后取误差向量 e = b − p \boldsymbol e=\boldsymbol b-\boldsymbol p e=b−p作为正交化的向量 B \boldsymbol B B
(回忆之前的内容,求向量在另一向量上的投影,为 p = a T b a T a a \boldsymbol p=\frac{\boldsymbol {a}^{T} \boldsymbol {b}}{\boldsymbol {a}^{T} \boldsymbol {a}}\boldsymbol a p=aTaaTba)
因此, B = b − A T b A T A A \boldsymbol B=\boldsymbol b-\frac{\boldsymbol {A}^{T} \boldsymbol {b}}{\boldsymbol {A}^{T} \boldsymbol {A}}\boldsymbol A B=b−ATAATbA
同理,对于第三个向量 c \boldsymbol c c,也是“修剪掉”其“超出”已正交化的两个向量的那部分多余分量,得到
C = c − A T c A T A A − B T c B T B B \boldsymbol C=\boldsymbol c-\frac{\boldsymbol {A}^{T} \boldsymbol {c}}{\boldsymbol {A}^{T} \boldsymbol {A}}\boldsymbol A-\frac{\boldsymbol {B}^{T} \boldsymbol {c}}{\boldsymbol {B}^{T} \boldsymbol {B}}\boldsymbol B C=c−ATAATcA−BTBBTcB
- 最后,所有正交化的向量,除以其长度,进行“标准化”,得到一组标准正交向量
q 1 = A ∥ A ∥ \boldsymbol q_1=\frac{\boldsymbol A}{\|\boldsymbol A\|} q1=∥A∥A, q 2 = B ∥ B ∥ \boldsymbol q_2=\frac{\boldsymbol B}{\|\boldsymbol B\|} q2=∥B∥B, q 3 = C ∥ C ∥ \boldsymbol q_3=\frac{\boldsymbol C}{\|\boldsymbol C\|} q3=∥C∥C
QR分解
在消元部分,学习了矩阵的LU分解得到 A = L U \mathbf{A=LU} A=LU
列向量线性无关的矩阵
A
\mathbf A
A的施密特正交化,也可表示为
A
=
Q
R
\mathbf{A=QR}
A=QR形式,并且
R
\mathbf R
R必为上三角阵
另外注意:
- 正交化后列空间不变: C ( A ) = C ( Q ) C(\mathbf A)=C(\mathbf Q) C(A)=C(Q)(正交化只不过是调整了我们使用的“基向量”,使其正交)
- 矩阵 R \mathbf R R必然为上三角阵:
原理:
若有 A = Q R \mathbf{A=QR} A=QR,则 R = Q − 1 A = Q T A \mathbf R=\mathbf Q^{-1}\mathbf A=\mathbf Q^{T}\mathbf A R=Q−1A=QTA(因为 Q \mathbf Q Q为正交矩阵),由此我们得到了矩阵 R \mathbf R R的元素为 a 1 T q 2 \boldsymbol a_1^T\boldsymbol q_2 a1Tq2等,如图所示
其中,由于 a 1 \boldsymbol a_1 a1和 q 2 \boldsymbol q_2 q2必然正交( q 2 \boldsymbol q_2 q2来自于 a 2 \boldsymbol a_2 a2的正交化),因此元素 a 1 T q 2 = 0 \boldsymbol a_1^T\boldsymbol q_2=0 a1Tq2=0
ps. 上面的矩阵 R \mathbf R R中的元素本应为 q 1 T a 1 \boldsymbol q_1^T\boldsymbol a_1 q1Ta1等,但由于这是向量点积,结果是一个数字,因此下面写作 a 1 T q 2 \boldsymbol a_1^T\boldsymbol q_2 a1Tq2也可以
理解:
- 由于矩阵右乘对应于列的线性组合, A = Q R \mathbf{A=QR} A=QR可以视为:矩阵 R \mathbf R R对于正交矩阵 Q \mathbf Q Q的列向量做操作
- 且
Q
\mathbf Q
Q的列向量为一组标准正交基,用
R
\mathbf R
R中的元素对标准正交基加权组合,得到了另一组线性无关的向量,即
A
\mathbf A
A的列向量
由此也能进一步理解为何 R \mathbf R R为上三角矩阵:这样保证了一组标准正交基经过线性组合后, A \mathbf A A中不会出现线性相关的向量(每个向量仍然都贡献 / 张成一个新的维度)