您当前的位置: 首页 >  数学

鱼香ROS

暂无认证

  • 0浏览

    0关注

    498博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

《动手学机器人学》第一节:数学基础--矩阵

鱼香ROS 发布时间:2021-10-15 11:18:59 ,浏览量:0

本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途。 公众号

  • 《动手学机器人学》第一节:数学基础–矩阵
  • 《动手学机器人学》第二节:MiniConda、JupyterNotebook与ROS2
  • 《动手学机器人学》第三节:动手学数学基础,使用NumPy操作矩阵
  • 《动手学机器人学》第四节(上):位姿描述
  • 《动手学机器人学》第四节(下):一文搞懂坐标变换
  • 《动手学机器人学》第五节(上):动手学空间姿态描述与变换
  • 《动手学机器人学》第五节(中):使用ROS2的TF2进行坐标变换
  • 《动手学机器人学》第五节(下):使用Python操作TF
  • 更新中…欢迎关注小鱼公众号鱼香ROS,第一时间获取更新
第一节:数学基础–矩阵

大家好,我是小鱼。本节我们来学习一下线性代数的基础中的矩阵部分,矩阵作为我们学习机器人学中最常用的基础知识,后面学习过程中我们会经常遇到,比如:表示旋转的旋转矩阵、坐标变换中的齐次矩阵、关节速度映射雅可比矩阵、仿真中的惯性矩阵等等。所以很有必要在正式学习之前,了解一下矩阵的概念及常用的矩阵定义。

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} ⎣⎢⎢⎢⎡​a11​a21​⋮am1​​a12​a22​⋮am2​​⋯⋯⋱⋯​a1n​a2n​⋮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​=⎣⎡​000​000​000​⎦⎤​

零矩阵是不是和自然数零一样神奇呢?

根据矩阵的运算法则,零矩阵有以下性质,下一节我们会来动手验证。

  • 任何矩阵(前提符合运算法则)与零矩阵相加、减结果都是其本身 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​=⎣⎡​100​010​001​⎦⎤​

单位矩阵的性质与自然数1相似

根据矩阵的运算法则,单位矩阵有以下性质:

任何矩阵与单位矩阵的乘积结果为其本身 A I n = A I n B = B AI_n = A\\ I_nB = B AIn​=AIn​B=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=⎣⎢⎢⎢⎡​a11​a21​⋮am1​​a12​a22​⋮am2​​⋯⋯⋱⋯​a1n​a2n​⋮amn​​⎦⎥⎥⎥⎤​,B=⎣⎢⎢⎢⎡​b11​b21​⋮bm1​​b12​b22​⋮bm2​​⋯⋯⋱⋯​b1n​b2n​⋮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​±b11​a21​±b21​⋮am1​±bm1​​a12​±b12​a22​±b22​⋮am2​±bm2​​⋯⋯⋱⋯​a1n​±b1n​a2n​±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 = [ 1 0 1 1 0 0 0 0 1 ] , B = [ 0 0 1 1 0 0 0 0 1 ] A + B = B + A = [ 1 0 2 2 0 0 0 0 2 ] 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+B= B+A =\begin{bmatrix}{1}&{0}&{2}\\{2}&{0}&{0}\\{0}&{0}&{2}\\\end{bmatrix} A=⎣⎡​110​000​101​⎦⎤​,B=⎣⎡​010​000​101​⎦⎤​A+B=B+A=⎣⎡​120​000​202​⎦⎤​

2.2乘法运算

乘法运算分为两种,一种是标量乘法,一种是矩阵乘法。

2.2.1 标量乘法

标量乘法即一个矩阵和一个数相乘。运算法则:将矩阵的每一个元素都乘上这个数即可

栗子: A = [ 1 2 3 4 ] 2 × A = 2 × [ 1 2 3 4 ] = [ 2 × 1 2 × 2 2 × 3 2 × 4 ] = [ 2 4 6 8 ] A = \begin{bmatrix}{1}&{2}\\{3}&{4}\\\end{bmatrix}\\ 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} A=[13​24​]2×A=2×[13​24​]=[2×12×3​2×22×4​]=[26​48​]

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=[13​24​],B=[10​03​] 则 A × B = C = [ c 11 c 12 c 21 c 22 ] c 11 = 1 ∗ 1 + 2 ∗ 0 = 1 c 12 = 1 ∗ 0 + 2 ∗ 3 = 6 c 21 = 3 ∗ 1 + 4 ∗ 0 = 3 c 22 = 3 + 0 + 4 ∗ 3 = 12 C = [ 1 6 3 12 ] A \times B = C = \begin{bmatrix}{c_{11}}&{c_{12}}\\{c_{21}}&{c_{22}}\\\end{bmatrix} \\ c_{11} =1*1+2*0 = 1 \\ c_{12} =1*0+2*3 = 6 \\ c_{21} = 3*1+4*0 = 3 \\ c_{22} = 3+0 + 4*3 = 12 \\ C = \begin{bmatrix}{1}&{6}\\{3}&{12}\\\end{bmatrix} A×B=C=[c11​c21​​c12​c22​​]c11​=1∗1+2∗0=1c12​=1∗0+2∗3=6c21​=3∗1+4∗0=3c22​=3+0+4∗3=12C=[13​612​]

乘积之和其实就是点乘运算,比如栗子: 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.4转置运算

转置运算定义非常简单,将矩阵的对应行列元素互换(左上角加 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=[c11​c21​​c12​c22​​],CT=[c11​c12​​c21​c22​​] 栗子: 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=[13​24​],AT=[12​34​] 运算规律 ( A T ) T = A ( A + B ) T = A T + B T ( A B ) T = B T A T (A^T)^T = A \\ (A+B)^T = A^T + B^T \\ (AB)^T = B^TA^T (AT)T=A(A+B)T=AT+BT(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 B 可 逆 , ( A B ) − 1 = B − 1 A − 1 (A^{-1})^{-1} = A \\ AB可逆,(AB)^{-1}=B^{-1}A^{-1} (A−1)−1=AAB可逆,(AB)−1=B−1A−1

4.总结

本节主要介绍了下矩阵的定义的一些性质,还有很多需要补充的,由于时间原因先发一下文章,小鱼要去录课了

技术交流&&问题求助:

  • 微信公众号及交流群:鱼香ROS
  • 小鱼微信:AiIotRobot
  • QQ交流群:139707339
  • 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划
作者介绍:

我是小鱼,机器人领域资深玩家,现深圳某独脚兽机器人算法工程师一枚 初中学习编程,高中开始接触机器人,大学期间打机器人相关比赛实现月入2W+(比赛奖金) 目前在输出机器人学习指南、论文注解、工作经验,欢迎大家关注小鱼,一起交流技术,学习机器人

关注
打赏
1666092100
查看更多评论
立即登录/注册

微信扫码登录

1.0120s