slam学习笔记7---状态量求导相关数学公式

前言:本来打算只是归纳一下数学求导相关公式,后面也写了旋转求导相关内容,哈哈。感觉有点发散把握不住呀。水平有限,欢迎评论区点出。

一、基本初等函数求导公式

  1. ( C ) ′ = 0 , C (C)'=0,C (C)=0,C为常数
  2. ( x μ ) ′ = μ x μ − 1 , μ (x^\mu)'=\mu x^{\mu-1},\mu (xμ)=μxμ1μ为常数
  3. ( s i n x ) ′ = c o s x (sinx)'=cosx (sinx)=cosx
  4. ( c o s x ) ′ = − s i n x (cosx)'=-sinx (cosx)=sinx
  5. ( t a n x ) ′ = s e c 2 x (tanx)'=sec^2x (tanx)=sec2x
  6. ( c s c x ) ′ = − c s c 2 x (cscx)'=-csc^2x (cscx)=csc2x
  7. ( s e c x ) ′ = s e c x t a n x (secx)'=secxtanx (secx)=secxtanx
  8. ( c s c x ) ′ = − c s c x c o t x (cscx)'=-cscxcotx (cscx)=cscxcotx
  9. ( a x ) ′ = a x l n a (a^x)'=a^xlna (ax)=axlna
  10. ( e x ) ′ = e x (e^x)'=e^x (ex)=ex
  11. ( l o g a x ) ′ = 1 x l n a (log{_a}x)'=\frac1{xlna} (logax)=xlna1
  12. ( l n x ) ′ = 1 x (lnx)'=\frac1{x} (lnx)=x1
  13. ( a r c s i n x ) ′ = 1 1 − x 2 (arcsinx)'=\frac 1{\sqrt{1-x^2}} (arcsinx)=1x2 1
  14. ( a r c c o s x ) ′ = − 1 1 − x 2 (arccosx)'=- \frac 1{1-x^2} (arccosx)=1x21
  15. ( a r c t a n x ) ′ = 1 1 + x 2 (arctanx)'=\frac 1{1+x^2} (arctanx)=1+x21
  16. ( a r c c o t x ) ′ = − 1 1 + x 2 (arccotx)'=- \frac 1{1+x^2} (arccotx)=1+x21

二、函数四则运算求导法则

μ = μ ( x ) , v = v ( x ) \mu=\mu(x),v=v(x) μ=μ(x),v=v(x)都可导,则

  1. ( u ± v ) ′ = u ′ ± v ′ (u\pm v)'=u' \pm v' (u±v)=u±v
  2. ( C μ ) ′ = C u ′ , C (C\mu)'=Cu',C (Cμ)=Cu,C为常数
  3. ( u v ) ′ = u ′ v + u v ′ (uv)'=u'v+uv' (uv)=uv+uv
  4. ( u v ) ′ = u ′ v − u v ′ v 2 (\frac u{v})'=\frac {u'v-uv'}{v^2} (vu)=v2uvuv

三、反函数求导数法则

若函数 x = φ ( y ) x=\varphi(y) x=φ(y)在某区间 I y I{_y} Iy内可导、单调且 φ ′ ( y ) ≠ 0 , \varphi'(y)\neq0, φ(y)=0,则它反函数 y = f ( x ) y=f(x) y=f(x)在对应区间 I x I{_x} Ix内也可导,且:
f ′ ( x ) = 1 φ ′ ( y ) f'(x)=\frac 1{\varphi'(y)} f(x)=φ(y)1

d y d x = 1 d x d y \frac {dy}{dx}=\frac {1}{\frac {dx}{dy}} dxdy=dydx1

四、旋转求导

4.1 李群李代数

简易理解,李群就是旋转矩阵表示姿态;李代数使用旋转向量表示姿态;

借助MIT牛人的一席话,理解李群李代数非凡意义:
当分析和群论走在一 起,我们就有了李群(Lie Group)和李代数(Lie Algebra)。它们给连续群上的元素赋予了代数结构。这是一门非常漂亮的数学:在一个体系中,拓扑,微分和代数走到了一起。在一定条件下, 通过李群和李代数的联系,它让几何变换的结合变成了线性运算,让子群化为线性子空间,这样就为learning中许多重要的模型和算法的引入到对几何运动 的建模创造了必要的条件。

