20230208 对偶四元数的乘法
文章目录
- 前言
- 一、对偶四元数是什么?
- 二、对偶四元数乘法
- 总结
前言
对偶四元数也称为螺旋算子,能够有效描述位置和姿态的耦合关系。
一、对偶四元数是什么?
对偶四元数是同时描述位置和姿态的一种工具,本文对其乘法进行讲解。
二、对偶四元数乘法
给定两个对偶四元数,其乘法按照四元数乘法进行处理。
a = [ a i ] ∈ R 4 \boldsymbol{a}=[a_i]\in\mathbb{R}^4 a=[ai]∈R4, b = [ b i ] ∈ R 4 \boldsymbol{b}=[b_i]\in\mathbb{R}^4 b=[bi]∈R4, c = [ c i ] ∈ R 4 \boldsymbol{c}=[c_i]\in\mathbb{R}^4 c=[ci]∈R4, d = [ d i ] ∈ R 4 \boldsymbol{d}=[d_i]\in\mathbb{R}^4 d=[di]∈R4为四个四元数,其中 a 1 a_1 a1, b 1 b_1 b1, c 1 c_1 c1, d 1 d_1 d1为相应的四个标量, ε \varepsilon ε 为对偶四元数的单位。
[ a 1 + ε b 1 a 2 + ε b 2 a 3 + ε b 3 a 4 + ε b 4 ] ∘ [ c 1 + ε d 1 c 2 + ε d 2 c 3 + ε d 3 c 4 + ε d 4 ] \left[\begin{array}{c} a_1+\varepsilon b_1\\ a_2+\varepsilon b_2\\ a_3+\varepsilon b_3\\ a_4+\varepsilon b_4 \end{array}\right] \circ \left[\begin{array}{c} c_1+\varepsilon d_1\\ c_2+\varepsilon d_2\\ c_3+\varepsilon d_3\\ c_4+\varepsilon d_4 \end{array}\right] a1+εb1a2+εb2a3+εb3a4+εb4 ∘ c1+εd1c2+εd2c3+εd3c4+εd4
参考四元数的乘法,可以对上式进行展开。
[ a 1 + ε b 1 a 2 + ε b 2 a 3 + ε b 3 a 4 + ε b 4 ] ∘ [ c 1 + ε d 1 c 2 + ε d 2 c 3 + ε d 3 c 4 + ε d 4 ] = [ ( a 1 + ε b 1 ) ( c 1 + ε d 1 ) − ( a 2 + ε b 2 ) ( c 2 + ε d 2 ) − ( a 3 + ε b 3 ) ( c 3 + ε d 3 ) − ( a 4 + ε b 4 ) ( c 4 + ε d 4 ) ( c 1 + ε d 1 ) [ a 2 + ε b 2 a 3 + ε b 3 a 4 + ε b 4 ] + ( a 1 + ε b 1 ) [ c 2 + ε d 2 c 3 + ε d 3 c 4 + ε d 4 ] + [ a 2 + ε b 2 a 3 + ε b 3 a 4 + ε b 4 ] × [ c 2 + ε d 2 c 3 + ε d 3 c 4 + ε d 4 ] ] \left[\begin{array}{c} a_1+\varepsilon b_1\\ a_2+\varepsilon b_2\\ a_3+\varepsilon b_3\\ a_4+\varepsilon b_4 \end{array}\right] \circ \left[\begin{array}{c} c_1+\varepsilon d_1\\ c_2+\varepsilon d_2\\ c_3+\varepsilon d_3\\ c_4+\varepsilon d_4 \end{array}\right] =\left[\begin{array}{c} (a_1+\varepsilon b_1)(c_1+\varepsilon d_1)-(a_2+\varepsilon b_2)(c_2+\varepsilon d_2)-(a_3+\varepsilon b_3)(c_3+\varepsilon d_3)-(a_4+\varepsilon b_4)(c_4+\varepsilon d_4)\\ (c_1+\varepsilon d_1)\left[\begin{array}{c} a_2+\varepsilon b_2\\ a_3+\varepsilon b_3\\ a_4+\varepsilon b_4 \end{array}\right] +(a_1+\varepsilon b_1)\left[\begin{array}{c} c_2+\varepsilon d_2\\ c_3+\varepsilon d_3\\ c_4+\varepsilon d_4 \end{array}\right] + \left[\begin{array}{c} a_2+\varepsilon b_2\\ a_3+\varepsilon b_3\\ a_4+\varepsilon b_4 \end{array}\right]^{\times} \left[\begin{array}{c} c_2+\varepsilon d_2\\ c_3+\varepsilon d_3\\ c_4+\varepsilon d_4 \end{array}\right] \end{array}\right] a1+εb1a2+εb2a3+εb3a4+εb4 ∘ c1+εd1c2+εd2c3+εd3c4+εd4 = (a1+εb1)(c1+εd1)−(a2+εb2)(c2+εd2)−(a3+εb3)(c3+εd3)−(a4+εb4)(c4+εd4)(c1+εd1) a2+εb2a3+εb3a4+εb4 +(a1+εb1) c2+εd2c3+εd3c4+εd4 + a2+εb2a3+εb3a4+εb4 × c2+εd2c3+εd3c4+εd4
同时,有
[ a 2 + ε b 2 a 3 + ε b 3 a 4 + ε b 4 ] × = [ 0 − ( a 4 + ε b 4 ) a 3 + ε b 3 a 4 + ε b 4 0 − ( a 2 + ε b 2 ) − ( a 3 + ε b 3 ) a 2 + ε b 2 0 ] \left[\begin{array}{c} a_2+\varepsilon b_2\\ a_3+\varepsilon b_3\\ a_4+\varepsilon b_4 \end{array}\right]^\times=\left[\begin{array}{ccc} 0 & -(a_4+\varepsilon b_4) & a_3+\varepsilon b_3 \\ a_4+\varepsilon b_4 & 0 & -(a_2+\varepsilon b_2)\\ -(a_3+\varepsilon b_3) & a_2+\varepsilon b_2 & 0 \end{array}\right] a2+εb2a3+εb3a4+εb4 ×= 0a4+εb4−(a3+εb3)−(a4+εb4)0a2+εb2a3+εb3−(a2+εb2)0
进一步展开,
[ a 1 + ε b 1 a 2 + ε b 2 a 3 + ε b 3 a 4 + ε b 4 ] ∘ [ c 1 + ε d 1 c 2 + ε d 2 c 3 + ε d 3 c 4 + ε d 4 ] = [ a 1 c 1 − a 2 c 2 − a 3 c 3 − a 4 c 4 + ε ( b 1 c 1 + a 1 d 1 − b 2 c 2 − a 2 d 2 − b 3 c 3 − a 3 d 3 − b 4 c 4 − a 4 d 4 ) [ c 1 a 2 + ε ( c 1 b 2 + d 1 a 2 ) c 1 a 3 + ε ( c 1 b 3 + d 1 a 3 ) c 1 a 4 + ε ( c 1 b 4 + d 1 a 4 ) ] + [ a 1 c 2 + ε ( a 1 d 2 + b 1 c 2 ) a 1 c 3 + ε ( a 1 d 3 + b 1 c 3 ) a 1 c 4 + ε ( a 1 d 4 + b 1 c 4 ) ] + [ 0 − ( a 4 + ε b 4 ) a 3 + ε b 3 a 4 + ε b 4 0 − ( a 2 + ε b 2 ) − ( a 3 + ε b 3 ) a 2 + ε b 2 0 ] [ c 2 + ε d 2 c 3 + ε d 3 c 4 + ε d 4 ] ] \left[\begin{array}{c} a_1+\varepsilon b_1\\ a_2+\varepsilon b_2\\ a_3+\varepsilon b_3\\ a_4+\varepsilon b_4 \end{array}\right] \circ \left[\begin{array}{c} c_1+\varepsilon d_1\\ c_2+\varepsilon d_2\\ c_3+\varepsilon d_3\\ c_4+\varepsilon d_4 \end{array}\right] =\left[\begin{array}{c} a_1c_1-a_2c_2-a_3c_3-a_4c_4+\varepsilon(b_1c_1+a_1d_1-b_2c_2-a_2d_2-b_3c_3-a_3d_3-b_4c_4-a_4d_4) \\ \left[\begin{array}{c} c_1a_2+\varepsilon (c_1b_2+d_1a_2)\\ c_1a_3+\varepsilon (c_1b_3+d_1a_3)\\ c_1a_4+\varepsilon (c_1b_4+d_1a_4) \end{array}\right] + \left[\begin{array}{c} a_1c_2+\varepsilon (a_1d_2+b_1c_2)\\ a_1c_3+\varepsilon (a_1d_3+b_1c_3)\\ a_1c_4+\varepsilon (a_1d_4+b_1c_4) \end{array}\right] + \left[\begin{array}{ccc} 0 & -(a_4+\varepsilon b_4) & a_3+\varepsilon b_3 \\ a_4+\varepsilon b_4 & 0 & -(a_2+\varepsilon b_2)\\ -(a_3+\varepsilon b_3) & a_2+\varepsilon b_2 & 0 \end{array}\right] \left[\begin{array}{c} c_2+\varepsilon d_2\\ c_3+\varepsilon d_3\\ c_4+\varepsilon d_4 \end{array}\right] \end{array}\right] a1+εb1a2+εb2a3+εb3a4+εb4 ∘ c1+εd1c2+εd2c3+εd3c4+εd4 = a1c1−a2c2−a3c3−a4c4+ε(b1c1+a1d1−b2c2−a2d2−b3c3−a3d3−b4c4−a4d4) c1a2+ε(c1b2+d1a2)c1a3+ε(c1b3+d1a3)c1a4+ε(c1b4+d1a4) + a1c2+ε(a1d2+b1c2)a1c3+ε(a1d3+b1c3)a1c4+ε(a1d4+b1c4) + 0a4+εb4−(a3+εb3)−(a4+εb4)0a2+εb2a3+εb3−(a2+εb2)0 c2+εd2c3+εd3c4+εd4
再进行整理,可以得到
[ a 1 + ε b 1 a 2 + ε b 2 a 3 + ε b 3 a 4 + ε b 4 ] ∘ [ c 1 + ε d 1 c 2 + ε d 2 c 3 + ε d 3 c 4 + ε d 4 ] = [ a 1 c 1 − a 2 c 2 − a 3 c 3 − a 4 c 4 + ε ( b 1 c 1 + a 1 d 1 − b 2 c 2 − a 2 d 2 − b 3 c 3 − a 3 d 3 − b 4 c 4 − a 4 d 4 ) [ c 1 a 2 + a 1 c 2 + ε ( c 1 b 2 + d 1 a 2 + a 1 d 2 + b 1 c 2 ) c 1 a 3 + a 1 c 3 + ε ( c 1 b 3 + d 1 a 3 + a 1 d 3 + b 1 c 3 ) c 1 a 4 + a 1 c 4 + ε ( c 1 b 4 + d 1 a 4 + a 1 d 4 + b 1 c 4 ) ] + [ − ( a 4 + ε b 4 ) ( c 3 + ε d 3 ) + ( a 3 + ε b 3 ) ( c 4 + ε d 4 ) ( a 4 + ε b 4 ) ( c 2 + ε d 2 ) − ( a 2 + ε b 2 ) ( c 4 + ε d 4 ) − ( a 3 + ε b 3 ) ( c 2 + ε d 2 ) + ( a 2 + ε b 2 ) ( c 3 + ε d 3 ) ] ] \left[\begin{array}{c} a_1+\varepsilon b_1\\ a_2+\varepsilon b_2\\ a_3+\varepsilon b_3\\ a_4+\varepsilon b_4 \end{array}\right] \circ \left[\begin{array}{c} c_1+\varepsilon d_1\\ c_2+\varepsilon d_2\\ c_3+\varepsilon d_3\\ c_4+\varepsilon d_4 \end{array}\right] =\left[\begin{array}{c} a_1c_1-a_2c_2-a_3c_3-a_4c_4+\varepsilon(b_1c_1+a_1d_1-b_2c_2-a_2d_2-b_3c_3-a_3d_3-b_4c_4-a_4d_4) \\ \left[\begin{array}{c} c_1a_2+a_1c_2+\varepsilon (c_1b_2+d_1a_2+a_1d_2+b_1c_2)\\ c_1a_3+a_1c_3+\varepsilon (c_1b_3+d_1a_3+a_1d_3+b_1c_3)\\ c_1a_4+a_1c_4+\varepsilon (c_1b_4+d_1a_4+a_1d_4+b_1c_4) \end{array}\right] + \left[\begin{array}{c} -(a_4+\varepsilon b_4)(c_3+\varepsilon d_3)+(a_3+\varepsilon b_3)(c_4+\varepsilon d_4)\\ (a_4+\varepsilon b_4)(c_2+\varepsilon d_2)-(a_2+\varepsilon b_2)(c_4+\varepsilon d_4)\\ -(a_3+\varepsilon b_3)(c_2+\varepsilon d_2)+(a_2+\varepsilon b_2)(c_3+\varepsilon d_3) \end{array}\right] \end{array}\right] a1+εb1a2+εb2a3+εb3a4+εb4 ∘ c1+εd1c2+εd2c3+εd3c4+εd4 = a1c1−a2c2−a3c3−a4c4+ε(b1c1+a1d1−b2c2−a2d2−b3c3−a3d3−b4c4−a4d4) c1a2+a1c2+ε(c1b2+d1a2+a1d2+b1c2)c1a3+a1c3+ε(c1b3+d1a3+a1d3+b1c3)c1a4+a1c4+ε(c1b4+d1a4+a1d4+b1c4) + −(a4+εb4)(c3+εd3)+(a3+εb3)(c4+εd4)(a4+εb4)(c2+εd2)−(a2+εb2)(c4+εd4)−(a3+εb3)(c2+εd2)+(a2+εb2)(c3+εd3)
总结
对偶四元数的乘法与四元数的乘法形式一致。
20230208 对偶四元数的乘法相关推荐
- 笔记-基于对偶四元数的姿轨耦合动力学模型1
基于对偶四元数的航天器姿轨耦合建模 对偶四元数能一体化描述空间刚体转动和平动,基于对偶四元数建立航天器相对运动的姿轨耦合动力学模型.对偶四元数表示的动力学模型形式简洁,具有明确的物理意义,与四元数描述 ...
- 对偶四元数——使用python3实现对偶四元数的符号运算 v2.0
实现对偶四元数简单的符号运算,数值运算,2.0版本 改正了v1.0中的一些错误,添加了四元数归一化,转换为齐次变换矩阵,转换为螺旋,转换为双矢量,三种共轭等功能 可以先看最后例子的效果 目录 1 创建 ...
- 四元数,对偶四元数,三维旋转,平移
注:本文中, 带箭头的粗体字母(如 n ⃗ \vec{\boldsymbol n} n )表示 三维向量 不带箭头的粗体字母(如 q \boldsymbol q q)表示 四元数 顶上带尖尖的粗体字母 ...
- C语言实现四元数的乘法(三维矢量、四元数以及旋转矢量与四元数相乘源码)
四元数的乘法 四元数 四元数的运算 源码 四元数 在将三维矢量代数推广至乘法和除法运算的研究中,爱尔兰数学家.物理学家哈密顿于1843年创建了四元数((quaternion)和四元数代数.四元数是指由 ...
- 点的旋转(4):四元数的乘法
点的旋转(4):四元数的乘法 前言 矢量积 旋转 C++代码 前言 同样的,跟前面一眼四元数的乘法也代表了旋转,四元数的积有多种定义,这里我们只讲被用在旋转操作的上积 -- 矢量积 矢量积 对于两个四 ...
- 四元数乘法_JPL四元数和Hamilton四元数的区别
四元数的定义: 1.顺序 JPL: 实部在后 , Hamilton: 实部在前 , 2.坐标系 JPL: 左手坐标系 Hamilton: 右手坐标系 3.坐标系的转换方向 JPL: global-to ...
- 【转】四元数的推导过程
[转]四元数的推导过程 来自:https://blog.csdn.net/qq_28773183/article/details/80083607 四元数旋转推导过程 1.基本概念 (1) 四元数的一 ...
- 四元数(Quaternion)和欧拉角(Eulerangle)
欧拉旋转.四元数.矩阵旋转之间的差异 除了欧拉旋转以外,还有两种表示旋转的方式:矩阵旋转和四元数旋转.接下来我们比较它们的优缺点. 欧拉角 优点:三个角度组成,直观,容易理解. 优点:可以进行从一个方 ...
- 彻底搞懂四元数(转载)
转载自:https://blog.csdn.net/silangquan/article/details/39008903 提要 旋转的表达方式有很多种,有欧拉角,旋转矩阵,轴角,四元素等等,今天要学 ...
最新文章
- 小程序支付 PHP
- Spring 框架 详解 (四)------IOC装配Bean(注解方式)
- 桔子浏览器电脑版看不了视频怎么办 视频无法播放怎么解决
- CDH5.16.2下载安装
- android toolbar区别,Android《ToolBar》
- 运行中SQL Server查询存储
- OGNL表达式语言详解
- 计算机无法验证签名,计算机中win10/win7无法验证文件数字签名的解决方法
- IT界最短的笑话:上中台!
- python如何判断tcp异常断开_TCP socket如何判断连接断开
- unity3d FPS 枪的后座力
- 等保安全计算环境之Windows(安全审计+入侵防范)(二级)
- 数字IC验证方法的分类
- java如何给数组初始化?
- 城市公共交通周 9月18日郑州5条公交免费坐
- Python数据可视化---pygal模块
- 防抖节流的实现与区分(详解带代码)
- 吐血整理 | 据说这里有一份关于BAT的 “宝藏级” 面试记录终于可以看了!
- java作用域外调用对象,Java Web应用中往往通过设置不同作用域的属性来达到通讯的目的。 如果某个对象只在同一请求中共享,通过调用哪个类 的setAttribute方法设置属性。( )...
- 【威联通Nas】安装docker版本的Nextcloud
热门文章
- DCDC直流非隔离负高电压输出电源模块12V24V转0-负50v/-150v/-200v/-250v/-300v/-400v/-500v
- 论Cardano修仙之路,聊ADA现状分析
- linux sftp与ftp,Linux ftp和sftp命令
- 入门图形学:光照模型(四)
- IIC总线随机读VHDL实现FIFO实现乒乓操作HM62256测试定制IP核
- Python基础必掌握的5种数据类型和8种内置函数基本操作
- 表单验证-----验证图片格式
- string+DFS leetcode-17.电话号码下的字母组合
- 注意力机制详解(Attention详解)
- EOS智能合约开发系列(三)