查看vector package的Documentantion我没有找到任何方法来获取两个向量的交叉/点积而不评估表达式,例如不简化操作结果中的重复术语。这可能吗?
答案 0 :(得分:2)
假设您拥有最新的开发版本:
在向量模块中,有dot
和cross
函数计算点和交叉积,以及类Dot
和Cross
创建表示未评估的表达式相同的产品。
导入矢量模块和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