P17四元数


∆θ ω* = ∆t
瞬时角速度
ω = lim ω *
∆t → 0
四元数表示转动 约定
一个坐标系或矢量相对参考坐标系旋转, 转角为θ 一个坐标系或矢量相对参考坐标系旋转, 转角为θ, 与参考系各轴间的方向余弦值为cosα 转轴 n 与参考系各轴间的方向余弦值为 α、cosβ、cosγ。 β γ
n = cos α ⋅ i + cos β ⋅ j + cos γ ⋅ k
= cos cos + sin cos i + sin sin j + cos sin k 2 2 2 2 2 2 2 2
θ
ψ
θ
ψ
θ
ψ
θ
ψ
映象方式1 求方向余弦 映象方式1
以瞬时转轴映象形式给出 以瞬时转轴映象形式给出 映象 转动四元数的表达式并求 出合成转动四元数 第一次转时, 第一次转时,映象形式的 q1 和非映象形式的 q1 是 一致的: 一致的:
四元数表示转动 坐标系旋转
如果坐标系 旋转, 如果坐标系 OXYZ 发生 q 旋转,得到新坐标系 OX’Y’Z’ 一个相对原始坐标系 OXYZ 不发生旋转变换的矢量 V
V = xi + yj + zk
矢量 V 在新坐标系上 OX’Y’Z’ 的投影为
V = x ' i '+ y ' j '+ z ' k '
−1
这个公式的意义是说,在一个超复数空间中, 这个公式的意义是说,在一个超复数空间中,或者在一个固 定坐标系中, 定坐标系中,矢量 VE 按着四元数 q 所表示的方向和大小转 动了一个角度, 动了一个角度,得到一个新的矢量 VE’
四元数补充 计算上的优点
四元数法能得到迅速发展,是由于飞行器控制与导航的发展, 四元数法能得到迅速发展,是由于飞行器控制与导航的发展,要 求更合理地描述刚体空间运动,以及便于计算机的应用。 求更合理地描述刚体空间运动,以及便于计算机的应用。 采用方向余弦矩阵描述飞行器运动时,要积分矩阵微分方程式: 采用方向余弦矩阵描述飞行器运动时,要积分矩阵微分方程式:
相对固定坐标系旋转, 如果矢量 R 相对固定坐标系旋转,旋转四元数为 q,转动后 , 的矢量为 R’,则这种转动关系可通过四元数旋转运算来实现 ,
R' = qRq
−1
含义: 相对固定坐标系产生旋转, 含义:矢量 R 相对固定坐标系产生旋转,转角和转轴由 q 决定 当作标量为零, 运算时 把 R 当作标量为零,只含矢量部分的四元数 。
或简单表示为
q ± M = (λ ± v, P ± µ )
四元数基本性质 乘法
2.四元数乘法 .
q ⋅ M = (λ + P1i + P2 j + P3 k )(v + µ1i + µ 2 j + µ 3 k )
= (λv − P1 µ1 − P2 µ 2 − P3 µ 3 )
+ (λµ1 + P1v + P2 µ 3 − P3 µ 2 )i
在两个坐标系上的投影之间存在如下关系: 则不变矢量 V 在两个坐标系上的投影之间存在如下关系:
Ve ' = q Ve q
式中
−1
Ve = xi + yj + zk
Ve ' = x ' i + y ' j + z ' k
分别称为矢量 V 在坐标系 OXY 映象图解
V = xi + yj + zk
V = x ' i '+ y ' j '+ z ' k '
Ve = xi + yj + zk
Ve ' = x ' i + y ' j + z ' k
四元数表示转动 方向余弦
Ve ' = q −1Ve q
将该投影变换式展开, 将该投影变换式展开,也就是把
Ve ' = x ' i + y ' j + z ' k Ve = xi + yj + zk q −1 = λ − P1i − P2 j − P3 k q = λ + P1i + P2 j + P3 k
求方向余弦 非映象方式合成
的瞬时转轴都是以同一个坐标系的方向余弦来 由于 q1 和 q2 的瞬时转轴都是以同一个坐标系的方向余弦来 表示, 的计算采用: 表示,则合成转动四元数 q 的计算采用:
q = q 2 q1
θ ψ θ ψ = cos + sin (cosψ ⋅ i + sin ψ ⋅ j ) cos + sin ⋅ k 2 2 2 2
则表示该旋转的四元数可以写为
q = cos
θ
2
+ sin
θ
2
cos α ⋅ i + sin = cos
θ
2
cos β ⋅ j + sin
θ
2
cos γ ⋅ k
θ
2
+ sin
θ
2
⋅n
四元数既表示了转轴方向,又表示了转角大小(转动四元数) 四元数既表示了转轴方向,又表示了转角大小(转动四元数)
四元数 表示
i = j j = k k = −1 j =−j i=k k = −k j = i i = −i k = j
k
i
j
q = λ + P1i + P2 j + P3 k
λ 称作标量部分, 称作标量部分,
P1i + P2 j + P3 k 四元数的另一种表示法 q = (λ , P )
称作矢量部分 P 泛指矢量部分
ɺ C = CΩ
q = q1 q 2 q3
ψ ψ θ θ ϕ ϕ = cos + sin ⋅ k cos + sin ⋅ i cos + sin ⋅ k 2 2 2 2 2 2 θ ψ −ϕ θ ψ −ϕ θ ψ −ϕ = cos cos + sin cos ⋅ i + sin sin ⋅j 2 2 2 2 2 2
q = q1 q 2
的转轴方向必须以映象的形式给出。 上式中 q1 和 q2 的转轴方向必须以映象的形式给出。 的转轴方向都以原始坐标系的分量表示, 如果 q1 和 q2 的转轴方向都以原始坐标系的分量表示,则有
q = q 2 q1
非映象方式1 求方向余弦 非映象方式1
用四元数旋转变换的方法求取两个坐标系之间的方向余弦表。 用四元数旋转变换的方法求取两个坐标系之间的方向余弦表。 坐标系 OX’Y’Z’ 相对 OXYZ 三次旋转,以 三次旋转, 欧拉角ψ 欧拉角ψ 、θ、φ的 形式给出。 形式给出。 第一转, 轴转ψ 第一转,绕 Z 轴转ψ 角,瞬时转轴 n 和 k 轴重合, 轴重合,则转动四元 数为
四元数表示转动 旋转合成
多次旋转的合成 多次旋转的合成
对于一个坐标系经过多次旋转后, 对于一个坐标系经过多次旋转后,新坐标系和原始坐标系之间 的关系等效于一个一次转动的效果, 的关系等效于一个一次转动的效果,相应地有合成转动四元数 分别是第一次转动、 假定 q1、q2 分别是第一次转动、第二次转动的四元数 q 是合成转动的四元数,那么有如下关系成立: 是合成转动的四元数,那么有如下关系成立:
其中方向余弦矩阵
λ2 + P 2 − P22 − P32 2(P P2 + λP3 ) 2(P P3 − λP2 ) 1 1 1 2 2 2 2 C = 2(P1 P2 − λP3 ) λ + P2 − P − P3 2(P2 P3 + λP ) 1 1 2(P P3 + λP2 ) 2(P2 P3 − λP ) λ2 + P32 − P 2 − P22 1 1 1
n = cos α ⋅ i + cos β ⋅ j + cos γ ⋅ k
表示该旋转的四元数
q = cos
θ
2
+ sin
θ
2
cos α ⋅ i + sin = cos
θ
2
cos β ⋅ j + sin
θ
2
cos γ ⋅ k
θ
2
+ sin
θ
2
⋅n
为特征四元数 (范数为 1 )
四元数表示转动 矢量旋转
q1 = cos
ψ
2
+ sin
ψ
2
⋅k
非映象方式2 求方向余弦 非映象方式2
第二转,绕 OX1 轴转θ角, 第二转, 轴转θ 瞬时转轴 n 的方向表示式为
(cosψ ⋅ i + sin ψ ⋅ j )
其转动四元数为
q 2 = cos
= cos
θ
2
+ sin
θ
2
⋅n
θ
2
+ sin
θ
2
(cosψ ⋅ i + sin ψ ⋅ j )
q1 = cos
ψ
2
+ sin
ψ
2
⋅k
映象方式2 求方向余弦 映象方式2
第二转绕 OX1 轴转 θ角 角 瞬时转轴 n 是由 OX 经过 第一转转换来的 OX 轴对应单位矢量 i,所 , 以定义 n 的映象为 i 则 q2 的映象表示式为
q 2 = cos
θ
2
+ sin
θ
2
合集下载

