I am still waiting for the day I’ll use mathematics integration in real life.
— Derrick Obedgiu
1. 特征向量
在给定一个线性变换
T
T
T,作用于一个非零的向量
v
v
v,没有对
v
v
v进行旋转,仅仅是对
v
v
v进行了
λ
\lambda
λ倍的拉伸,如下式所示,
T
(
v
)
=
λ
v
(1)
T(v)=\lambda v \tag{1}
T(v)=λv(1)
当然
v
v
v可以是任意的标量,例如负数,0,甚至是复数,此时
λ
\lambda
λ称为线性变换
T
T
T的特征值,而
v
v
v为对应特征值
λ
\lambda
λ的特征向量。
利用下面的剪切(shear)变换来举个例子,
如上图所示,图中的每个像素点都可以看做一个向量(从中心到点),剪切变换将上部分的点向右移动,下半部分的点向左移动。但是蓝色向量该行的点没有移动,所以蓝色的向量就是剪切变换的一个特征向量,且特征值为1。
举一个二维的剪切变换的例子,变换对应的矩阵为
A
A
A,
A
=
[
1
3
0
1
]
(2)
A= \begin{bmatrix} 1 & 3 \\ 0 & 1 \end{bmatrix} \tag{2}
A=[1031](2)
很容易验证
(
1
,
0
)
T
(1,0)^T
(1,0)T是
A
A
A的特征向量,特征值为1。
2. 旋转矩阵与特征向量
前面已知旋转矩阵
R
R
R的性质,
R
T
R
=
R
R
T
=
I
(3)
R^TR=RR^T=I \tag{3}
RTR=RRT=I(3)
遵循右手准则,可以得到,
det
(
R
)
=
1
det
(
R
−
1
)
=
1
(4)
\begin{aligned} \det(R)&=1 \\ \det(R^{-1})&=1 \end{aligned} \tag{4}
det(R)det(R−1)=1=1(4)
进而可以得到,
det
(
R
−
I
)
=
det
(
(
R
−
I
)
T
)
=
det
(
R
T
−
I
)
=
det
(
R
−
1
−
R
−
1
R
)
=
det
(
R
−
1
(
I
−
R
)
)
=
det
(
R
−
1
)
det
(
−
(
R
−
I
)
)
=
1
(
−
1
)
3
det
(
R
−
I
)
=
−
det
(
R
−
I
)
(5)
\begin{aligned} \det(R-I)&=\det((R-I)^T)=\det(R^T-I)=\det(R^{-1}-R^{-1}R) \\ &=\det(R^{-1}(I-R)) \\ &=\det(R^{-1})\det(-(R-I)) \\ &=1 (-1)^3 \det(R-I) \\ &=-\det(R-I) \end{aligned} \tag{5}
det(R−I)=det((R−I)T)=det(RT−I)=det(R−1−R−1R)=det(R−1(I−R))=det(R−1)det(−(R−I))=1(−1)3det(R−I)=−det(R−I)(5)
所以可以得到,
det
(
R
−
I
)
=
0
(6)
\det(R-I) = 0 \tag{6}
det(R−I)=0(6)
由上式可以得到
(
R
−
I
)
x
=
0
(R-I)x=0
(R−I)x=0有非零解,也即是
R
R
R对应特征值为1时的特征向量是存在的。通过以上的推导我们得出一个结论,对
R
∈
S
O
(
3
)
R \in SO(3)
R∈SO(3),均存在一个拉伸比例为1的特征向量,根据前面讲过的
Rot
(
ω
^
,
θ
)
\operatorname{Rot}(\hat{\omega}, \theta)
Rot(ω^,θ),所以
R
R
R对应的一个特征向量就是旋转轴
ω
^
\hat{\omega}
ω^。
下面举一个例子,假设沿着
z
z
z轴旋转
θ
\theta
θ角,可得旋转矩阵为,
R
=
[
cos
θ
−
sin
θ
0
sin
θ
cos
θ
0
0
0
1
]
(7)
R=\left[\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right] \tag{7}
R=⎣⎡cosθsinθ0−sinθcosθ0001⎦⎤(7)
接下来计算
R
R
R对应的三个特征值,
det
(
R
−
λ
I
)
=
∣
cos
θ
−
λ
−
sin
θ
0
sin
θ
cos
θ
−
λ
0
0
0
1
−
λ
∣
=
(
1
−
λ
)
∣
cos
θ
−
λ
−
sin
θ
sin
θ
cos
θ
−
λ
∣
=
(
1
−
λ
)
(
λ
2
−
2
(
cos
θ
)
λ
+
1
)
(8)
\begin{aligned} \det(R-\lambda I) &= \begin{vmatrix} \cos \theta - \lambda & -\sin \theta & 0 \\ \sin \theta & \cos \theta - \lambda & 0 \\ 0 & 0 & 1-\lambda \end{vmatrix} \\ &=(1-\lambda) \begin{vmatrix} \cos \theta - \lambda & -\sin \theta \\ \sin \theta & \cos \theta - \lambda \end{vmatrix} \\ &=(1-\lambda)(\lambda^2-2(\cos \theta)\lambda +1) \end{aligned} \tag{8}
det(R−λI)=∣∣∣∣∣∣cosθ−λsinθ0−sinθcosθ−λ0001−λ∣∣∣∣∣∣=(1−λ)∣∣∣∣cosθ−λsinθ−sinθcosθ−λ∣∣∣∣=(1−λ)(λ2−2(cosθ)λ+1)(8)
容易得到三个特征值为
1
,
cos
θ
±
i
sin
θ
1, \cos \theta \pm i\sin \theta
1,cosθ±isinθ。
关于旋转矩阵 R R R和其特征向量的物理意义,在自动驾驶中很多地方会涉及,例如在利用手眼标定法求不同传感器之间的位姿的关系时,可以利用不同旋转矩阵之间旋转轴的关系来构造矩阵方程求解对应的 R R R。