复数:
我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位, i*i= -1;
复变函数:
四元数:
正如复数是有一个实部和一个虚部组成的,那我们将一个虚部换成三个虚部,即两两相交{i, j, k}。
其中n为三维的单位向量,i²=j²=k²=i·j·k=-1。这便是四元数的常规表达形式,不过单位四元数是有一大堆的约束的,并不是所有四维向量都是四元数。
如何去理解四元数:
- 四元数(以后不特指四元数=单位四元数)是四维空间中一个超球上面的点,满足w²+x²+y²+z²=1;而纯四元数是四维空间在w=0时的一个子空间的点,形式为{0, q},特别注意的是纯四元数与四元数是不同的概念。
- 四元数是复数虚部扩展的结果,复数的虚部为1个,而四元数虚部有3个,且两两互相正交,其中实部是cosθ/2,而虚部为一个単位轴乘以sinθ/2。
- 四元数自由度并没有四个维度,由于存在w²+x²+y²+z²=1这个约束,它的自由度其实只有3,且每个四元数可以对应一个特征向量,即n。但请记住四元数并不是与特征向量一一对应的,后文会有说。
如何利用低维信息去理解高维信息?
例子:
三维的球用代数表示为x²+y²+z²=1,虽然球上面的点是由x,y,z三个参数来确定,但实际上我们只需要两个。假设取x和z表示,其中y可以通过x和z进行求解。
那么,我们将y轴信息给隐去,只看投影平面,如下图所示。这张图的意思是,整个球在XOZ平面上投影是一个圆,当球面一点投影在圆上时,y=0;投影的位置位于圆内时,则分别两种情况,y>0处于北半球,y<0处于南半球。
所以我们仅通过投影后的圆即可还原出整个球体。
推广到四维,w²+x²+y²+z²=1中取x、y和z来表示超球。如下图所示,四维空间投影到三维超平面(w=0)可能是一个two-sphere。当投影点在整个two-sphere的边缘时,w一定为0,值得一提的是在这个空间内的四元数是一个纯四元数。当投影点落在two-sphere的内部时,也分为两种情况,w>0和w<0。但是我们可以发现这两种情况下对应的特征向量是一样的,所以我们将旋转矩阵向四元数转换时,是有两个对应值的,四元数的范围是2倍覆盖于3D旋转(2:1 mapping)。
四元数的“乘法”运算:
由于四元数有i,j,k三个虚部,所以得满足i²=j²=k²=i·j·k=-1这个条件。这里令★为“乘法”操作符,则p★q的公式如下,具体的推导步骤我就不写了。
封闭性:易证明,p和p的共轭相乘即可,|p★q|=1。
结合律:这条也很好证明,只要证明(p★q)★r=p★(q★r)。
单位元素:e=(1,0,0,0),这也是四元数的一个初始值(相当于单位矩阵)。带入上面的公式可知,p★(1,0,0,0)还是等于p。
逆元素:p存在一单位四元数,★操作的结果为e,具体参考下面公式,可以看出逆元素就是其共轭除以模的平方。
复数和二维旋转:
复数相乘可以旋转的性质想必大家都很清楚,乘以i可以逆时针(朝+i方向)旋转90°,乘以-i可以顺时针旋转90°。列出一个公式。
其中推导公式中暗含了一个欧拉公式,包含sinθ和cosθ的矩阵就是我们常见的二维旋转矩阵。可以发现二维旋转矩阵其实也对应着一个类似四元数的一个向量表达形式,就是复数。
我们对矩阵进行求逆(主交换,次变号),发现其实对应的就是复数的共轭形式。也就是说cosθ+i·sinθ可以旋转θ,而cosθ-i·sinθ可以旋转-θ。这个特性上的优势在四元数和三维旋转矩阵中就更明显了。
为什么二维旋转可以交换?在三维旋转中先绕x旋转,在绕y旋转和先绕y旋转,在绕x旋转肯定是不一样的,具体看图。那我们在二维旋转中先转90°再转45°肯定和先转45°再转90°是一样的。究其根本,是二维旋转它首先就隐藏了一个非常重要的因素,就是旋转轴永远是垂直于二维平面的,也是固定的,在二维中无论怎么旋转,都是共面的。放到三维空间,旋转之所以存在次序性,之所以不能交换,是旋转轴可以跟向量成任意角度。如果你放到一个二维子空间里面去旋转,你依然可以满足交换性。至于这个旋转轴垂直为啥可以解释第一个问题,我后面会慢慢说的。