自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (9)
  • 收藏
  • 关注

原创 为什么北半球的旋涡都是逆时针的

我们在地理课或者理论物理课程中学到过一下的知识点:北半球的旋涡都是逆时针的。比如台风的旋涡、水槽里面流水的旋涡等等。那么这是为什么呢?原因在于地球并非是一个惯性系,因为地球本身在自转,因此以地球为参考系观察,这个系统中的物体将收到一个惯性力,这个惯性力我们定义为科里奥利力FcF_cFc​,这个力的大小和方向可以由以下公式来决定:F⃗c=−2mω⃗×v⃗\vec F_c=-2m\vec\omega×\vec vFc​=−2mω×v根据矢量叉乘的法则,我们得到以下结论:北半球物体运动时统一受到向右的地转偏向

2021-07-30 14:38:46 5313

原创 刚体的相对运动与机器人连杆的运动

在机器人学中,我们使用以下公式来对如图所示进行不同参考系中运动描述的变换:AVQ=AVBORG+BARBVQ+AΩB×BARBPQ{ }^{A} V_{Q}={ }^{A} V_{B O R G}+{ }_{B}^{A} R{ }^{B} V_{Q}+{ }^{A} \Omega_{B} \times{ }_{B}^{A} R^{B} P_{Q}AVQ​=AVBORG​+BA​RBVQ​+AΩB​×BA​RBPQ​其中AVQ^{A} V_QAVQ​表示运动物体QQQ相对于参考物体AAA的运动在参考系{A

2021-07-29 16:06:01 907 1

原创 单纯形法求解线性规划问题

我们来看一个简单的数学规划模型:max⁡Z=70x1+30x2\max Z=70 x_{1}+30 x_{2}maxZ=70x1​+30x2​s.t.{3x1+9x2⩽5405x1+5x2⩽4509x1+3x2⩽720x1,x2⩾0s.t. \left\{\begin{array}{l}3 x_{1}+9 x_{2} \leqslant 540 \\ 5 x_{1}+5 x_{2} \leqslant 450 \\ 9 x_{1}+3 x_{2} \leqslant 720 \\ x_{1}, x_{2}

2021-07-26 17:53:52 3104

原创 手动实现李群SE(3)到李代数se(3)之间的对指数运算关系

我们可以推导出以下公式来进行李群和李代数之间的对应转换计算。已知ω⃗\vec\omegaω和v⃗\vec vv,求RRR和ppp,从而获得TTT,对应T=exp(E)T= exp(E)T=exp(E),其中E=upgrade([ω⃗,v⃗])E=upgrade([\vec \omega, \vec v])E=upgrade([ω,v]):已知TTT,可以从其中提取出RRR和ppp,进而可以计算出ω⃗\vec \omegaω和v⃗\vec vv,即E=log(T)E=log(T)E=log(T),[ω⃗

2021-07-22 13:55:48 929

原创 使用numpy实现李代数se(3)和SE(3)之间的指对数映射

SE(3)李群和se(3)李代数元素之间存在着指对数的映射关系(矩阵指数、对数运算关系),对于se(3)李代数,存在着向量形式(六维螺旋向量S)和4×4标准矩阵(E矩阵)两种表达,他们之间可以相互转换,我们把从S转换成E的过程称为升维(upgrade),把E转换为S的过程称为降维(upgrade),那么我们可以简单地得到以下的转换关系示意图:李代数se(3)的螺旋向向量形式和标准4×4表示之间的转换关系比较简单,只需要对其中的角速度向量做一个伴随(反对称)变换即可,然后反对称矩阵和速度向量进行拼接,然后

2021-07-21 19:18:06 1479 2

原创 python中欧拉-罗德里格斯的代码详解

我们可以在python中定义以下函数来完成三维和四维的罗德里格斯公式的数值计算,即统一了旋转运动和一般螺旋运动的Euler-Rodrigues公式:R=eθAs=I+sinθAs+(1−cosθ)As2\mathbf R=e^{\theta \mathbf As} = \mathbf I + sin\theta \mathbf A_s + (1-cos\theta)\mathbf A_s^2R=eθAs=I+sinθAs​+(1−cosθ)As2​H=eθEs=I+sinθEs+(1−cosθ)Es2\ma

2021-07-21 16:46:18 1307

原创 使用np.set_printoptions设置打印数组格式

我们在终端打印numpy数组结果的时候,有时候会出现一些让人看着很难受的情况,比如:这个时候,我们只需要增加一行设置代码如下,就可以让结果看起来清晰无比:np.set_printoptions(precision=2,suppress=True)我们看到,效果非常明显,舒服。...

2021-07-21 11:43:04 1047

原创 numpy求矩阵的逆和伪逆

我们可以使用np.linalg中的inv和pinv函数来求解矩阵的逆/伪逆。np.linalg.inv对于可逆方阵M,我们使用下面这行代码求逆:np.linalg.inv(J(theta))示例:import numpy as npM = [ [0.866,-0.5,0], [0.5,0.866,0], [0,0,1]]print(f"The inverse of M is \n{np.linalg.inv(M)}")当然也可以为了可读性在import的时候直接从numpy.li

2021-07-20 14:48:36 4852

原创 将numpy数组根据分段区间进行三值化处理

现在有一个对数组Z处理的需求,要求将其中的元素中大于2/3的数字置1,小于1/3的数字置-1,中间段的数字置0我们分析之后不难得到以下方案:import numpy as npimport randomZ = np.array([ [0.1,0.2,0.3], [0.4,0.5,0.6], [0.8,0.9,0.7], ])def trivalurize(M): return (M>=1/3).astype(int)-(M<=2/3).astype(int)prin

2021-07-18 23:13:27 694 4

原创 坐标变换中旋转矩阵的前乘和后乘

我在旋转矩阵的两种用法一文中提出了关于RRR的两个基本变换关系:旧坐标=R∗新坐标(坐标转换公式)旧坐标=R*新坐标(坐标转换公式)旧坐标=R∗新坐标(坐标转换公式)新向量=R∗旧向量(向量转移公式)新向量=R*旧向量(向量转移公式)新向量=R∗旧向量(向量转移公式)这两个公式便于记忆,但是不够严谨,严谨地用数学公式表示,我们可以写成:[0x,0y,0z]T=R∗[1x,1y,1z]T[^0x,^0y,^0z]^T = R*[^1x,^1y,^1z]^T[0x,0y,0z]T=R∗[1x,1y,1z]T[i

2021-07-18 22:25:55 3224

原创 使用subs和evals函数对sympy中的符号进行赋值并且设置数值位数

我们在使用sympy进行符号计算之后,很多时候需要代入具体的数据进行数值计算,这个时候,我们就需要使用subs函数用具体的数字替换掉原来的变量;在三角计算中,我们常会用到π\piπ,而我们在计算机中希望转换成小数(浮点数),那么我们可以使用evals这个函数来进行小数点的设置。我们来看一下示例代码:注意到,我们以元组的列表的形式给subs传递了参数对,然后用chop参数设置了保留小数的位数,这些都是非常有用的参数。import numpy as npimport sympy as symfrom s

2021-07-18 12:26:19 3978

原创 使用sympy.latex在jupyter notebook中显示latex风格公式

我们可以使用sympy中的latex函数对数学表达式进行转换,转换为latex,然后复制到markdown格式单元格中运行就可以了:示例代码如下:import numpy as npimport sympy as symfrom sympy import sin,cos,pideg = pi/180def Rx(alpha): return sym.Matrix([ [1,0,0], [0,cos(alpha),-sin(alpha)],

2021-07-18 12:15:28 4447

原创 用python证明角位移不是矢量

文章目录一、角位置、角位移的概念二、角位移不是矢量的证明三、正确的角位移变换关系一、角位置、角位移的概念我们可以引入角位移矢量来表示一个刚体的姿态/方位(attitude/orientation),这种方法不是唯一的,我们在研究空间转动的时候,有多种方法,比如欧拉角、四元数、旋转矩阵等等。我们可以假设一个刚体初始的位姿和空间指教坐标系重合,也就是和物体固连的刚体坐标系x、y、z轴刚好和世界坐标系的x、y、z轴重合。如果这个物体因为绕轴线(假设轴线的单位向量为A⃗\vec{A}A,其中A是Axis的首字母

2021-07-17 12:52:05 722 2

原创 利用python程序深入理解齐次转移矩阵T

在机器人学中,齐次转移矩阵(Homogeneous Transmission Matrix)是一个很重要的概念,它可以用来表示一个刚体的位姿信息,也可以用来进行不同坐标系之间的坐标转换。我们假设TsbT_{sb}Tsb​为刚体b(body)相对于固定空间s(space)的转移矩阵,我们就可以按照以下法则把body中的坐标转换为space中坐标,即 Xs=Tsb∗XbX_s = T_{sb} * X_bXs​=Tsb​∗Xb​,这个矩阵TsbT_{sb}Tsb​就是齐次转移矩阵,我们可以把它看成是一个用于坐

2021-07-16 17:44:01 1783

原创 旋转矩阵和角速度之间的关系

假设刚体的位姿可以用旋转矩阵RRR来表示,某个瞬时时刻,刚体沿着单位轴s⃗\vec{s}s以角速度ω\omegaω旋转,假设在dTdTdT时间内旋转了dθd\thetadθ角度,那么我们可以证明以下公式:ω[s⃗]=R˙RT\omega [\vec{s}]=\dot{R}R^Tω[s]=R˙RT=lim⁡dT→0R(T+dT)−R(T)dTRT=\lim\limits_{dT\rightarrow0}\frac{R(T+dT)-R(T)}{dT}R^{T}=dT→0lim​dTR(T+dT)−R(T)​RT

2021-07-15 22:33:19 4118

原创 向量的三重积公式及其证明(附python代码)

向量的三重积公式是经常会在向量代数中使用到的恒等式,它的表达形式如下所示:a⃗×(b⃗×c⃗)=(a⃗⋅c⃗)b⃗−(a⃗⋅b⃗)c⃗\vec{a}\times\left(\vec{b}\times\vec{c}\right) = \left(\vec{a}\cdot\vec{c}\right)\vec{b}-\left(\vec{a}\cdot\vec{b}\right)\vec{c}a×(b×c)=(a⋅c)b−(a⋅b)c我们可以使用以下python代码来进行证明(我们对上式稍微变形一下证明这个恒等

2021-07-15 17:52:42 5409 4

原创 通过有向图的可达矩阵判断有向图的连通类型

我们根据有向图的连通情况,可以将图分成四种类型非连通图弱连通图单向连通图强连通图我们可以通过邻接矩阵A,计算可达矩阵B,然后经过二值化之后得到可达性矩阵P来判断该图属于以上哪一种。如果P中元素都为1,说明任意两点之间都可达,那么这是一个强连通图;如果P′=P∪PTP' = P \cup P^TP′=P∪PT除对角线之外全为1,说明任意两个点之间存在可达通路,那么这是一个单向连通图;如果A′=A∪ATA' = A \cup A^TA′=A∪AT作为邻接矩阵,然后求得可达矩阵所有元素为1,

2021-07-08 16:28:42 6475

原创 使用numpy中的matmul方法计算矩阵乘法

我们在线性代数中学过的矩阵乘法比较特殊,需要对应的行列向量点乘之后累加,如以下公式所示:mij=∑k=1naikbkjm_{ij}=\sum_{k=1}^na_{ik}b_{kj}mij​=k=1∑n​aik​bkj​假设mijm_{ij}mij​为矩阵MMM中第iii行第jjj列位置上的元素,MMM的尺寸为a×ba×ba×b,aika_{ik}aik​为矩阵AAA中的元素,AAA的尺寸为a×na×na×n的矩阵,bkjb_{kj}bkj​为矩阵BBB中的元素,BBB的尺寸为n×bn×bn×b的矩阵,并且他

2021-07-07 17:29:57 1419 3

surnames.csv

中文名字取名中常用的姓氏用字,从中随机抽取可以完成网络游戏中的取名问题,其实中国的汉字也就几千个,取名的数量在2-4范围之内,所以中文名字其实是从一个有限集合中选取文字组合而成的,完全可以通过程序设计的方式从有限集中随机选择。

2020-07-03

girlsnames.csv

中文名字取名中常用的女名用字,从中随机抽取可以完成网络游戏中的取名问题,其实中国的汉字也就几千个,取名的数量在2-4范围之内,所以中文名字其实是从一个有限集合中选取文字组合而成的,完全可以通过程序设计的方式从有限集中随机选择。

2020-07-03

boysnames.csv

中文名字取名中常用的男名用字,从中随机抽取可以完成网络游戏中的取名问题,其实中国的汉字也就几千个,取名的数量在2-4范围之内,所以中文名字其实是从一个有限集合中选取文字组合而成的,完全可以通过程序设计的方式从有限集中随机选择。

2020-07-03

Calculus and Applications.zip

计算机通信、人工智能、机器学习等技术中的数学基础,包括极限、微分、积分、微分方程等基本概念、运算及其应用。

2020-05-15

worldcities.csv

里面包含了世界上1万多个主要城市的基本信息,包括城市名、所在国家、所在区域、是否为首府、人口数、经纬度等等。

2020-03-16

vivid_alphabet.csv

存储了a-z26个字母代表的形象意义,为了后续背单词做准备,比如cata,在我这里就可以拆成c+a+t+a,意思是:the Cyan Ant of the Tired Anthony,这样一下子就记住了字母的组合。

2020-02-14

rating.txt

douban上10000本书的得分,包括“评分人id”、“书本id”、“评分”三个数字,数据量高达597万,所以说是比较难的用来练习海量数据的数据库。

2020-02-09

ChineseColorTable.csv

用python从jason格式中提取了中国颜色名称及其数据信息,用于网页制作前端设计的配色和颜色调和。

2020-01-10

colors.json

用于此代码的json源文件,内含中文颜色名称、CMYK、RGB、hex、name、hex等值,一共包含500多种颜色

2019-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除