1)两者桥梁:罗徳里格旋转公式
R = c o s θ ⋅ I + ( 1 − c o s θ ) ⋅ n ⃗ ⋅ n ⃗ T + s i n θ ⋅ n ⃗ ∧ R=cos\theta\cdot I+(1-cos\theta)\cdot \vec{n}\cdot \vec{n}^{T}+sin\theta\cdot \vec{n}^{\wedge} R=cosθI+(1cosθ)n n T+sinθn
其中, ∧ \wedge 表示向量到反对称的转换符; θ \theta θ表示转角; n ⃗ \vec{n} n 表示单位旋转向量;

2)把旋转角度约束在 ± π \pm\pi ±π范围,李群和李代数是一一对应的;否则,存在多个李代数对应同一个李群;换言之,多个旋转向量对应同一个旋转矩阵。

3)李群求导数,理解为泊松公式;

4)若知道了旋转矩阵即李群,那么通过如下方式可获取李代数:
θ = a r c c o s t r ( R ) − 1 2 \theta=arccos\frac{tr(R)-1}{2} θ=arccos2tr(R)1
R ⋅ a ⃗ = a ⃗ R\cdot \vec a=\vec a Ra =a
根据线性代数求解特征值、特征向量方式,求解特征值为1对应的向量为旋转向量。至此,完成李群到李代数的映射。

4.2 旋转矩阵

1)对时间求导数,来自泊松公式
假设旋转矩阵 R R R,角速度为 ω \omega ω,则 R R R对时间求导数表示为:
R ˙ = R ⋅ ω ∧ \dot{R}=R\cdot\omega^{\wedge} R˙=Rω
其中,
ω ∧ = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] \omega^{\wedge}=\begin{bmatrix} 0&-\omega{_3}&\omega{_2} \\ \omega{_3}&0&-\omega{_1}\\-\omega{_2}&\omega{_1}&0\end{bmatrix} ω= 0ω3ω2ω30ω1ω2ω10

2)对于三维空间中,点 p = [ x , y , z ] p = [x,y,z] p=[x,y,z]经过旋转矩阵 R R R变换,则变换到点 p ′ p' p,公式表示如:
p ′ = R p p'=Rp p=Rp

4.3 四元数

1)当实部接近0,其余分量会非常大,导致解不稳定;由于 q q q − q -q q表示同一个旋转,所以 R R R对应的四元数不唯一

2)在三维空间中,点 p = [ x , y , z ] p = [x,y,z] p=[x,y,z]使用四元数变换至点 p ′ p' p过程如:

将三维空间点映射到四元数空间,设 p = [ 0 , x , y , z ] p=[0,x,y,z] p=[0,x,y,z],
四元数旋转表示为 q = [ c o n θ 2 , n ⃗ ⋅ s i n θ 2 ] q=[con\frac{\theta}{2},\vec{n}\cdot sin\frac{\theta}{2}] q=[con2θ,n sin2θ], θ \theta θ表示转角, n ⃗ \vec{n} n 表示单位向量
那么,有
p ′ = q ⋅ p ⋅ q − 1 p'=q\cdot p\cdot q^{-1} p=qpq1
3)四元数与轴角的关系
假设某个旋转运动的旋转轴为单位向量 u ⃗ \vec{u} u ,绕该轴旋转的角度 θ \theta θ,那么她对应的单位四元数为:
q = [ c o s θ 2 u ⃗ ⋅ s i n θ 2 ] q=\begin{bmatrix} cos\frac{\theta}{2}\\\vec{u}\cdot sin\frac{\theta}{2} \end{bmatrix} q=[cos2θu sin2θ]
当旋转一段微小时间,即旋转角度趋向零时,容易有:
Δ q = [ c o s δ θ 2 u ⃗ ⋅ s i n δ θ 2 ] ≈ [ 1 u ⃗ ⋅ δ θ 2 ] = [ 1 δ θ 2 ] \Delta{q}=\begin{bmatrix}cos\frac{\delta\theta}{2}\\\vec{u} \cdot sin\frac{\delta\theta}{2}\end{bmatrix}\approx\begin{bmatrix}1\\\vec{u}\cdot \frac{\delta\theta}{2}\end{bmatrix}=\begin{bmatrix}1\\\frac{\delta\theta}{2}\end{bmatrix} Δq=[cos2δθu sin2δθ][1u 2δθ]=[12δθ]
其中 δ θ \delta\theta δθ的方向表示旋转轴,模长表示旋转角度。
4)四元数求导数
角速度有:
ω = lim ⁡ Δ t → 0 δ θ Δ t \omega=\lim_{\Delta{t} \to 0} \frac{\delta\theta}{\Delta{t}} ω=Δt0limΔtδθ
四元数对时间的导数为:
q ˙ = lim ⁡ Δ t → 0 q ( t + Δ t ) − q ( t ) Δ t = lim ⁡ Δ t → 0 q ⊗ Δ q − q Δ t = lim ⁡ Δ t → 0 q ⊗ ( [ 1 δ θ 2 ] − [ 1 0 ⃗ ] ) Δ t = q ⊗ [ 0 ω 2 ] \dot{q}=\lim_{\Delta{t} \to 0} \frac{q(t+\Delta{t})-q(t)}{\Delta t}=\lim_{\Delta{t} \to 0} \frac{q\otimes\Delta q -q}{\Delta t}=\lim_{\Delta{t} \to 0} \frac{q\otimes \left( \begin{bmatrix}1\\ \frac{\delta\theta}{2}\end{bmatrix} -\begin{bmatrix}1\\ \vec{0}\end{bmatrix}\right) }{\Delta t}=q\otimes\begin{bmatrix}0\\ \frac{\omega}{2}\end{bmatrix} q˙=Δt0limΔtq(t+Δt)q(t)=Δt0limΔtqΔqq=Δt0limΔtq([12δθ][10 ])=q[02ω]

