如何判断sympy表达式是否是向量?请参见以下示例:
from sympy import *
from sympy.vector import *
N = CoordSys3D('N')
x = symbols('x')
v = x * N.i + x**2 * N.j + x**3 * N.k
type(v)
# sympy.vector.vector.VectorAdd
vf=factor(v)
vfs = vf.as_ordered_factors()
vfs
#[x, N.i + N.j*x + N.k*x**2]
type(vfs[1])
# sympy.core.add.Add
v
被分解后,其所有因子都不具有sympy.vector...
类型。如何确定向量的哪个因素?有测试吗?
SymPy具有多种搜索/解析表达式的方式。 as_independent
方法可能对您有用:
>>> vf.as_independent(Vector)
(x, N.i + N.j*x + N.k*x**2)
vf
的与向量有关的部分将是最右边的元素。