当前位置:网站首页>20220621 Dual Quaternion
20220621 Dual Quaternion
2022-06-23 05:28:00 【我起个什么名字呢】
对偶数
一、对偶数是什么?
https://zhuanlan.zhihu.com/p/358146509
对偶数是一种特殊的自洽的运算,类似于常用的复数基本单位 i i i ( i 2 = − 1 i^2=-1 i2=−1),这里数学家们对对偶数基本单位的定义是 ϵ \epsilon ϵ ( ϵ 2 = 0 \epsilon^2=0 ϵ2=0 且 ϵ ≠ 0 \epsilon\neq0 ϵ=0)。
类似于复数的定义 a + i b a+ib a+ib,对偶数的定义为 a + ϵ b a+\epsilon b a+ϵb。
基于上述定义,定义两个对偶数 d 1 = a 1 + ϵ b 1 d_1=a_1+\epsilon b_1 d1=a1+ϵb1 和 d 2 = a 2 + ϵ b 2 d_2=a_2+\epsilon b_2 d2=a2+ϵb2 ,按照一般的运算法则可以得到对偶数的运算:
k d 1 = ( k a 1 ) + ϵ ( k b 1 ) d 1 + d 2 = ( a 1 + a 2 ) + ϵ ( b 1 + b 2 ) d 1 d 2 = a 1 a 2 + ϵ ( a 1 b 2 + a 2 b 1 ) + ϵ 2 b 1 b 2 = a 1 a 2 + ϵ ( a 1 b 2 + a 2 b 1 ) d 1 ∗ = a 1 − ϵ b 1 ∣ d 1 ∣ = d 1 d 1 ∗ = ∣ a 1 ∣ d 1 − 1 = 1 a 1 + ϵ b 1 = a 1 − ϵ b 1 a 1 2 = 1 a 1 − ϵ b 1 a 1 2 if a 1 ≠ 0 d 2 d 1 = a 2 + ϵ b 2 a 1 + ϵ b 1 = ( a 2 + ϵ b 2 ) ( a 1 − ϵ b 1 ) ( a 1 + ϵ b 1 ) ( a 1 − ϵ b 1 ) = a 1 a 2 + ϵ ( a 1 b 2 − a 2 b 1 ) a 1 2 = a 2 a 1 + ϵ ( b 2 a 1 − a 2 b 1 a 1 2 ) if a 1 ≠ 0 \begin{aligned} k d_1&= (k a_1) + \epsilon (k b_1) \\ d_1+d_2 &= (a_1+a_2) + \epsilon (b_1+b_2) \\ d_1d_2 &=a_1a_2+ \epsilon (a_1b_2+a_2b_1)+\epsilon^2b_1b_2=a_1a_2+ \epsilon (a_1b_2+a_2b_1) \\ d_1^* &=a_1-\epsilon b_1 \\ |d_1| & = \sqrt{d_1d_1^*}=|a_1| \\ d_1^{-1}&=\frac{1}{a_1+\epsilon b_1}=\frac{a_1-\epsilon b_1}{a_1^2}=\frac{1}{a_1}-\epsilon\frac{b_1}{a_1^2} \quad \text{if}~ a_1\neq 0 \\ \frac{d_2}{d_1}&=\frac{a_2+\epsilon b_2}{a_1+\epsilon b_1}=\frac{(a_2+\epsilon b_2)(a_1-\epsilon b_1)}{(a_1+\epsilon b_1)(a_1-\epsilon b_1)}=\frac{a_1a_2+\epsilon(a_1b_2-a_2b_1)}{a_1^2}=\frac{a_2}{a_1}+\epsilon(\frac{b_2}{a_1}-\frac{a_2b_1}{a_1^2}) \quad \text{if}~ a_1\neq 0 \end{aligned} kd1d1+d2d1d2d1∗∣d1∣d1−1d1d2=(ka1)+ϵ(kb1)=(a1+a2)+ϵ(b1+b2)=a1a2+ϵ(a1b2+a2b1)+ϵ2b1b2=a1a2+ϵ(a1b2+a2b1)=a1−ϵb1=d1d1∗=∣a1∣=a1+ϵb11=a12a1−ϵb1=a11−ϵa12b1if a1=0=a1+ϵb1a2+ϵb2=(a1+ϵb1)(a1−ϵb1)(a2+ϵb2)(a1−ϵb1)=a12a1a2+ϵ(a1b2−a2b1)=a1a2+ϵ(a1b2−a12a2b1)if a1=0
对偶数最大的好处是泰勒展开,后面多余的项直接消失,即
f ( a + ϵ b ) = f ( a ) + ϵ b f ′ ( a ) + ϵ 2 ( … ) = f ( a ) + ϵ b f ′ ( a ) f(a+\epsilon b)=f(a)+\epsilon b f'(a)+\epsilon^2(\dots)=f(a)+\epsilon b f'(a) f(a+ϵb)=f(a)+ϵbf′(a)+ϵ2(…)=f(a)+ϵbf′(a)因此,进一步可以得到 e a + ϵ b = e a + ϵ b e a ln ( a + ϵ b ) = ln ( a ) + ϵ b 1 a if a ≠ 0 sin ( a + ϵ b ) = sin ( a ) + ϵ b cos ( a ) cos ( a + ϵ b ) = cos ( a ) − ϵ b sin ( a ) \begin{aligned} e^{a+\epsilon b}&=e^{a}+\epsilon b e^a \\ \ln(a+\epsilon b)&=\ln(a)+\epsilon b\frac{1}{a}\quad \text{if}~ a\neq 0 \\ \sin(a+\epsilon b)&=\sin(a)+\epsilon b \cos(a) \\ \cos(a+\epsilon b)&=\cos(a)-\epsilon b \sin(a) \end{aligned} ea+ϵbln(a+ϵb)sin(a+ϵb)cos(a+ϵb)=ea+ϵbea=ln(a)+ϵba1if a=0=sin(a)+ϵbcos(a)=cos(a)−ϵbsin(a)
进一步,可以发现 f ′ ( a ) = f ( a + ϵ b ) − f ( a ) ϵ b f'(a)=\frac{f(a+\epsilon b)-f(a)}{\epsilon b } f′(a)=ϵbf(a+ϵb)−f(a)注意这里是直接线性化,而不是近似线性化,这个可以用来计算导数。
二、对偶矢量
翟洪民. 基于对偶四元数的航天器近距离接近位姿同步规划与控制. 哈尔滨工业大学, 2021
对偶矢量 d = a + ϵ b \boldsymbol{d}=\boldsymbol{a}+\epsilon \boldsymbol{b} d=a+ϵb , a , b ∈ R n \boldsymbol{a},\boldsymbol{b}\in\mathbb{R}^n a,b∈Rn,又有
d = [ a 1 a 2 ⋮ a n ] + ϵ [ b 1 b 2 ⋮ b n ] = [ a 1 + ϵ b 1 a 2 + ϵ b n ⋮ a n + ϵ b n ] \boldsymbol{d}=\left[\begin{array}{c} a_{1} \\ a_{2} \\ \vdots \\ a_{n} \end{array}\right]+\epsilon \left[\begin{array}{c} b_{1} \\ b_{2} \\ \vdots \\ b_{n} \end{array}\right]=\left[\begin{array}{c} a_1+\epsilon b_1 \\ a_2+\epsilon b_n \\ \vdots \\ a_n+\epsilon b_n \end{array}\right] d=⎣⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎤+ϵ⎣⎢⎢⎢⎡b1b2⋮bn⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡a1+ϵb1a2+ϵbn⋮an+ϵbn⎦⎥⎥⎥⎤也就是说,它可以既被看作实数部分、对偶部分均都矢量构成的对偶数,同时又被看作以对偶数作为元素的矢量。
空间中任意一条直线可用单位对偶矢量来描述。如下图所示,直线 R \boldsymbol{R} R 可以表示为 l + ϵ m \boldsymbol{l}+\epsilon \boldsymbol{m} l+ϵm, l \boldsymbol{l} l 显示直线的平行方向, m \boldsymbol{m} m 显示直线与原点的垂直距离。这里的单位对偶向量通常被称为普吕克(Plücker)直线。

