from sympy.vector import CoordSys3D
N = CoordSys3D('N')
a = N.x * 2
b = N.y * 2
vec = a + b
print(type(N.x))
>>> <class 'sympy.vector.scalar.BaseScalar'>
Проблема здесь в том, что N.x
и N.y
являются скалярными величинами, и sympy не регистрирует их как базисные векторы. Вместо x, y и z в качестве базисных векторов sympy использует i, j и k . Так что вам просто нужно заменить x
на i
, y
на j
и z
на k
.
from sympy.vector import CoordSys3D
N = CoordSys3D('N')
print(type(N.i))
>>> <class 'sympy.vector.scalar.BaseVector'>
print(type(N.j))
>>> <class 'sympy.vector.scalar.BaseVector'>
print(type(N.k))
>>> <class 'sympy.vector.scalar.BaseVector'>
vec = N.i * 2 + N.j * 2
print(type(vec))
>>> <class 'sympy.vector.vector.VectorAdd'>