四元数简介——精选推荐

四元数简介——精选推荐

四元数简介在我之前,⽹上各个博客各⼤⽹站都有很多关于四元数的介绍与讲解!但我总结了⼀下接三个字:看不懂!说实话!这真的是实话!举个例⼦:1.旋转,应该是三种坐标变换——缩放、旋转和平移,中最复杂的⼀种了。

⼤家应该都听过,有⼀种旋转的表⽰⽅法叫四元数。

按照我们的习惯,我们更加熟悉的是另外两种旋转的表⽰⽅法——矩阵旋转和欧拉旋转。

矩阵旋转使⽤了⼀个4*4⼤⼩的矩阵来表⽰绕任意轴旋转的变换矩阵,⽽欧拉选择则是按照⼀定的坐标轴顺序(例如先x、再y、最后z)、每个轴旋转⼀定⾓度来变换坐标或向量,它实际上是⼀系列坐标轴旋转的组合。

那么,四元数⼜是什么呢?简单来说,四元数本质上是⼀种⾼阶复数(听不懂了吧。

),是⼀个四维空间,相对于复数的⼆维空间。

我们⾼中的时候应该都学过复数,⼀个复数由实部和虚部组成,即x = a + bi,i是虚数单位,如果你还记得的话应该知道i^2 = -1。