三、对偶四元素
对偶四元数可以看作是元素为对偶数的四元数,也可以看作是元素为四元数的对偶数,即
q ^ = [ η ^ , ξ ^ ] = q + ϵ q ′ = η + ξ 1 i + ξ 2 j + ξ 3 k + ϵ ( η ′ + ξ 1 ′ i + ξ 2 ′ j + ξ 3 ′ k ) \begin{aligned}\hat{\boldsymbol q}&=[\hat{\eta},\hat{\boldsymbol{\xi}}]=\boldsymbol q+\epsilon \boldsymbol q' \\ &=\eta+\xi_1\boldsymbol{i}+\xi_2\boldsymbol{j}+\xi_3\boldsymbol{k}+\epsilon\left( \eta'+\xi_1'\boldsymbol{i}+\xi_2'\boldsymbol{j}+\xi_3'\boldsymbol{k} \right) \end{aligned} q^=[η^,ξ^]=q+ϵq′=η+ξ1i+ξ2j+ξ3k+ϵ(η′+ξ1′i+ξ2′j+ξ3′k)
这里的共轭和上面的有些区别,是因为我们将其视为元素为对偶数的四元数。为什么不把它当作元素为四元数的对偶数进行求共轭,具体原因见https://blog.csdn.net/weixin_44382195/article/details/125400408?spm=1001.2014.3001.5501。
q ^ ∗ = q ∗ + ϵ q ′ ∗ \hat{\boldsymbol q}^*=\boldsymbol q^*+\epsilon \boldsymbol q'^* q^∗=q∗+ϵq′∗
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
边栏推荐
- haas506 2.0開發教程-高級組件庫-modem.sms(僅支持2.2以上版本)
- Haas506 2.0 development tutorial -hota (only supports versions above 2.2)
- For non dpdk kvm1.0 machines, set init Maxrxbuffers changed from 256 to 1024 to improve packet receiving capacity
- C language obtains second, millisecond, subtle and nanosecond timestamps
- 将TensorFlow1.x改写为pytorch
- json转化为proto
- 业务逻辑安全思路总结
- English语法_形容词比较级 - 3级变化
- 如何实现与FDA保持邮件通信安全加密?
- Haas506 2.0 development tutorial - Advanced Component Library -modem Voicecall (only supports versions above 2.2)
猜你喜欢

