📜  SymPy-四元数

📅  最后修改于: 2020-11-05 04:46:11             🧑  作者: Mango


在数学中,四元数系统是复数的扩展。每个四元数对象包含四个标量变量和四个维度,一个实数维度和三个虚数维度。

四元数由以下表达式表示-

q = a + bi + cj + dk

其中a,b,c和d是实数,而i,j,k是四元数单元,使得i2 == j2 == k2 == ijk

sympy.algebras.quaternion模块具有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 $

加()

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 $

逆()

此方法返回四元数对象的逆。

>>> 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 $