⽽四元数其实和我们学到的这种是类似的,不同的是,它的虚部包含了三个虚数单位,i、j、k,即⼀个四元数可以表⽰为x = a + bi + cj + dk。

那么,它和旋转为什么会有关系呢?怎么样,看得懂吗?反正⼩编是被现实胖揍⼀顿!那么,今天我们要怎么来介绍这个四元数呢?我们来最简单暴⼒的!重新定义⼀下这个怪物四元数!Quaternion(四元数)⽤于计算和表⽰Unity旋转。

它们计算紧凑⾼效,不受万向节死锁的困扰,并且可以很⽅便快速地进⾏球⾯插值。

Unity内部使⽤四元数来表⽰所有的旋转。

注意重点:1,不受万向节死锁的困扰。

2,⽅便快速地进⾏球⾯插值。

3, Unity内部使⽤四元数来表⽰所有的旋转。

好了,现在你得重定义应该是这样的:定义:Quaternion(四元数)⽤于计算和表⽰Unity旋转。

就像当初数学⽼师告诉你∏(pai)⽤来表⽰圆周率⼀样!你有探究过∏(pai)是怎么算出来的吗?但是你们是不是都知道怎么利⽤圆周率计算圆的⾯积呢?类似的,对于初学者的我们,最重要的是现在要学会和记住四元数的使⽤⽅法。

形象解说四元数

形象解说四元数

形象解说四元数By daode1212 2016-03-16前言:四元数(Quaternions)是由爱尔兰数学家哈密顿(William Rowan Hamilton,1805-1865)在1843年发明的数学概念。

复数、向量、矩阵都是数学中的基本要素,就如同编程中的数组、对象、集合那样。

四元数是一种超复数,是复数与三维向量的复合体。

四元数也有加法、减法、乘法、但是四元数的乘法不符合交换律(commutative law),即a*b <> b*a,而且,还有转置、规范化、共轭三种运算。

由于它在描述三维旋转、姿态方面的一些特有优点,所以在飞行器(飞机,火箭,导弹等),机器人姿态的控制中常用到。

数学手册中在代数结构的“群-环-域”中稍有点介绍,它属于不可交换的除环,称哈密顿四元数体。

以下是一些四元数运算的效果图:四元数理论创立人:William Rowan Hamilton,1805-1865一,四元数的几种表示形式:OpenTK中,为建立四元数提供了多种方式:public Quaternion(float x, float y, float z, float w);public Quaternion(OpenTK.Vector3v, float w);例如用Quaternion(float x, float y, float z, float w):OpenTK.Quaternion q = new OpenTK.Quaternion(0.51f, -0.71f, 0.31f, 0.7071f);1, 四元数建构方式一:i^2=j^2=k^2=-1ij=-ji=k,jk=-kj=i,ki=-ik=jq=w+ix+jy+kz,i,j,k分别对应轴向量X(1,0,0),Y(0,1,0),Z(0,0,1)2, 四元数建构方式二:转动角之半+轴向量的方向余弦:3, 四元数建构方式三:转动角之半+单位球面上的点:二,四元数的模如q是四元数,OpenTK中有:1, q.Length;返回值是:2, q.LengthSquared;返回值是:,与点积(内积)q·q是一致的。

