SymPy - 四元数

  • 简述

    在数学中,四元数系统是复数的扩展。每个四元数对象包含四个标量变量和四个维度,一个实维度和三个虚维度。
    四元数由以下表达式表示 -
    q=a+bi+cj+dk
    在哪里a, b, c和 d 是实数和i, j, k是四元数单位,i2==j2==k2==ijk
    sympy.algebras.quaternion模块具有四元数类。
    
    
    >>> from sympy.algebras.quaternion import Quaternion 
    
    >>> q=Quaternion(2,3,1,4) 
    
    >>> q
    
    
    上面的代码片段给出了与下面的表达式等效的输出 -
    $$2 + 3i + 1j + 4k$$
    四元数用于纯数学,以及应用数学、计算机图形学、计算机视觉等。
    
    
    >>> from sympy import * 
    
    >>> x=Symbol('x') 
    
    >>> q1=Quaternion(x**2, x**3, x) >>> q1
    
    
    上面的代码片段给出了与下面的表达式等效的输出 -
    $$x^2 + x^3i + xj + 0k$$
    四元数对象也可以具有虚系数
    
    
    >>> q2=Quaternion(2,(3+2*I), x**2, 3.5*I) 
    
    >>> q2
    
    
    上面的代码片段给出了与下面的表达式等效的输出 -
    $$2 + (3 + 2i)i + x2j + 3.5ik$$
  • add()

    Quaternion 类中可用的此方法执行两个 Quaternion 对象的相加。
    
    
    >>> q1=Quaternion(1,2,3,4) 
    
    >>> q2=Quaternion(4,3,2,1) 
    
    >>> q1.add(q2)
    
    
    上面的代码片段给出了与下面的表达式等效的输出 -
    $$5 + 5i + 5j + 5k$$
    可以在四元数对象中添加数字或符号。
    
    
    >>> q1+2
    
    
    执行上述代码片段后获得以下输出 -
    $$3 + 2i + 3j + 4k$$
    
    
    >>> q1+x
    
    
    执行上述代码片段后获得以下输出 -
    $$(x + 1) + 2i + 3j + 4k$$
  • mul()

    此方法执行两个四元数对象的乘法。
    
    
    >>> q1=Quaternion(1,2,1,2) 
    
    >>> q2=Quaternion(2,4,3,1) 
    
    >>> q1.mul(q2)
    
    
    上面的代码片段给出了与下面的表达式等效的输出 -
    $$(-11) + 3i + 11j + 7k$$
  • inverse()

    此方法返回四元数对象的逆。
    
    
    >>> q1.inverse()
    
    
    上面的代码片段给出了与下面的表达式等效的输出 -
    $$\frac{1}{10} + (-\frac{1}{5})i + (-\frac{1}{10})j + (-\frac{1}{5})k$$
  • pow()

    此方法返回四元数对象的幂。
    
    
    >>> q1.pow(2)
    
    
    执行上述代码片段后获得以下输出 -
    $$(-8) + 4i + 2j + 4k$$
  • exp()

    此方法计算四元数对象的指数,即 eq
    
    
    >>> q=Quaternion(1,2,4,3) 
    
    >>> q.exp()
    
    
    执行上述代码片段后获得以下输出 -
    $$e\cos(\sqrt29) + \frac{2\sqrt29e\sin(\sqrt29)}{29}i + \frac{4\sqrt29e\sin(\sqrt29)}{29}j + \frac{3\sqrt29e\sin}{29}k$$