四元数
1.轴、角转四元数公式:
q = [cos(Q/2), sin(Q /2)v] v是旋转轴矢量,Q是旋转角度
2.欧拉角转四元数:
qroll = [cos (y/2), (sin(y/2), 0, 0)]
qpitch = [cos (q/2), (0, sin(q/2), 0)]
qyaw = [cos(f /2), (0, 0, sin(f /2)]
pitch(俯仰),yaw(偏航),roll(滚转)
3.四元数转旋转矩阵:
| 1 - 2y2 - 2z2 2yz + 2wx 2xz - 2wy | Rm = | 2xy - 2wz 1 - 2x2 - 2z2 2yz - 2wx | | 2xz + 2wy 2yz - 2wx 1 - 2x2 - 2y2|
4.矩阵转四元数代码:
MatToQuat(float m[4][4], QUAT * quat)
{
float tr, s, q[4];
int i, j, k;
int nxt[3] = {1, 2, 0};
tr = m[0][0] + m[1][1] + m[2][2];
// check the diagonal
if (tr > 0.0)
{
s = sqrt (tr + 1.0);
quat->w = s / 2.0;
s = 0.5 / s;
quat->x = (m[1][2] - m[2][1]) * s;
quat->y = (m[2][0] - m[0][2]) * s;
quat->z = (m[0][1] - m[1][0]) * s;
}
else
{
// diagonal is negative
i = 0;
if (m[1][1] > m[0][0]) i = 1;
if (m[2][2] > m[i][i]) i = 2;
j = nxt[i];
k = nxt[j];
s = sqrt ((m[i][i] - (m[j][j] + m[k][k])) + 1.0); q[i] = s * 0.5;
if (s != 0.0) s = 0.5 / s;
q[3] = (m[j][k] - m[k][j]) * s;
q[j] = (m[i][j] + m[j][i]) * s;
q[k] = (m[i][k] + m[k][i]) * s;
quat->x = q[0];
quat->y = q[1];
quat->z = q[2];
quat->w = q[3];
}
}
5.四元数转矩阵代码:
QuatToMatrix(QUAT * quat, float m[4][4]){
float wx, wy, wz, xx, yy, yz, xy, xz, zz, x2, y2, z2;
// calculate coefficients
x2 = quat->x + quat->x;
y2 = quat->y + quat->y;
z2 = quat->z + quat->z;
xx = quat->x * x2;
xy = quat->x * y2;
xz = quat->x * z2;
yy = quat->y * y2;
yz = quat->y * z2;
zz = quat->z * z2;
wx = quat->w * x2;
wy = quat->w * y2;
wz = quat->w * z2;
m[0][0] = 1.0 - (yy + zz);
m[1][0] = xy - wz;
m[2][0] = xz + wy;
m[3][0] = 0.0;
m[0][1] = xy + wz;
m[1][1] = 1.0 - (xx + zz);
m[2][1] = yz - wx;
m[3][1] = 0.0;
m[0][2] = xz - wy;
m[1][2] = yz + wx;
m[2][2] = 1.0 - (xx + yy);
m[3][2] = 0.0;
m[0][3] = 0;
m[1][3] = 0;
m[2][3] = 0;
m[3][3] = 1;
}
6.欧拉角转四元数代码:
EulerToQuat(float roll, float pitch, float yaw, QUAT * quat) {
float cr, cp, cy, sr, sp, sy, cpcy, spsy;
// calculate trig identities
cr = cos(roll/2);
cp = cos(pitch/2);
cy = cos(yaw/2);
sr = sin(roll/2);
sp = sin(pitch/2);
sy = sin(yaw/2);
cpcy = cp * cy;
spsy = sp * sy;
quat->w = cr * cpcy + sr * spsy;
quat->x = sr * cpcy - cr * spsy;
quat->y = cr * sp * cy + sr * cp * sy; quat->z = cr * cp * sy - sr * sp * cy; }
四元数乘法
QuatMul(QUAT *q1, QUAT *q2, QUAT *res){ float A, B, C, D, E, F, G, H;
A = (q1->w + q1->x)*(q2->w + q2->x);
B = (q1->z - q1->y)*(q2->y - q2->z);
C = (q1->w - q1->x)*(q2->y + q2->z);
D = (q1->y + q1->z)*(q2->w - q2->x);
E = (q1->x + q1->z)*(q2->x + q2->y);
F = (q1->x - q1->z)*(q2->x - q2->y);
G = (q1->w + q1->y)*(q2->w - q2->z);
H = (q1->w - q1->y)*(q2->w + q2->z);
res->w = B + (-E - F + G + H) /2;
res->x = A - (E + F + G + H)/2;
res->y = C + (E - F + G - H)/2;
res->z = D + (E - F - G + H)/2;
}
四元数插值
QuatSlerp(QUAT * from, QUAT * to, float t, QUAT * res)
{
float to1[4];
double omega, cosom, sinom, scale0, scale1;
// calc cosine
cosom = from->x * to->x + from->y * to->y + from->z * to->z + from->w * to->w;
// adjust signs (if necessary)
if ( cosom <0.0 ){ cosom = -cosom; to1[0] = - to->x;
to1[1] = - to->y;
to1[2] = - to->z;
to1[3] = - to->w;
} else {
to1[0] = to->x;
to1[1] = to->y;
to1[2] = to->z;
to1[3] = to->w;
}
// calculate coefficients
if ( (1.0 - cosom) > DELTA ) {
// standard case (slerp)
omega = acos(cosom);
sinom = sin(omega);
scale0 = sin((1.0 - t) * omega) / sinom; scale1 = sin(t * omega) / sinom;
} else {
// "from" and "to" quaternions are very close
// ... so we can do a linear interpolation
scale0 = 1.0 - t;
scale1 = t;
}
// calculate final values
res->x = scale0 * from->x + scale1 * to1[0]; res->y = scale0 * from->y + scale1 * to1[1]; res->z = scale0 * from->z + scale1 * to1[2]; res->w = scale0 * from->w + scale1 * to1[3]; }。
四元数
1 0 0 1 0 1 0 1 1 0 ,则集 H 内任意方阵可唯一表为 aIbE cJ dK ,即 , E 1 0 , J ;K c d a b 1 0 0 1 1 0 1 d c b a 0 1 1 0 1 1 0 2 2 2 H {aI bE cJ dK | a,b,c,dR} ,H 对矩阵减法封闭 ;且 E J K I , EJ K,JK E,KE J; JE K,KJ E,EK J ,矩阵乘法在 H 内封闭,故 H 对矩阵加,乘法构 1 来自
[d, b, c] [a, d, c] [a, b, d] 推论 [a, b, c] 0 d a b c a {b (c d)} (b d)(a c) (b c)(a d) [a, b, c] [a, b, c]
S() : 2a R
N( ) : a2 b2 c2 d2 R
证明: 0 0, oder, 0
0, und, 0 0 N( ) 0 0 ,即 0, und, 0 0 ,同理 0,und, 0 0 0 N( ) 0 证明:若 是方程 x 2 S( ) N( ) 0 的根,则 也是其根. 因为, 是方程 x 2 S( ) N( ) 0 的根 2 ( ) ( ) 0 2 ( ) ( ) 0 也是其根)
四矢外积: (a b) (c d) [a, b, d]c [a, b, c]d [c, d, a]b [c, d, b]a (V, V, V, V) V 三矢外积 三矢外积 (a b) (c d) ((a b) d)c ((a b) c)d [a, b, d]c [a, b, c]d; (a b) (c d) ((c d) a)b ((c d) b)a [c, d, a]b [c, d, b]a
四元数
二.四元数与姿态阵之间的关系
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 )
二.四元数与姿态阵之间的关系
四元数
定义两个四元数:
其中表示矢量 ;而表示矢量。
跟复数、向量和矩阵一样,两个四元数之和需要将不同的元素加起来。 加法遵循实数和复数的所有交换律和结合律。
威廉·卢云·哈密顿
明确地说,四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一 个四维空间,相对于复数为二维空间。
四元数是除环(除法环)的一个例子。除了没有乘法的交换律外,除法环与域是相类的。特别地,乘法的结 合律仍旧存在、非零元素仍有逆元素。
四元数形成一个在实数上的四维结合代数(事实上是除法代数),并包括复数,但不与复数组成结合代数。 四元数(以及实数和复数)都只是有限维的实数结合除法代数。
不只如此,哈密顿还创造了向量的内外积。他亦把四元数描绘成一个有序的四重实数:一个纯量和向量的组 合。若两个纯量部为零的四元数相乘,所得的纯量部便是原来的两个向量部的纯量积的负值,而向量部则为向量 积的值,但它们的重要性仍有待发掘。
哈密顿之后继续推广四元数,并出了几本书。最后一本《四元数的原理》(Elements of Quaternions)于 他死后不久出版,长达八百多页。
非奇异表达(和例如欧拉角之类的表示相比)
比矩阵更紧凑(更快速)
单位四元数的对可以表示四维空间中的一个转动。
所有单位四元数的集合组成一个三维球和在乘法下的一个群(一个李群)。是行列式为1的实正交3×3正交 矩阵的群的双面覆盖,因为每两个单位四元数通过上述关系对应于一个转动。群和同构,是行列式为1的复酉 2×2矩阵的群。令为形为的四元数的集合,其中或者都是整数或者都是分子为奇数分母为2的有理数。集合是一 个环,并且是一个格。该环中存在 24个四元数,而它们是施莱夫利符号为的正二十四胞体的顶点。
四元数法作用
四元数法作用四元数是一种用于表示旋转和方向的数学对象,它由一个实部和三个虚部组成。
四元数可以用来替代旋转矩阵,在计算机图形学、机器人学、物理学等领域有广泛的应用。
具体来说,四元数法在以下方面起着作用:1. 旋转和空间变换:在物理学中,四元数被用于描述旋转和空间变换,如机器人学中的机器人姿态控制和计算机图形学中的三维旋转。
它们还用于电磁场理论、自动控制、量子力学等领域。
例如,考虑一个三维空间中的向量v = xi + yj + zk,其中i、j、k是四元数中的虚数单位。
我们可以使用四元数的乘法运算来旋转这个向量。
假设我们有一个表示旋转的四元数q = cos(θ/2) + sin(θ/2)(ai + bj + ck),其中θ是旋转的角度,a、b、c是旋转轴的坐标。
那么,通过四元数乘法qvq*(其中q*是q的共轭),我们可以得到旋转后的向量。
2. 解析几何:威廉·弗伦德引入了双线性函数的概念,使得解析几何的研究更加精确和系统化。
双线性函数是指一种同时对两个向量进行线性变换的函数。
它们在矩阵理论中起着重要的作用,以及在微积分、物理学和工程学中的应用。
例如,考虑一个平面上的二次曲线,可以用方程Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0来表示。
通过引入一个双线性函数L(x, y),我们可以将这个二次曲线的方程改写为L(v, v) = 0,其中v = (x, y)是向量表示的点。
这种表示方式更加简洁和统一,并且有助于进一步研究曲线的性质和变换。
此外,弗伦德提出了轴对称性的概念,并将其应用于几何学中。
轴对称性是指物体相对于某个轴对称图形的性质。
比如圆是关于其直径轴对称的,椭圆是关于其长轴和短轴轴对称的。
通过研究轴对称性,弗伦德揭示了许多几何图形的性质,如对称点的存在性、轴对称图形的对称性等,为数学家们提供了解决几何难题的新思路。
3. 天文学:威廉·弗伦德在天文学领域也取得了重要突破。
四元数
为什么使用四元数为了回答这个问题,先来看看一般关于旋转(面向)的描述方法-欧拉描述法。
它使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为0-360(或者0-2pi),一般使用roll,pitch,yaw来表示这些分量的旋转值。
需要注意的是,这里的旋转是针对世界坐标系说的,这意味着第一次的旋转不会影响第二、三次的转轴,简单的说,三角度系统无法表现任意轴的旋转,只要一开始旋转,物体本身就失去了任意轴的自主性,这也就导致了万向轴锁(Gimbal Lock)的问题。
还有一种是轴角的描述方法(即我一直以为的四元数的表示法),这种方法比欧拉描述要好,它避免了Gimbal Lock,它使用一个3维向量表示转轴和一个角度分量表示绕此转轴的旋转角度,即(x,y,z,angle),一般表示为(x,y,z,w)或者(v,w)。
但这种描述法却不适合插值。
那到底什么是Gimbal Lock呢?正如前面所说,因为欧拉描述中针对x,y,z的旋转描述是世界坐标系下的值,所以当任意一轴旋转90°的时候会导致该轴同其他轴重合,此时旋转被重合的轴可能没有任何效果,这就是Gimbal Lock,这里有个例子演示了Gimbal Lock,点击这里下载。
运行这个例子,使用左右箭头改变yaw 为90°,此时不管是使用上下箭头还是Insert、Page Up键都无法改变Pitch,而都是改变了模型的roll。
那么轴、角的描述方法又有什么问题呢?虽然轴、角的描述解决了Gimbal Lock,但这样的描述方法会导致差值不平滑,差值结果可能跳跃,欧拉描述同样有这样的问题。
什么是四元数四元数一般定义如下:q=w+xi+yj+zk其中w是实数,x,y,z是虚数,其中:i*i=-1j*j=-1k*k=-1也可以表示为:q=[w,v]其中v=(x,y,z)是矢量,w是标量,虽然v是矢量,但不能简单的理解为3D空间的矢量,它是4维空间中的的矢量,也是非常不容易想像的。
四元数详解
四元数详解四元数是一种数学概念,它在多个领域都有广泛的应用。
在计算机图形学中,四元数用于表示旋转变换。
下面我将以人类的视角来介绍四元数的定义、性质和应用。
四元数是一种扩展了复数的数学结构。
它由一个实部和三个虚部组成,可以写成q = a + bi + cj + dk的形式,其中a、b、c、d分别是实数,i、j、k是虚数单位。
与复数一样,四元数也有加法和乘法运算。
我们来看四元数的定义。
四元数的实部a对应于实数部分,而虚部bi + cj + dk对应于虚数部分。
四元数的加法定义很简单,就是将实部和虚部分别相加。
而乘法则稍微复杂一些,需要使用四元数的乘法规则:i² = j² = k² = ijk = -1。
通过这个规则,我们可以计算出两个四元数的乘积。
接下来,我们来探讨一下四元数的性质。
首先,四元数的加法满足交换律和结合律。
然而,四元数的乘法不满足交换律,即ab ≠ ba。
此外,四元数的乘法满足结合律,但不满足分配律。
这些性质使得四元数的运算有一些独特的特点。
四元数在计算机图形学中有广泛的应用。
由于四元数可以用于表示旋转变换,因此在三维游戏和动画中经常被用到。
与传统的欧拉角相比,四元数具有很多优点,例如不存在万向锁问题和旋转插值更加平滑。
因此,使用四元数可以提高计算机图形学的效率和质量。
除了计算机图形学,四元数还在其他领域有着重要的应用。
例如,在航空航天领域,四元数可以用于表示飞行器的姿态和旋转控制。
在物理学中,四元数可以用于描述粒子的自旋。
此外,四元数还可以用于解决某些数学问题,例如解四次方程和计算曲线的弯曲度。
四元数是一种重要的数学概念,具有广泛的应用。
它在计算机图形学、航空航天和物理学等领域都发挥着重要作用。
通过深入理解四元数的定义、性质和应用,我们能够更好地应用它们解决实际问题,推动科学技术的发展。
四元数旋转原理
四元数旋转原理四元数是一种数学工具,用于描述三维空间中的旋转。
它是由一个实部和三个虚部组成的超复数,通常表示为q = w + xi + yj+ zk,其中w、x、y、z分别是实部和虚部的系数。
四元数旋转原理是指利用四元数来描述和计算物体在三维空间中的旋转变换。
在传统的三维空间旋转中,我们通常使用旋转矩阵来描述旋转变换。
然而,旋转矩阵存在一些问题,比如旋转矩阵的乘法不满足交换律,而且旋转矩阵的表示方式会导致一些计算上的复杂性。
相比之下,四元数具有一些优势,可以更加简洁和高效地描述旋转变换。
四元数旋转的基本原理是利用四元数来表示旋转变换,并通过四元数的乘法来实现旋转的叠加。
在四元数中,单位虚部i、j、k分别对应着三维空间中的x、y、z轴,而实部w则对应着旋转的角度。
通过四元数的乘法运算,我们可以将多个旋转叠加在一起,而不需要像旋转矩阵那样进行繁琐的矩阵乘法运算。
四元数旋转的计算过程可以简单描述为,首先,将旋转变换表示为一个四元数q,其中实部是cos(θ/2),虚部是sin(θ/2) u,其中θ是旋转角度,u是旋转轴的单位向量;然后,将要旋转的向量表示为一个四元数p,其中实部是0,虚部是向量的坐标;最后,通过四元数的乘法运算q p q^-1,即可得到旋转后的向量。
四元数旋转的优点之一是避免了万向节锁问题,即在欧拉角表示下,当旋转角度接近90度时,会出现旋转轴发生跳变的情况,而四元数可以避免这个问题。
另外,四元数旋转也更加高效,因为四元数的乘法运算相比矩阵乘法更简单快速。
在实际应用中,四元数旋转被广泛应用于计算机图形学、动画、虚拟现实等领域。
通过四元数旋转,可以更加准确地描述物体的旋转变换,同时也能提高计算效率和减少计算复杂性。
总的来说,四元数旋转原理是一种高效、简洁的旋转描述和计算方法,它克服了传统旋转矩阵的一些缺点,具有更好的数学性质和计算性能。
通过四元数旋转,我们可以更加灵活地实现三维空间中的旋转变换,为计算机图形学和虚拟现实等领域的发展提供了重要的数学工具和理论基础。
四元数
四元数一、四元数的来历四元数(Quaternions )最先是由爱尔兰数学家哈密顿(William Rowan Hamilton )在1843年发明的数学概念,它是最简单的超复数起初,我们所熟知的复数是由实数加上元素组成的,形式如下所示 z a ib =+将两维复数扩展至三维复数,可以得到z a ib jc =++现在把两个三维复数相乘,并化简得到12121212121212121212()()()z z a a bb c c i a b b a j a c c a ijb c jic b =--++++++ 然而,对于上式得到的结果ij 和ji 并不是确定的值,因此哈密顿引入了四维复数的概念,将z 写成四维复数的形式,即z a ib jc kd =+++这时,再将两个四维复数相乘,化简可得1212121212121212121212121212121212()()()z z a a b b c c d d i a b b a j a c c a k a d d a ijb c ikb d jic b jkc d kid b kjd c =---++++++++++++然后,哈密顿做了如下规定,即ij=k jk=i ki=j ji=-k kj=-i ik=-j按照如上规定,式化简为如下形式121212121212222111121212121212()()()()()()z z a a b b c c d d a ib jc kd a ib jc kd i c d d c j d b b d k b c c b =-+++++++++-+-+-最后,将z1,z2写成最初的形式,即111222z s v z s v =+=+式中,v1,v2分别表示z1,z2的虚数部分得到121212122112z z s s v v s v s v v v =-+++⨯哈密顿将此式中的对象z1z2叫做四元数,并把虚数部分称作是向量。
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∗证明,略。
四元数的初步总结
四元数的初步总结(一)四元数是最简单的超复数。
复数是由实数加上元素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。