四元数

四元数

二.四元数与姿态阵之间的关系
3.由于 || Q || q0 2 q12 q2 2 q3 2 =1,所以:
q0 2 q12 q2 2 q3 2 R Cb 2(q1q2 q0 q3 ) 2(q q q q ) 1 3 0 2
2(q1q2 q0 q3 ) q0 q1 q2 q3 2(q2 q3 q0 q1 )
构造四元数:
q0 cos

2
2 q2 m sin 2 q3 n sin 2
q1 l sin

Q q0 q1i0 q2 j0 q3 k0 cos cos

2
(li0 mj0 bk0 ) sin

2

2
u R sin

2
二.四元数与姿态阵之间的关系
记:
rx ' r 'R r ' y rz '
rx rR r y rz
l uR m n
二.四元数与姿态阵之间的关系
0 n m rx r (u r ) R n 0 l y 0 m l rz
q0 2 q12 q2 2 q3 2 CbR 2(q1q2 q0 q3 ) 2(q q q q ) 1 3 0 2 2(q1q2 q0 q3 ) q0 q1 q2 q3 2(q2 q3 q0 q1 )
2 2 2 2
2(q2 q3 q0 q1 ) 2 2 2 2 q0 q1 q2 q3 2(q1q3 q0 q2 )
二.四元数与姿态阵之间的关系

四元数解析

四元数解析

四元数解析一、四元数是啥呢?嘿呀,四元数这个东西啊,可有点小神秘又有点小酷呢。

它就像是数学这个大乐园里一个超级独特的小天地。

四元数啊,其实是一种复数的扩展啦。

就好像我们本来有个小房子,然后突然给它加盖了好几层,变得超级酷炫。

二、四元数的构成它是由一个实数部分和三个虚数部分组成的哦。

这就好像是一个小团队,有一个队长(实数部分),还有三个特别的小伙伴(虚数部分)。

这三个虚数部分还都有着自己独特的小标识,它们可不是随便凑在一起的,而是有着非常奇妙的组合规则呢。

三、四元数的历史在数学的发展长河里,四元数的出现也是一段很有趣的故事。

有好多聪明的数学家们不断探索,就像探险家在未知的大陆上寻找宝藏一样。

经过很多人的努力,四元数才逐渐被发现和完善。

它在数学发展中可是有着很重要的地位,就像一颗璀璨的星星照亮了数学天空的一角。

四、四元数的用途1. 在计算机图形学里它可厉害了呢。

比如说在3D游戏的制作中,要让那些虚拟的角色动起来,转圈圈,四元数就能很好地来处理旋转的问题。

就像一个超级小助手,默默地在背后让游戏画面变得更加流畅和逼真。

2. 在物理学领域它也有自己的小舞台。

像是在研究一些物体的旋转运动的时候,四元数就可以简洁又高效地描述物体的状态。

这可比其他的方法有时候要方便很多呢。

五、四元数的计算它的计算规则有点像我们玩一种特别的数学游戏。

比如说加法、乘法之类的运算,都有着自己独特的小算法。

这些算法虽然刚开始学的时候可能有点绕,但只要你耐心去探索,就会发现其中的乐趣。

就像解开一道道有趣的小谜题一样。

六、四元数和其他数学概念的关系四元数和复数、向量这些数学概念都有着千丝万缕的联系。

它就像是一个大家庭里的一员,和其他成员之间有着相互的影响和作用。

复数可以说是四元数的小前辈,而四元数又对向量的发展有着一定的启发呢。

四元数详解

四元数详解

四元数详解四元数是一种数学概念,它在多个领域都有广泛的应用。

在计算机图形学中,四元数用于表示旋转变换。

下面我将以人类的视角来介绍四元数的定义、性质和应用。

四元数是一种扩展了复数的数学结构。

它由一个实部和三个虚部组成,可以写成q = a + bi + cj + dk的形式,其中a、b、c、d分别是实数,i、j、k是虚数单位。

与复数一样,四元数也有加法和乘法运算。

我们来看四元数的定义。

四元数的实部a对应于实数部分,而虚部bi + cj + dk对应于虚数部分。

四元数的加法定义很简单,就是将实部和虚部分别相加。

而乘法则稍微复杂一些,需要使用四元数的乘法规则:i² = j² = k² = ijk = -1。

