1.矩阵与矩阵运算
写在前面
- 当前平台文章汇总地址:ROS2机器人从入门到实战
- 获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取
- 教程配套机器人开发平台:两驱版| 四驱版
- 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn
大家好,我是小鱼。本节我们来学习一下线性代数的基础中的矩阵部分,矩阵作为我们学习机器人学中最常用的基础知识,后面学习过程中我们会经常遇到,比如:表示旋转的旋转矩阵、坐标变换中的齐次矩阵、关节速度映射雅可比矩阵、仿真中的惯性矩阵等等。所以很有必要在正式学习之前,了解一下矩阵的概念及常用的矩阵定义。
1.矩阵介绍
1.1 矩阵定义
由
m
∗
n
m*n
m∗n个数
a
i
j
(
i
=
1
,
2
,
.
.
,
m
;
j
=
1
,
2...
,
n
)
a_{ij}(i=1,2,..,m;j=1,2...,n)
aij(i=1,2,..,m;j=1,2...,n)排成的m行n列的矩阵表格
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
m
1
a
m
2
⋯
a
m
n
]
\begin{bmatrix} {a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\ {a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\ \end{bmatrix}
a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn
称为一个
m
∗
n
m*n
m∗n的矩阵,记为为
A
A
A或
(
a
i
j
)
m
∗
n
(
i
=
1
,
2
,
.
.
,
m
;
j
=
1
,
2...
,
n
)
(a_{ij})_{m*n}(i=1,2,..,m;j=1,2...,n)
(aij)m∗n(i=1,2,..,m;j=1,2...,n),当
m
=
n
m=n
m=n时称
A
A
A为
n
n
n阶方阵.
矩阵就是一堆可能存在着某种联系数的组合,编号规则也很简单,第一行第一列的数编号为 a 11 a_{11} a11,第二行第一列叫做 a 21 a_{21} a21,以此类推
如果两个矩阵都是m*n个数组成,则称两个矩阵为同型矩阵。
1.2 零矩阵
所谓零矩阵,就是矩阵中每个数都是
0
0
0,比如一个
3
∗
3
3*3
3∗3的
0
0
0矩阵(零矩阵常用
O
O
O来表示)
O
3
∗
3
=
[
0
0
0
0
0
0
0
0
0
]
O_{3*3} =\begin{bmatrix}{0}&{0}&{0}\\{0}&{0}&{0}\\{0}&{0}&{0}\\\end{bmatrix}
O3∗3=
000000000
零矩阵是不是和自然数零一样神奇呢?
根据矩阵的运算法则,零矩阵有以下性质,下一节我们会来动手验证。
-
任何矩阵(前提符合运算法则)与零矩阵相加、减结果都是其本身
A − O = A A + O = A A-O=A \\ \\ A+O=A A−O=AA+O=A -
零矩阵与任何矩阵的相乘结果都是零矩阵(注意,矩阵型号可能会变)
1.3 单位矩阵
主对角线上的元素都为
1
1
1,其余元素全为
0
0
0的
n
n
n阶矩阵称为
n
n
n阶单位矩阵,常用符号
I
I
I表示,如
I
3
I3
I3
I
3
=
[
1
0
0
0
1
0
0
0
1
]
I_{3} =\begin{bmatrix}{1}&{0}&{0}\\{0}&{1}&{0}\\{0}&{0}&{1}\\\end{bmatrix}
I3=
100010001
单位矩阵的性质与自然数1相似
根据矩阵的运算法则,单位矩阵有以下性质:
任何矩阵与单位矩阵的乘积结果为其本身
A
I
n
=
A
I
n
B
=
B
AI_n = A\\\\ I_nB = B
AIn=AInB=B
2.矩阵的运算
2.1加减法运算
两个矩阵相加减,即其对应元素相加减。
设矩阵
A
=
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
m
1
a
m
2
⋯
a
m
n
]
,
B
=
[
b
11
b
12
⋯
b
1
n
b
21
b
22
⋯
b
2
n
⋮
⋮
⋱
⋮
b
m
1
b
m
2
⋯
b
m
n
]
A=\begin{bmatrix} {a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\ {a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\ \end{bmatrix},B=\begin{bmatrix} {b_{11}}&{b_{12}}&{\cdots}&{b_{1n}}\\ {b_{21}}&{b_{22}}&{\cdots}&{b_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {b_{m1}}&{b_{m2}}&{\cdots}&{b_{mn}}\\ \end{bmatrix}
A=
a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn
,B=
b11b21⋮bm1b12b22⋮bm2⋯⋯⋱⋯b1nb2n⋮bmn
有
A ± B = [ a 11 ± b 11 a 12 ± b 12 ⋯ a 1 n ± b 1 n a 21 ± b 21 a 22 ± b 22 ⋯ a 2 n ± b 2 n ⋮ ⋮ ⋱ ⋮ a m 1 ± b m 1 a m 2 ± b m 2 ⋯ a m n ± b m n ] A\pm\;B=\begin{bmatrix} {a_{11}\pm\;b_{11}}&{a_{12}\pm\;b_{12}}&{\cdots}&{a_{1n}\pm\;b_{1n}}\\ {a_{21}\pm\;b_{21}}&{a_{22}\pm\;b_{22}}&{\cdots}&{a_{2n}\pm\;b_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {a_{m1}\pm\;b_{m1}}&{a_{m2}\pm\;b_{m2}}&{\cdots}&{a_{mn}\pm\;b_{mn}}\\ \end{bmatrix} A±B= a11±b11a21±b21⋮am1±bm1a12±b12a22±b22⋮am2±bm2⋯⋯⋱⋯a1n±b1na2n±b2n⋮amn±bmn
只有两个矩阵为同型矩阵时才能进行加减运算。
运算性质
-
交换律: A + B = B + A A+B=B+A A+B=B+A
-
结合律: ( A + B ) + C = A + ( B + C ) (A+B)+C=A+(B+C) (A+B)+C=A+(B+C)
-
乘法结合律: ( A B ) C = A ( B C ) (AB)C=A(BC) (AB)C=A(BC)
栗子:
A
=
[
1
0
1
1
0
0
0
0
1
]
,
B
=
[
0
0
1
1
0
0
0
0
1
]
A=\begin{bmatrix}{1}&{0}&{1}\\{1}&{0}&{0}\\{0}&{0}&{1}\\\end{bmatrix},B=\begin{bmatrix}{0}&{0}&{1}\\{1}&{0}&{0}\\{0}&{0}&{1}\\\end{bmatrix}
A=
110000101
,B=
010000101
A
+
B
=
B
+
A
=
[
1
0
2
2
0
0
0
0
2
]
A+B= B+A =\begin{bmatrix}{1}&{0}&{2}\\{2}&{0}&{0}\\{0}&{0}&{2}\\\end{bmatrix}
A+B=B+A=
120000202
2.2乘法运算
乘法运算分为两种,一种是标量乘法,一种是矩阵乘法。
2.2.1 标量乘法
标量乘法即一个矩阵和一个数相乘。运算法则:将矩阵的每一个元素都乘上这个数即可
栗子:
A
=
[
1
2
3
4
]
A = \begin{bmatrix}{1}&{2}\\{3}&{4}\\\end{bmatrix}\\
A=[1324]
2
×
A
=
2
×
[
1
2
3
4
]
=
[
2
×
1
2
×
2
2
×
3
2
×
4
]
=
[
2
4
6
8
]
2\times A= 2\times \begin{bmatrix}{1}&{2}\\{3}&{4}\\\end{bmatrix} = \begin{bmatrix}{2 \times 1}&{2 \times 2}\\{2 \times 3}&{2 \times 4}\\\end{bmatrix} =\begin{bmatrix}{2}&{4}\\{6}&{8}\\\end{bmatrix}
2×A=2×[1324]=[2×12×32×22×4]=[2648]
2.2.2 矩阵运算
运算法则
设矩阵 A × B = C = ( c i j ) m ∗ n A\times B = C = (c_{ij})_{m*n} A×B=C=(cij)m∗n,则 C C C的第 i i i行第 j j j列的元素 c i j c_{ij} cij的值等于矩阵A的第 i i i行元素和矩阵B的第 j j j列元素两两乘积之和。
栗子:
设:
A
=
[
1
2
3
4
]
,
B
=
[
1
0
0
3
]
A = \begin{bmatrix}{1}&{2}\\{3}&{4}\\\end{bmatrix}, B = \begin{bmatrix}{1}&{0}\\{0}&{3}\\\end{bmatrix} \\
A=[1324],B=[1003]
则
A
×
B
=
C
=
[
c
11
c
12
c
21
c
22
]
A \times B = C = \begin{bmatrix}{c_{11}}&{c_{12}}\\{c_{21}}&{c_{22}}\\\end{bmatrix}
A×B=C=[c11c21c12c22]
c 11 = 1 ∗ 1 + 2 ∗ 0 = 1 c_{11} =1*1+2*0 = 1 c11=1∗1+2∗0=1
c 12 = 1 ∗ 0 + 2 ∗ 3 = 6 c_{12} =1*0+2*3 = 6 c12=1∗0+2∗3=6
c 21 = 3 ∗ 1 + 4 ∗ 0 = 3 c_{21} = 3*1+4*0 = 3 c21=3∗1+4∗0=3
c 22 = 3 + 0 + 4 ∗ 3 = 12 c_{22} = 3+0 + 4*3 = 12 c22=3+0+4∗3=12
C = [ 1 6 3 12 ] C = \begin{bmatrix}{1}&{6}\\{3}&{12}\\\end{bmatrix} C=[13612]
乘积之和其实就是点乘运算,比如栗子:
a = [ 1 , 2 , 3 ] , b = [ 0 , 1 , 2 ] a ⋅ b = 1 ∗ 0 + 2 ∗ 1 + 3 ∗ 2 = 8 a = [1,2,3],b = [0,1,2]\\ a\cdot b =1*0+2*1+3*2 = 8 a=[1,2,3],b=[0,1,2]a⋅b=1∗0+2∗1+3∗2=8矩阵的乘法的意义是非常有意思的,这里放一个链接,欢迎大家阅读: 矩阵乘法的本质是什么?
运算性质
尝试计算下上面栗子中的 B × A B\times A B×A的值,得到的结果依然是上面栗子中的 C C C吗?
答案:并不是,一般情况下,矩阵的乘法并不满足交换律
矩阵的运算规律:
-
结合律
( A × B ) × C = A × ( B × C ) (A\times B)\times C = A \times(B\times C) (A×B)×C=A×(B×C) -
分配律
A × ( B + C ) = A × B + A × C A\times(B+C) = A\times B + A\times C A×(B+C)=A×B+A×C
2.3转置运算
转置运算定义非常简单,将矩阵的对应行列元素互换(右上角加
T
{T}
T表示)
C
=
[
c
11
c
12
c
21
c
22
]
,
C
T
=
[
c
11
c
21
c
12
c
22
]
C = \begin{bmatrix}{c_{11}}&{c_{12}}\\{c_{21}}&{c_{22}}\\\end{bmatrix} ,C^{T} = \begin{bmatrix}{c_{11}}&{c_{21}}\\{c_{12}}&{c_{22}}\\\end{bmatrix} \\
C=[c11c21c12c22],CT=[c11c12c21c22]
栗子:
A
=
[
1
2
3
4
]
,
A
T
=
[
1
3
2
4
]
A = \begin{bmatrix}{1}&{2}\\{3}&{4}\\\end{bmatrix},A^T = \begin{bmatrix}{1}&{3}\\{2}&{4}\\\end{bmatrix}
A=[1324],AT=[1234]
运算规律
(
A
T
)
T
=
A
(A^T)^T = A
(AT)T=A
( A + B ) T = A T + B T (A+B)^T = A^T + B^T (A+B)T=AT+BT
( A B ) T = B T A T (AB)^T = B^TA^T (AB)T=BTAT
3.重要定义
3.1 矩阵的逆
3.1.1 定义
A , B A,B A,B是n阶方阵,E是n阶单位矩阵,若 A B = B A = E AB=BA=E AB=BA=E,则称 A A A是可逆矩阵,并称B是A的逆,且逆矩阵是唯一的,记作 A − 1 A^{-1} A−1
这个我们本节课就不举栗子了,下节课我们使用代码来直接求。
注意:不一定所有的矩阵都是可逆的
3.1.2 运算规律
( A − 1 ) − 1 = A (A^{-1})^{-1} = A (A−1)−1=A
A B 可逆, ( A B ) − 1 = B − 1 A − 1 AB可逆,(AB)^{-1}=B^{-1}A^{-1} AB可逆,(AB)−1=B−1A−1
4.总结
本节主要介绍了下矩阵的定义的一些性质,还有很多需要补充的,由于时间原因先发一下文章,小鱼要去录课了