logo资料库

四元数的初步总结.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
1四元数的初步总结(一)前一阵子,以前公司的一位同事向我请教一段计算机图形程序中的算法,其中涉及齐次坐标和四元数。齐次坐标问题到好讲解,但四元数方面以前所知几乎为零。正好我看到齐民友在《复分析,可视化方法》译后记中提到的一本书:《高观点下的初等数学》([德]克莱因著,以下简称《初等数学》)当中有一段讲到四元数,于是就细读了一遍,把这个专题的整理笔记写下来。但是那本书里有很多结果依靠繁杂的机械运算,让人看了不知道这样的结果是怎么得出来的。因此我们这里用向量代数的观点重新审视四元数的一些结果,让四元数的特性看起来更直观,更自然。另外还有一些我认为重要的有关四元数引入的背景知识,例如数域的扩充问题的证明,那本书里只有一部分提示,这里也试着补全一些。一、四元数引入的理论背景将实数域扩充到复数域,并用复数来表示平面向量,用复数的加、乘运算表示平面向量的合成、伸缩和旋转变换,这些观念已经在中学课程中学过了。那么,很自然的问题就是,在三维,或更高维空间中是否也有复数的类似物?也就是说,像扩充实数那样,在复数域的基础上添加一个或几个新的元素,并且让它们跟原来的复数做加减乘除,是否就可以得到一个新的数集,并且其中的元素还可以像复数域那样做加、减、乘、除运算,并满足通常复数的那些运算律,包括加法和乘法的交换律与结合律、乘法对加法的分配律等待?更进一步,我们是否可以期望用这样的数来表示三维或更高维空间中的伸缩和旋转,就像用复数表示平面向量的伸缩旋转那样方便?把问题说得明确一些,即是说,我们是否可以像得到复数域那样,在复数域中再添加一个新的元素(因此也是在实数基础上添加两个元素和),得到一个类似于复数集合,这个集合中的元素当时就是普通的复数,当时就是普通的实数,并且通常数的加减乘除运算及其性质都可以在这个集合上保持,即满足: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。10、1是乘法单位元,即仍然满足1·a=a·1=a11、乘法有逆元,即对每个非零数a,存在唯一的数x,满足等式xa=ax=1。历史上有很多数学家试图寻找过三维的复数,但后来证明这样的三维复数是不存在的。有关这个结论的证明,我没有查到更明确的版本,据《古今数学思想》中的一个理由,三维空间中的伸缩旋转变换需要四个变量来决定:两个变量决定轴的方向,一个变量决定旋转角度,一个变量决定伸缩比例。这样,只有三个变量的三维复数无法满足这样的要求。
2但是历史上得到的应该是比这个更强的结论,即使不考虑空间旋转,只从代数角度来说,三维的复数域作为普通复数域的扩张域是不存在的。并且,据《古今数学思想》叙述,即使像哈密尔顿后来引入四元数那样,牺牲乘法交换律,这样的三维复数也得不到。(”……经过一些年的努力之后,Hamilton发现自己被迫应作两个让步,第一个是他的新数包含四个分量,而第二个是他必须牺牲乘法交换律。”–《古今数学思想》第三册177页)据《初等数学》中给出的提示,我们可以做出这个命题的证明:证明:假设这样的数域存在,那么类似于复数,我们显然可以将看成实数域上的三维向量空间。这是因为上有加法运算和数乘运算,满足1)加法交换律与结合律2)数量乘法的结合律3)0可以作为零向量4)加法有负元5)1a=a验证以上各性质没有用到乘法交换律。同时,因为是这个向量空间上的一组基底,所以这是个三维向量空间。接下来考察上的一个变换,其中不是实数,我们可以任取一个普通复数,比如。可知这样的变换是线性变换,这是因为,由乘法对加法的分配律,有,由乘法结合律,以及在复数范围内乘法有交换律,那么因此,这是个实数域上三维向量空间中的线性变换,根据线性代数理论知,有特征值与特征向量,即存在实数和中的元素满足同时在等式两边右乘的乘法逆元,就得到,这与不是实数的假设矛盾。知道了复数不能推广到三维,我们把目光移向哈密尔顿构造的四维复数,即四元数。复数推广到四元数,必须牺牲掉数域的某一条或几条性质,哈密尔顿抛弃了乘法交换律。为什么是这样呢?因为:命题2:在实数域中再添加有限个新的元素得到的数域都不可能比复数域大,也就是说,如果要求还是数域,还满足所有运算性质,那么就只能是跟复数域一样的东西(即跟复数域同构)。证明:假设是数域,那么同样的,可以把看成实数域上的n维向量空间,在这个集合中任取一个非实数,那么向量组因为有个向量,所以线性相关,所以存在实数使得因为不是实数,所以这个多项式至少是2次的,因此不妨设,因此是这个实系数n次方程的根。因与实数满足通常的运算律,根据多项式因式分解定理,可以把上面的实系数多项式分解为一次与二次实系数因式的乘积,得到因为不是实数,所以前面的一次式不为零,只有后面某个二次式等于零。设其中实数满足。做变换,则有。
3对于每一个新元素,都有相应的满足,现在我们任取两个这样的,不妨设为和,如果考察的一个子集,那么这个就相当于我们通常的复数单位,这个也同构于通常的复数域。如果在上分解二次多项式,我们就可以得到。现在把代入,有。(注:关键在这个式子中的交换律,四元数没有交换律,因此四元数在这里没有问题)因此或者,或者,说明可以用与实数运算表示出来,也就是。所以只能,故与复数域同构。这样,又由于三维空间中的伸缩旋转的复合运算不满足交换律,那么哈密尔顿牺牲乘法交换律而引入四元数,就显得很自然了。二、四元数的加乘运算哈密尔顿在实数基础上添加三个新的基本单位元素,做成一个新的数集:,基本元素之间的乘法满足同时,1仍然有乘法单位的特性,即1与任何单位元素相乘都等于那个元素:这样,相当于制定了一张单位元素之间的乘法表:1ijk11ijkii-1k-jjj-k-1ikkj-i-1以上表格中,最左边的列表示被乘数,最上面行表示乘数。那么根据这个乘法表,并且规定两个四元数的加法与乘法运算如下:对于加法,有对于乘法,有我们先将当成普通的三个变量来展开这个乘积,但要注意之间的乘积的顺序,因为它们之间不满足乘法交换律;然后再对照乘法表,将之化简,就得到
4以上就是四元数加法与乘法的定义。可以立即验证加法交换律、结合律,以及等式p+0=0+p=p,方程p+x=0恒有解,还有乘法对加法的分配律都是成立的。对于乘法结合律,我们使用一点小技巧,先不管是什么,把它们当成普通的字母,那么对它们的加乘运算就类似于多元多项式运算了,只不过字母之间没有乘法交换律。但是结合律对字母乘法是成立的,因为可以用乘法表验证。这样的多元多项式之间必然是满足乘法结合律的,因此和从形式上相等(即i,j,k,i^2,j^2,k^2,ij,ji,jk,kj,ik,ki,iji,jij…等等这些一次到三次乘积的系数对应相等,想想矩阵运算!)那么把它们按乘法表替换之后也相等。这是《初等数学》中提出的方法。另一种更讨巧的方法是《复分析,可视化方法》中用矩阵具体构造的四元数模型,设置四个二阶矩阵分别定义成四元数中的四个单位元素,它们的乘法表符合四元数乘法表,那么它们的实系数线性组合对应的矩阵的加法与乘法可以与四元数集合一一对应。利用矩阵的结合律,可证明四元数的结合律(这个过程中需注意四个矩阵的线性无关性,否则这样的证明是无效的)。因此乘法结合律也可以证明是成立的。1是乘法单位元,即1p=p1=p,这条性质也容易验证。所以,对于上面提到的数域的十一条性质,除第七条乘法交换律,和第十一条乘法逆元存在性之外的所有性质,四元数都满足。四元数显然不满足乘法交换律,那么对于乘法逆元的存在性,以及乘法的逆运算–除法的讨论将在下一节进行。下一节还将集中于四元数运算的几何意义。9月16日补充:1,有关四元数乘法表的确定可能有些人看到四元数乘法规则的时候,会感觉到有些奇怪,为什么三个数的平方都定义成-1?就没有其他方式的定义吗?而更多的人可能觉得乘法表的指定完全是人为规定的,没有什么道理。这个问题在昨天做出”命题2″的证明的时候就有了一点启示,昨天躺在床上终于把它想清楚了。在”命题2″的证明前半部分我们看到,没有乘法交换律的时候,每引入一个新的类型的数,比如在实数中引入,再引入,每引入一个这样的数,就相当于引入了方程的一个新的根。即使不令,还是会有一个新的数满足,那么这个数与原来的复数之间的关系就是平凡的相加相乘关系,用一个可以表示另一个。这样倒不如直接设。在复数基础上只添加一个还不够,还有新的数需要引入,那就是。怎么引入呢?注意到乘积,它不可能是三元的复数,不可能是的形式,因为如果那样的话,参照上面乘法表,去掉最后的做被乘数和乘数的行与列,其它行列就都与无关,三个数的实系数线性组合就构成”三元数”了,这是不可能的。所以乘积就引入一个新的数,定名为。那么就是必然的。这样,乘法表中只剩余四个空缺没有填满,分别是。这四个值互相关联,只要确定一个,其它的也确定。目前还没有找到合适的必然的理由来定义它们的值。但它们的值不是随意确定的。比如,如果令,那么由于,得,即,为了没有零因子只能。所以如果是实数那么只能是负数。现在我们接受,那么其它值也随之确定,乘法表就确定下来了。
5(二)三、四元数乘法的性质与几何意义四元数的乘法不满足交换律,比如,。但不是所有的四元数乘积在交换因子之后都变换符号,比如:而但是也不是所有的四元数都不遵循交换律,比如,这个事情比较奇怪,两个四元数,它们不同顺序的乘积和到底有什么关系呢?看一下刚才的三个例子,好像不管两个乘积是否相等,它们的实数部分都是相等的。您可以再试验几个例子,看一看是不是这样,甚至可以编写一个计算四元数乘积的程序,尝试更多的例子,看一看两个乘积到底有什么关系。但是在我们讨论之后,事情就会比较明朗了。我们从最简单的例子思考,,这几个式子让我们想起了三维空间中的外积,如果把看成三维空间中右手直角坐标系的三个坐标轴上的单位向量,那么它们之间的外积完全符合四元数乘法表。外积也满足乘法对加法的分配律,数量乘法也可以自由出入外积的运算,等等。所以,两个三维向量的外积运算就很类似于四元数的乘法运算:但是所不同的是,在四元数乘法中,三个平方项都等于-1,而在外积中,同方向的向量外积是零。我们或许为此感觉沮丧,但话说回来,这样也许更好,查看三个平方项的系数,发现它们的和恰好构成三个向量的内积,因此,四元数的乘积把两个三维向量的内积和外积都包含在了结果里,总结起来就是:设两个三维向量,用四元数表示为,他们的乘积为现在我们涉及了三种乘积:四元数乘积,我们用表示,或干脆省略符号;内积,用尖括号表示;外积,用叉乘号表示。我们还涉及两种量:实系数,表示;四元数,表示;三维向量,。注意有时向量和四元数没有严格的区分,一个三维向量也可以看成实数部分为零的四元数,而一个一般的四元数也可以看成四维向量。因此,一个四元数可以分解为一个实数和一个三维向量的和:我们通常称这两部分是四元数的实数部分和(三维)向量部分。那么两个四元数的乘积就可以表示为而如果把它们交换乘积,就有注意这两个乘积中,实数乘积和向量内积都是有交换律的,三维向量线性组合部分也相同,只有三维向量外积与顺序有关,有。这样,刚才的问题就明朗了,就是两个向量部分的外积的二倍。如果向量部分外积为零,两个四元数的乘积就可交换了。注意一下乘积式中如果让向量部分内积那一项改变一下符号,就会有更简单的表达式,我们用
6表示与实部相等,向量部分成相反数的四元数,称为的共轭。显然,那么其中表示四维向量之间的内积。当的时候,我们有联想到普通复数的模方公式,这里的公式就是复数模方公式的推广。那么,如果,四元数乘法倒数的问题就解决了,设,那么。尽管每个非零四元数都有倒数,但是因为四元数乘法没有交换律,也就不可能像实数或复数那样写分式。设想一个算式写成,那么是理解为还是理解为呢?这两个乘积可能是不同的。这一点跟矩阵的情形是类似的。接下来,用上面提到的四元数乘积的内外积表达式,可以验证,,再用这个结果得到。这些都是简单的。为了更清楚地看到两个四元数乘积到底是什么样子,我们把上节用到的向量空间的观点拿过来,四元数的全体构成的集合是实数域上的四维向量空间,可以把四元数看成四维实数元组。而且,同样的,一个固定的四元数乘以四元数变量,就相当于四维向量空间上的线性变换,我们考察一下这样的线性变换,如果是个实数,那么这个线性变换只是四维空间中的伸缩变换。所以现在,我们假设的向量部分不为零。因为,所以这是个可逆的线性变换,不仅如此,所有的向量长度都伸缩相同的倍数,也就是一个等距线性变换和一个伸缩的复合。根据线性代数理论,一个等距线性变换要么是单纯的旋转,要么是单纯的对称变换,要么是二者的复合。而四维空间上这样的线性变换必有两个垂直的二维不变子空间,也就是说,可以在四维空间中找到两个相垂直的平面,在每个平面上的向量经过变换之后还是在这个平面上。那么我们现在找一下变换的两个不变子空间。当的向量部分与向量部分同向或反向时,即时,,乘积之后还是一个实数加上的倍数的形式。这表明,四维向量和张成的二维平面就是一个不变子空间。那么另一个不变子空间就应该是和向量与都垂直的平面,因为与垂直,所以这个平面上所有向量的第一个分量,也就是四元数的实部都是零,它们与一样,都是某个四元数向量部分。在向量部分构成的三维空间中,可以找到两个单位向量,使得两两垂直并且三个向量成右手定则关系。那么如果,则由于垂直,有,由于的位置关系,有,因此,还是在这个平面上。考察一下这个乘积在这两个平面上分别干了什么事情,我们就能把四元数乘积看得更清楚了。在和张成的平面上,把和分别映射为和,因此,在这个不变子空间上的矩阵为在张成的平面上,两个基底分别映射为和。因此在这个不变子
7空间上的矩阵也为回想一下平面上的旋转矩阵的公式,在这两个平面内的行为都是一个旋转再复合一个伸缩,旋转的角度是满足,在第一个平面上是从向旋转,而在第二个平面上是从向旋转。伸缩因子为。的行列式值也是这两个矩阵行列式的乘积,即。如果乘在右面,那么在第一个平面内,这个变换的作用与上述相同,因为在这个平面内的向量与的乘积是可交换的;而在第二个平面内,旋转角度不变而旋转方向与上述相反。这个可以计算矩阵来验证。四元数乘积并不能表示四维空间中所有的伸缩旋转,因为它要求两个不变子空间上的旋转角相同。而一般的四维旋转并不要求这一点。所以,这就构成了四元数与二维复数的一个不同点,复数的乘积可以表示复平面上的任意旋转与伸缩变换。那么四元数能表示三维空间中的任意伸缩和旋转吗?四、四元数用于三维空间旋转变换我们要关心的是三维空间上任意的伸缩旋转变换是否可用四元数的乘积来表示,而这一点对四元数来说是完全能够胜任的。我们把三维空间中的点用实部为零的四元数表示成,可以理解为,我们就生活在这个三维空间中。那么用一个四元数左乘我们得到了什么?根据上节内容,变换有两个相互垂直的不变子空间,其中一个是垂直于的平面,是完全在我们的三维空间中的平面,我们可以看得到它。这个平面上的向量在左乘的作用下旋转了一个角度,外加伸缩一个比例;还有一个不变子空间,是与这个平面垂直的平面,即与所在的平面,这个平面超越了我们的三维空间,我们无法完全看到它,只能看到它与我们的三维空间的一条交线,就是所在的直线,这条直线上的向量经过变换之后被旋转到了四维空间中,我们看不到了。怎样才能让转到四维空间的向量转回来,同时又不影响与垂直的平面上的向量呢?设向量与共线,那么就是向四维空间转过了一个角度,我们把这个转出去的向量再右乘,这样,让左乘转出三维空间的向量经右乘之后按刚才的反方向转动相同的角度,它又转回我们的三维空间,相当于方向没变;而与垂直的二维平面上的向量右乘之后又继续按刚才的方向转了相同的角度,相当于按某个方向转动了。这样,我们做变换,其中,因为与乘积可交换,所以,所以在作用下方向不变,就是这个旋转的转轴。而在与垂直的平面上相当于做了两次同向的旋转,每次转动的角度是满足,转动的方向是
8向,其中顺次构成右手坐标系。除了旋转之外还附加了一个伸缩变换,伸缩比例为。如果已知一个三维空间的伸缩旋转的转轴方向、旋转角度和伸缩比例,来求相应的四元数,是比较容易的。设转轴是,其中,旋转角度是,伸缩比例是,那么根据上段叙述,反求如下:我们要让的方向就是转轴方向,即,其中是待定系数。考虑到伸缩比例是,旋转角度满足,因此。如果需要这个旋转的矩阵表示,就是把三个基底分别代入,求得基底经过变换之后的坐标值,作为矩阵的三个列向量。这样,我们对四元数的初步总结到此结束。在克莱因的那本《初等数学》中还有一些详细的内容,另外《可视化复分析》中有一些对四元数和莫比乌斯变换的关系的精彩描述,如果以后觉得有必要记录的话再继续写。9月24日补充:对三维空间旋转的公式的分析,我最初用的是这个公式:这个公式的由来,就是把四元数乘积按乘法加法运算律展开,然后按内外积公式整理,其中用到三个三维向量的外积表示把这个结果看成两个部分:和这两个部分都明显地有几何意义。但是这两部分的几何意义还不足以完美地表征它是个空间旋转,还需要寻找不变子空间才能看出来它是个旋转。所以到后来我能够解释清楚四元数普通乘积的几何意义之后就把这个公式抛弃掉了。但是这个公式可以更简洁直接地计算出用于三维空间旋转时所对应的矩阵表示。因此今天把它记录在这。..
分享到:
收藏