通过这个规则,我们可以计算出两个四元数的乘积。

接下来,我们来探讨一下四元数的性质。

首先,四元数的加法满足交换律和结合律。

然而,四元数的乘法不满足交换律,即ab ≠ ba。

此外,四元数的乘法满足结合律,但不满足分配律。

这些性质使得四元数的运算有一些独特的特点。

四元数在计算机图形学中有广泛的应用。

由于四元数可以用于表示旋转变换,因此在三维游戏和动画中经常被用到。

与传统的欧拉角相比,四元数具有很多优点,例如不存在万向锁问题和旋转插值更加平滑。

因此,使用四元数可以提高计算机图形学的效率和质量。

除了计算机图形学,四元数还在其他领域有着重要的应用。

例如,在航空航天领域,四元数可以用于表示飞行器的姿态和旋转控制。

在物理学中,四元数可以用于描述粒子的自旋。

此外,四元数还可以用于解决某些数学问题,例如解四次方程和计算曲线的弯曲度。

四元数是一种重要的数学概念,具有广泛的应用。

它在计算机图形学、航空航天和物理学等领域都发挥着重要作用。

通过深入理解四元数的定义、性质和应用,我们能够更好地应用它们解决实际问题,推动科学技术的发展。

四元数及姿态解算

四元数及姿态解算


q1

q2
q3
q1 q2 q0 q3 q3 q0 q2 q1
q3 p0
q2 q1


p1



p2


M
'(q) P
q0 p3
(2-2)
(2-3) (2-4) (2-5) (2-6)
由此可知,四元数的乘法不满足交换律,除非四元数还原为纯数字。
第三讲 四元数及姿态解算
一、 四元数的起源
在古希腊的亚里斯多德时代就已经有了力的矢量分解了,即力可以分解为
F

ai

bj
(1-1)
但那个时代并不意味着 i j 。在此之前人们就已经有了对纯粹数字的认识和相应的运算
规则,但是纯数字和矢量是没有混在一起表示物理量的,1879 年高斯撰写了一篇未曾发表的 文章,其中提到了 a bi 的含义,可以看出他试图建立一个三分量的代数( a ,bi , a bi )。
t 0
dt 2
0


x y
z
x y 0 z z 0 y x
z


y

x

0
(4-2) (4-3) (4-4) (4-5)
在(4-5)的基础上,剔除所有的零元,则有
q0 (t) q1(t)
d dt
q1
(t
)