数学公式参考
四元数求导参考
旋转向量旋转矩阵求导
旋转矩阵与旋转轴转换数学公式
李群李代数历史

###################
好记性不如烂笔头
积跬步期千里
觉得不错的话,记得点赞收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/63976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

32单片机串口数据接收、空闲IDLE中断详解

一、前提说明 一开始写单片机程序的时候不太清楚空闲中断这个东西,每次用串口接收数据,都要再开一个定时器,在定时器内进行倒计时,每次接收数据就重置计时时间,计时结束就触发中断,再判断所有接收的数据&am…

深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223

深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道 在现代后端开发中,表单验证是保证数据完整性和服务稳定性的核心环节。如何优雅、高效地实现表单验证,同时提供人性化的错误提示,是每位开发者的必修课。在本文中…

掌握 Ansys ACP 中的参考方向:简化复杂的复合材料设计

概括 在复合材料分析领域,精度至关重要,尤其是在定义纤维方向和铺层时。Ansys ACP(Ansys Composite PrepPost)提供了强大的工具来建立参考方向,这是实现精确结构模拟的关键步骤。在本博客中,我们将揭开在 …

Vue2学习(一)——Vue简介、Vue指令与指令修饰符

一、Vue简介 Vue是一套用于构建用户界面的渐进式框架。 所谓渐进式就是循序渐进,不一定非得把Vue中的所有API都学完才能开发Vue,可以学一点开发一点。 Vue2官网地址:https://v2.cn.vuejs.org/ Vue3官网地址:https://cn.vuejs…

Redis--通用命令学习

目录 一、引言 二、基础命令 1.set 2.get 3.keys 3.1 keys ? 3.2 keys * 3.3 keys [abe] 3.4 keys [^] 3.5 keys [a-b] 4.exists 5.delete 6.expire 7.ttl 8.type 三、Redis中的过期策略(面试题) 1.惰性删除 2.定期删除 …

Linux程序设计(第四版)| 学习笔记

上次学习Linux相关内容还是上学的时候为了应付考试,最近有项目涉及Linux,重新学习以下。 很多年前关于Linux的总结 一、入门 1.概念 (1) UNIX 1)定义:指的是一种遵循特定规范的计算机操作系统。 2)特点:简单性、集中性、可重用…

PostgreSQL 的历史

title: PostgreSQL 的历史 date: 2024/12/23 updated: 2024/12/23 author: cmdragon excerpt: PostgreSQL 是一款功能强大且广泛使用的开源关系型数据库管理系统。其历史可以追溯到1986年,当时由加州大学伯克利分校的一个研究团队开发。文章将深入探讨 PostgreSQL 的起源、…