The softing datafeed OPC suite stores Siemens PLC data in an Oracle Database

Day_03 传智健康项目-预约管理-检查组管理
Link of Baidu URL parameter? Research on URL parameter encryption and decryption (code example)

从 WAN 到 SD-WAN 边缘设备的网络架构

C # database reports errors. Let's have a look

原址 交换
百度URL參數之LINK?URL參數加密解密研究(代碼實例)

Detailed explanation of redis persistence, master-slave and sentry architecture

图解 Google V8 # 17:消息队列:V8是怎么实现回调函数的?

Day_ 03 smart communication health project - appointment management - inspection team management
随机推荐
RF content learning
Shutter style
Haas506 2.0 development tutorial -hota (only supports versions above 2.2)
Open source to the world (Part 2): the power of open source from the evolution of database technology BDTC 2021
Plot+seaborn+folium: a visual exploration of Abbey's rental housing data
Docker实战 -- 部署Redis集群与部署微服务项目
CPU的功能和基本结构
射频基础理论(dB)
Topic35——34. Find the first and last positions of elements in a sorted array
2.17 haas506 2.0开发教程-system(仅支持2.2以上版本)
Day_ 02 smart communication health project - appointment management - inspection item management
Gridsearchcv (grid search), a model parameter adjuster in sklearn
Easy EDA #学习笔记09# | ESP32-WROOM-32E模组ESP32-DevKitC-V4开发板 一键下载电路
【踩坑记录】数据库连接未关闭连接,释放资源的坑
Synchronous switching power supply reduces EMI layout dv/dt di/dt
QT中的item views与Item widgets控件的用法总结
30 data visualization tips that can not be ignored
js创建数组(元素都是对象)
The softing datafeed OPC suite stores Siemens PLC data in an Oracle Database
phpStudy设置301重定向