q2
(t

1r0

0r1

3r2

2r3

1 0

32rr00
3r1 2r1
0r2 1r2

03.四元数

03.四元数四元数单位四元数可以⽤来描述三维空间中的旋转,它既是紧凑的,也没有奇异性。

⼀个四元数描述唯⼀⼀个空间旋转,但是⼀个空间旋转可以由互为相反数的两个四元数表⽰。

1.四元数四元数的定义四元数是由四个元构成的数Q(q0,q1,q2,q3)=q0+q1i+q2j+q3kq0,q1,q2,q3是实数,i,j,k是满⾜如下条件的单位向量i⊗i=−1,j⊗j=−1,k⊗k=−1 ⾃⼰与⾃⼰进⾏四元数乘结果为-1。

i⊗j=k,j⊗k=i,k⊗i=j按照i→j→k→i...的顺序两两作四元数乘可以得到下⼀个。

j⊗i=−k,k⊗j=−i,i⊗k=−j按照i→j→k→i...相反的顺序两两作四元数乘可以得到下⼀个的负。

⊗表⽰四元数乘法四元数的表达⽅式⽮量式Q=q0+q其中q0称四元数Q的标量部分,q称四元数Q的⽮量部分。

q是三维空间中的⼀个向量。

复数式Q=q0+q1i+q2j+q3k可视为⼀个超复数,Q的共轭复数记为:Q∗=q0−q1i−q2j−q3k三⾓式Q=cos θ2+u sinθ2式中,u为单位向量,即旋转轴。

θ为实数,即绕单位向量u的旋转⾓度。

指数式Q=e u θ2式中,u和θ同上。

矩阵式Q=q0 q1 q2 q3四元数的⼤⼩—范数四元数的⼤⼩⽤四元数的范数来表⽰:||Q||=q20+q21+q22+q23||Q||=1,则Q成为规范化四元数。

描述旋转的四元数成为规范化四元数。

规范化四元数参与旋转运动时要作归⼀化。

四元数的运算加法和减法:对应实部和虚部相加/减[]Q=q0+q1i+q2j+q3kP=p0+p1i+p2j+p3k则Q±P=(q0±p0)+(q1±p1)i+(q2±p2)j+(q3±p3)k乘法:合并同类项(根据向量i,j,k向量相乘规则)标量乘a Q=aq0+aq1i+aq2j+aq3k其中a为标量四元数乘P⊗Q=(q0+q1i+q2j+q3k)⊗(p0+p1i+p2j+p3k)=(p0q0−p1q1−p2q2−p3q3)+(p0q1+p1q0+p2q3−p3q2)i+(p0q2+p2q0+p3q1−p1q3)j+(p0q3+p3q0+p1q2−p2q1)k =r0+r1i+r2j+r3k写成矩阵形式r0r1 r2 r3=p0−p1−p2−p3p1p0−p3p2p2p3p0−p1p3−p2p1p0q0q1q2q3=M(P)Q或r0r1 r2 r3=q0−q1−q2−q3q1q0q3−q2q2−q3q0q1q3q2−q1q0p0p1p2p3=M′(Q)P注意:四元数乘法不满⾜交换律P⊗Q=M(P)Q≠M′(P)Q=Q⊗P 四元数乘法满⾜分配律和结合律P⊗(Q+R)=P⊗Q+P⊗RP⊗Q⊗R=(P⊗Q)⊗R=P⊗(Q⊗R)此外,还有(P⊗Q)∗=Q∗⊗P∗证明,略。

四元数简介

• 四元数都ຫໍສະໝຸດ 1、i、j 和 k 的线性组合,一般
可表示为 d + ai + bj + ck,a、b、c、d是 实数。 • 四元数的其它表示方法: 1、q=[w,v] 其中v=(x,y,z)是矢量,w是标量。 2、q=( cosθ/2 , (x ,y,z )sinθ/2) 3、q=[d,a,b,c]T
• • • • •
纠正陀螺仪积分得出的姿态。 长期融合用到的传感器是加速度计和电子罗盘 假设正确的姿态四元数为Q,那么可以利用四元数旋转将参考坐标系和 体坐标系下的向量互相转换,将Eh和Eg转换到体坐标系下 BEh=Q×Eh×Q* BEg=Q×Eg×Q * 理论上Bg=BEg,Bh=BEh 即 { Q×Eh×Q* - Bh = 0} , { Q×Eg×Q* - Bg = 0} 这两个方程成立,联立这两个方程就可以解得姿态四元数Q。但是,由 于各种误差的存在,这个方程组只能找到最优解,找最优解的问题有许 多方法可以采用,如[梯度下降][高斯牛顿]
• q1 q2=
w2 x 2 y2 z2
四元数在姿态运算上的应用
• 一个单位化的四元数可以描述一个三维旋转的过程。例如:
p0以原点为旋转中心,旋转的轴是(α, β, γ) ( α^2 + β^2 + γ^2 = 1), 转θ角的旋转,用四元数表示就是: p1= qp0q-1
四元数
齐朋冲
四元数的引入
• 复数的加、乘运算可以表示平面向量的合成、伸
缩和旋转变换,这些知识我们已经在中学课程中 学过了。 那么,很自然的问题就是,在三维,或更高维空 间中是否也有复数的类似物?其中的元素还可以 像复数域那样做加、减、乘、除运算,并满足通 常复数的那些运算律,包括加法和乘法的交换律 与结合律、乘法对加法的分配律等待?更进一步, 我们是否可以期望用这样的数来表示三维或更高 维空间中的伸缩和旋转,就像用复数表示平面向 量的伸缩旋转那样方便?

四元数的初步总结

四元数的初步总结(一)四元数是最简单的超复数。

复数是由实数加上元素i组成,其中i^2=-1。

相似地,四元数都是由实数加上三个元素i、j、k组成,而且它们有如下的关系:i^2=j^2=k^2=ijk=-1,每个四元数都是1、i、j和k的线性组合,即是四元数一般可表示为a+bi+cj+dk,其中a、b、c、d是实数一、四元数引入的理论背景将实数域扩充到复数域,并用复数来表示平面向量,用复数的加、乘运算表示平面向量的合成、伸缩和旋转变换,这些观念已经在中学课程中学过了。

那么,很自然的问题就是,在三维,或更高维空间中是否也有复数的类似物?也就是说,像扩充实数那样,在复数域的基础上添加一个或几个新的元素,并且让它们跟原来的复数做加减乘除,是否就可以得到一个新的数集,并且其中的元素还可以像复数域那样做加、减、乘、除运算,并满足通常复数的那些运算律,包括加法和乘法的交换律与结合律、乘法对加法的分配律等待?更进一步,我们是否可以期望用这样的数来表示三维或更高维空间中的伸缩和旋转,就像用复数表示平面向量的伸缩旋转那样方便?把问题说得明确一些,即是说,我们是否可以像得到复数域那样,在复数域中再添加一个新的元素(因此也是在实数基础上添加两个元素和),得到一个类似于复数集合,这个集合中的元素当时就是普通的复数,当时就是普通的实数,并且通常数的加减乘除运算及其性质都可以在这个集合上保持,即满足:1、对于任意两个数,它们的和是唯一确定的。

2、对于任意两个数,它们的积是唯一确定的。

3、存在一个数0,它具有性质:对于任意a,均有a+0=a。

4、对于每一个数a,均存在数x,适合等式a+x=0。

5、加法适合交换律:a+b=b+a。

6、加法适合结合律:(a+b)+c=a+(b+c)。

7、乘法适合交换律:a·b=b·a。

8、乘法适合结合律:(a·b)·c=a·(b·c)。

9、乘法对加法适合分配律:a (b+c)=ab+ac 和(a+b)c=ac+bc。

四元数小总结

四元数⼩总结四元数记法:⼀个四元数包含⼀个标量分量和⼀个3D向量分量。

记标量为w,记向量为v或分开的x,y,z。

如下:[w,v][w,(x,y,z)]四元数与复数:四元数扩展了复数系统,它使⽤三个虚部i,j,k。

它们的关系如下:i2=j2=k2=-1ij=k,ji=-kjk=i,kj=-iki=j,ik=-j⼀个四元数[w,(x,y,z)]定义了复数 w+xi+yj+zk。

四元数和轴-⾓对:四元数能被解释为⾓位移的轴-⾓对⽅式。

其公式为下:设向量n为旋转轴,θ为绕轴旋转的量。

q=[cos(θ/2) sin(θ/2)n]=[cos(θ/2) (sin(θ/2)n x sin(θ/2)n y sin(θ/2)n z)]负四元数:-q=[-w (-x -y -z)]=[-w -v]q和-q代表的实际⾓位移是相同的,很奇怪吧!如果我们将θ加上360度的倍数,不会改变q代表的⾓位移,但它使q的四个分量变负了。

因此,3D中的任意⾓位移都有两种不同的四元数表⽰⽅式,它们互相为负。

单位四元数:⼏何上存在2个单位四元数:[1,0]和[-1,0]。

它们的意义是:当旋转⾓为360度的整数倍时,⽅位并没有改变,并且旋转轴也是⽆关紧要的。

数学上只有⼀个单位四元数:[1,0]。

任意四元数q乘以单位四元数[1,0]仍为q。

四元数的模:公式如下:||q||=||[w (x y z)]||=sqrt(w2+x2+y2+z2) =||[w v]||=sqrt(w2+||v||2)⼏何意义:||q||=sqrt(cos(θ/2)2+sin(θ/2)2||n||2)若n为单位向量,则:||q||=1四元数共轭:q*=[w -v]=[w (-x -y -z)]四元数的逆:q-1=q*/||q||但我们只使⽤单位四元数,故q-1=q*⼏何解释:使向量v反向,则旋转⽅向也反向了。

因此q绕轴旋转θ⾓,⽽q*沿相反的⽅向旋转相同的⾓度。

四元数乘法(叉乘):[w1 v1][w2 v2]=[w1w2-v1v2 w1v2+w2v1+v2×v1]四元数叉乘满⾜结合律但不满⾜交换律:(ab)c=a(bc)ab!=ba四元数乘积的模等于模的乘积:||q1q2||=||q1|| ||q2||四元数乘积的逆等于各个四元数的逆以相反的顺序相乘:(ab)-1=b-1a-1如何⽤四元数将3D点绕轴旋转:让我们“扩展”⼀个标准3D点(x,y,z)到四元数空间,通过定义四元数p=[0, (x,y,z)]即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档