Ubuntu22.04 LTS 安装nvidia显卡驱动

准备跑老师给定的Github上的多模态源码,但是用了这么久ubuntu还没有尝试过安装nvidia驱动,好在也是一次成功,于是记录下来。 借鉴的是Ubuntu22.04安装显卡驱动(高速、避错版)-CSDN博客这篇文章,按照流程来基本没有问题,不过个人觉得有些步骤比较冗余,所以记录下来 主要…

WPS工具栏灰色怎么办

WPS离线不登录,开启工具栏等相关功能 当你在使用WPS的过程中,若因网络问题或其他特殊原因,导致无法登录使用WPS时,可根据以下步骤开启离线兼容模式,开启此模式后,可在未登录的状态下,激活并使用…

国标GB28181-2022平台EasyGBS:安防监控中P2P的穿透方法

在安防监控领域,P2P技术因其去中心化的特性而受到关注,尤其是在远程视频监控和数据传输方面。P2P技术允许设备之间直接通信,无需通过中央服务器,这在提高效率和降低成本方面具有明显优势。然而,P2P技术在实际应用中也面…

Mac Android studio 升级LadyBug 版本,所产生的bug

当Build 出现,这样的文字以后: Your build is currently configured to use incompatible Java 21.0.3 and Gradle 7.3.3. Cannot sync the project. We recommend upgrading to Gradle version 8.9. The minimum compatible Gradle version is 8.5. …

com.google.common.collect.ImmutableList$SerializedForm

今天AndroidStudio安装了个2021版本的,gradle用了7.3.3,创建项目后控制台总是有这样一个错误: Unable to load class com.google.common.collect.ImmutableList$SerializedForm. This is an unexpected error. Please file a bug containing…

Docker部署Sentinel

一、简介 是什么:面向分布式、多语言异构化服务架构的流量治理组件 能干嘛:从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性 官网地址:https://sentinelguard.io/zh-c…

HTMLCSSJavaScriptDOM 之间的关系?

一、HTML 中文名:超文本标记语言 英文名:HyperText Markup Language HTML是一种用来结构化Web网页及其内容的标记语言。 HTML 由一系列的元素组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。 图Ⅰ 每…

Hadoop集群(HDFS集群、YARN集群、MapReduce​计算框架)

一、 简介 Hadoop主要在分布式环境下集群机器,获取海量数据的处理能力,实现分布式集群下的大数据存储和计算。 其中三大核心组件: HDFS存储分布式文件存储、YARN分布式资源管理、MapReduce分布式计算。 二、工作原理 2.1 HDFS集群 Web访问地址&…

位运算符、标记位传参

位运算符: 位运算符作用于操作数的位(bit)。 按位与(&)对应位都为1时结果为1 int a 5; // 0101 int b 3; // 0011 int result a & b; // 0001 按位或(|)对应位至少有一个为1时结…

施耐德变频器ATV320系列技术优势:创新与安全并重

在工业自动化领域,追求高效、安全与智能已成为不可阻挡的趋势。施耐德变频器ATV320系列凭借其强大的设计标准和全球认证,成为能够帮助企业降低安装成本,提高设备性能的创新解决方案。 【全球认证,品质保障】ATV320 系列秉持施耐德…

项目练习:element-ui的valid表单验证功能用法

文章目录 一、情景说明二、代码实现 一、情景说明 一般表单提交的时候,都要对表单数据进行前段验证。 比如登陆表单提交。 二、代码实现 package.json "element-ui": "2.15.14",main.js 引用ElementUI import ElementUI from element-ui; i…

【es6复习笔记】Symbol 类型及其应用(9)

一、Symbol 简介 Symbol 是 JavaScript 中的一种基本数据类型,它表示唯一的标识符。Symbol 的主要目的是防止属性名冲突,尤其是在多个代码库或模块中共享对象时。Symbol 值可以用作对象的属性名,这样可以确保属性名是唯一的,不会…

Linux挖矿程序排查

一、背景 我们收到一个阿里云安全告警,内容是服务器可能存在挖矿程序。 二、杀死挖矿程序 2.1 找到可疑服务器进程 #1.输入top命令,输入shift P会按照cpu的使用率大小从大到小进行排序,cpu使用率高的就是可疑进程。 top #2.查看运行该进程…