Sympy Cross和dot产品未经评估

时间:2017-09-03 10:28:28

标签: python sympy

查看vector package的Documentantion我没有找到任何方法来获取两个向量的交叉/点积而不评估表达式,例如不简化操作结果中的重复术语。这可能吗?

1 个答案:

答案 0 :(得分:2)

假设您拥有最新的开发版本:

在向量模块中,有dotcross函数计算点和交叉积,以及类DotCross创建表示未评估的表达式相同的产品。

导入矢量模块和SymPy:

In [1]: from sympy import *; from sympy.vector import *

定义坐标系:

In [2]: C = CoordSys3D("C")

此时,C.i, C.j, C.k是基本向量。

立即评估的交叉产品(小写cross):

In [3]: cross(C.i, C.j)
Out[3]: C.k

让我们使用漂亮的打印机将十字产品打印为操作员:

In [4]: init_printing()

以未评估的形式交叉产品(名称为大写 C 字母Cross):

In [5]: Cross(C.i, C.j)
Out[5]: (C_i)×(C_j)

要执行计算,只需使用.doit()

In [6]: Cross(C.i, C.j).doit()
Out[6]: C_k