1. 定义
反对称矩阵又称(斜对称矩阵)是一个方形矩阵,其转置矩阵和自身的加法逆元相等。
A
⊤
=
−
A
(1.1)
A^{\top} = -A \tag{1.1}
A⊤=−A(1.1)
或写作
A
=
(
a
i
j
)
A=(a_{ij})
A=(aij),各元素的关系为:
a
i
j
=
−
a
j
i
(1.2)
a_{ij} = -a_{ji} \tag{1.2}
aij=−aji(1.2)
例如,下例为一个反对称矩阵:
[
0
2
−
1
−
2
0
−
4
1
4
0
]
(1.3)
\begin{bmatrix} 0 & 2 & -1 \\ -2 & 0 & -4 \\ 1 & 4 & 0 \\ \end{bmatrix} \tag{1.3}
⎣
⎡0−21204−1−40⎦
⎤(1.3)
在SLAM学习中,一个向量可以映射到一个反对称矩阵,从向量到反对称矩阵的映射符号通常用
^
\hat{}
^ 符号来表示,比如对于向量
a
=
[
a
1
,
a
2
,
a
3
]
⊤
a = [a_1,a_2,a_3]^{\top}
a=[a1,a2,a3]⊤,其反对称矩阵为:
a
∧
=
A
=
[
0
−
a
3
a
2
a
3
0
−
a
1
−
a
2
a
1
0
]
(1.4)
a^{\wedge}=A= \begin{bmatrix} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \\ \end{bmatrix} \tag{1.4}
a∧=A=⎣
⎡0a3−a2−a30a1a2−a10⎦
⎤(1.4)
另外一个小tips,反对称符号在latex的表示为\hat{}
或者\wedge
。
2. 反对称矩阵与叉乘
设有向量
a
=
[
a
1
,
a
2
,
a
3
]
⊤
a = [a_1,a_2,a_3]^\top
a=[a1,a2,a3]⊤和
b
=
[
b
1
,
b
2
,
b
3
]
⊤
b = [b_1,b_2,b_3]\top
b=[b1,b2,b3]⊤,则叉乘和反对称化的关系如下:
a
×
b
=
a
∧
b
(2.1)
a \times b = a^\wedge b \tag{2.1}
a×b=a∧b(2.1)
以及反交换律:
a
∧
b
=
−
b
∧
a
(2.2)
a^\wedge b = -b^\wedge a \tag{2.2}
a∧b=−b∧a(2.2)
a
⊤
b
∧
=
−
b
⊤
a
∧
(2.3)
a^\top b^\wedge = -b^\top a^\wedge \tag{2.3}
a⊤b∧=−b⊤a∧(2.3)
同时有以下性质成立:
(
a
∧
b
)
∧
=
(
a
×
b
)
∧
=
a
∧
b
∧
−
b
∧
a
∧
(2.4)
(a^\wedge b)^\wedge = (a \times b)^\wedge = a^\wedge b^\wedge - b^\wedge a^\wedge \tag{2.4}
(a∧b)∧=(a×b)∧=a∧b∧−b∧a∧(2.4)
3. 反对称矩阵的行列式
若A是
n
×
n
n \times n
n×n的反对称矩阵,其行列式满足:
d
e
t
(
A
)
=
d
e
t
(
A
⊤
)
=
d
e
t
(
−
A
)
=
(
−
1
)
n
d
e
t
(
A
)
(3.1)
det(A) = det(A^\top)=det(-A)=(-1)^ndet(A) \tag{3.1}
det(A)=det(A⊤)=det(−A)=(−1)ndet(A)(3.1)
- 如果n是奇数,行列式等于0。这个结果叫雅克比定理。
- 若n是偶数,行列式可以写成部分元素的多项式的平方,这个称为Pfaffian行列式。
4. 反对称矩阵的乘法
4.1 反对称矩阵连乘
假设向量
a
=
[
a
1
,
a
2
,
a
3
]
⊤
a = [a_1,a_2,a_3]^\top
a=[a1,a2,a3]⊤,其为单位向量,即
a
1
2
+
a
2
2
+
a
3
2
=
1
\sqrt{a^2_1 + a^2_2 + a^2_3} = 1
a12+a22+a32=1,则易推出:
a
∧
a
∧
=
a
a
⊤
−
I
(4.1)
a^\wedge a^\wedge = aa^\top - I \tag{4.1}
a∧a∧=aa⊤−I(4.1)
继续连乘:
a
∧
a
∧
a
∧
=
−
a
∧
(4.2)
a^\wedge a^\wedge a^\wedge = -a^\wedge \tag{4.2}
a∧a∧a∧=−a∧(4.2)
更多的连乘可以用以上规律进行推导。
4.2 反对称矩阵与矩阵相乘
定义向量
u
=
(
u
1
,
u
2
,
u
3
)
⊤
u = (u_1, u_2, u_3)^\top
u=(u1,u2,u3)⊤和任意矩阵C,则有如下公式成立:
(
C
u
)
∧
=
C
u
∧
C
⊤
(4.3)
(Cu)^\wedge = Cu^\wedge C^\top \tag{4.3}
(Cu)∧=Cu∧C⊤(4.3)
5. 反对称矩阵的加法
设有向量
a
=
[
a
1
,
a
2
,
a
3
]
⊤
a = [a_1,a_2,a_3]^\top
a=[a1,a2,a3]⊤和
b
=
[
b
1
,
b
2
,
b
3
]
⊤
b = [b_1,b_2,b_3]\top
b=[b1,b2,b3]⊤,则有运算:
a
∧
+
b
∧
=
(
a
+
b
)
∧
(5.1)
a^\wedge + b^\wedge = (a+b)^\wedge \tag{5.1}
a∧+b∧=(a+b)∧(5.1)
6. 无穷小旋转
斜对称矩阵形成了正交群O(n)在单位矩阵的切空间。在某种意义上,斜对称矩阵可以视无穷小旋转。
另外一种说法是,斜对称矩阵的空间形成了李群O(n)的李代数o(n)。这个空间上的李括号由交换子给出:
[
A
,
B
]
=
A
B
−
B
A
(6.1)
[A,B] = AB -BA \tag{6.1}
[A,B]=AB−BA(6.1)
很容易验证,两个斜对称矩阵的交换子也是斜对称的。
于是,斜对称矩阵A的矩阵指数,是正交矩阵R:
R
=
e
x
p
(
A
)
=
∑
n
=
0
∞
A
n
n
!
(6.2)
R =exp(A) = \sum^\infty_{n=0} \frac{A^n}{n!} \tag{6.2}
R=exp(A)=n=0∑∞n!An(6.2)
李代数的指数映射的像总是位于含有单位元的李群的连通分支内。在李群O(n)的情况中,这个连通分支是特殊正交群SO(n),由所有行列式为1的正交矩阵组成。因此_R_ = exp(A)的行列式为+1。于是,每一个行列式为1的正交矩阵都可以写成某个斜对称矩阵的指数。