SymPy 四元数
在数学中,四元数是复数的扩展。每个四元数对象包含四个标量变量和四个维度,一个实维度和三个虚维度。
四元数的表示如下表达式 –
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
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