zoukankan      html  css  js  c++  java
  • 四元素还是向量?

    ywlj

    四元素是描述运动物体姿态的终极武器。它是由威廉·哈密顿(William Rowan Hamilton)爵士1843年在爱尔兰发现的。

    会中文的数学家
    哈密顿生于爱尔兰,他在十三岁前都受其叔父语言学家詹姆斯照顾。哈密顿很喜欢文学,在大学期间,他不但修读数学,还有修读经典文学。因此,他总共精通十二种语言。除了欧洲语言之外,他还懂得波斯语、马来语、阿拉伯语、梵文和中文等。他的妻子是一个神父的女儿。哈密顿最大的成就在于发现了四元数,并将之广泛应用于物理学各方面。哈密顿对光学、动力学和代数的发展提供了重要的贡献。他的成果后来成为量子力学中的主干。

    金雀花之石


    1843年秋的一天,哈密顿和妻子在都柏林的皇家运河边上散步。当时他正研究如何将二维的复数扩展到更高的维次。他想不出有三维的例子,但是四维却可以。他作了一个非常简单但极其具有创造性的假设:

    i^2 = -1
    j^2 = -1
    k^2 = -1
    但是
    i != j !=k
    另外,他的方程完全抛弃了乘法交换率,这在当时是一个极端的想法。
    i * j = k; j * i = -k;
    j * k = i; k * j = -i;
    k * i = j; i * k = -j;
    哈密顿立刻将此方程刻在附近的金雀花桥(Broom Bridge,旧称Brougham Bridge)上。后来爱尔兰国家大学梅努斯分校由1989年开始举办让数学家由Dunsink天文台走到皇家运河的行程,可惜途中已找不到哈密顿的刻石。

    四元素还是向量?
    发现四元素以后,哈密顿继续推广四元素。他写过多本有关的专著,其中,《四元数原理》(Elements of Quaternions)长达八百多页。但是不久,向量被发现并流行起来。一些哈密顿的支持者不遗余力地反对奥利弗·黑维塞的向量代数和约西亚·威拉德·吉布斯的向量分析的发展,以维持四元数的超然地位。而事实上,在二十世纪中叶的科学和工程界中,向量几乎已完全取代四元数的位置。
    数学家认为,四元数是称为几何代数的clifford代数的一个子代数,而后者已经得到很好的研究和应用,尤其是在理论物理中。例如可以用几何代数将狭义相对论和经典电动力学表述为非常优美的形式,量子力学中讨论自旋常用的泡利矩阵实际上也是几何代数的一个子代数的矩阵表示,类似的例子还有对经典力学中刚体的转动的不可交换性的表述。
    如今,四元数被使用在电脑绘图(及相关的图像分析)上表示三维物件的旋转及方位。 四元数亦见于控制论、信号处理、姿态控制、物理和轨道力学,都是用来表示旋转和方位。这是由于四元数转换组合比很多矩阵转换组合在数字上更稳定。
    但是即使在今天,四元素的用途仍在争辩之中。

    用四元素表示旋转
    可以把四元素假象为具有4个元素的向量:
    q = i * x + j * y + k * z + w
    inverse q = i * x + j * y + k * z - w
    每一个四元素q意味着一个旋转。
    q1 * q2 表示先做一个q2旋转,再做一个q1旋转。
    q 和 -q 是相同的旋转。
    若要把物体沿着规范化的向量(x, y, z)绕Θ度,则依此建立q:
    q = sin( Θ / 2 ) * ( x * i + y * j + k * z ) + cos( Θ / 2 )

    四元素的优势
    十分易于差值(interpolate)
    完全消除Gimbal Lock (或者说没有奇点)
    尽管最后会把四元素还原为矩阵,但是四元素在连乘的时候效率大大优于矩阵

    四元素化为矩阵
    1 - 2 * (y*y + z*z)  2 * (x*y - z*w)      2 * (z*x + y*w)      0
    2 * (x*y + z*w)      1 - 2 * (z*z + x*x)  2 * (y*z - x*w)      0
    2 * (z*x - y*w)      2 * (y*z + x*w)      1 - 2 * (x*x + y*y)  0
    0                    0                    0                    1
    q = ( w, x, y, z)

  • 相关阅读:
    JAVA垃圾收集器
    ora-12154
    获取IE浏览器关闭事件
    ajax 页面请求后,jsp页面定位
    poi 导出excel 异常处理方式--曲线救国法
    如何设计出高可用的分布式架构
    Java知识点整理(二)
    spring cloud & dubbo
    Spring Autowired原理
    如何更好的使用JAVA线程池
  • 原文地址:https://www.cnblogs.com/liangliangdetianxia/p/4020767.html
Copyright © 2011-2022 走看看