Я использую sympy для вычислений векторного исчисления, и мне стало интересно, существует ли простой способ численной оценки векторных и двоичных выражений.Я знаю функцию lambdify
, которую можно использовать следующим образом:
from sympy.abc import x,lambdify
expr=x**x+1
lambda_expr=lambdify(x,expr)
print(lambda_expr(5.0))
Есть ли подобная функциональность для двоичных / векторных выражений?Я попытался следующий код, но он выдает синтаксическую ошибку:
from sympy.vector import CoordSys3D, Del
C=CoordSys3D('C')
nabla=Del()
#define some test vectorial field
B=C.x*C.y*C.z*(C.i+C.j+C.k)
#compute a field and a dyad
nabla_B=nabla.dot(B).doit()
rot_B=nabla.cross(B).doit()
#try to get lambda expressions...
lambda_nablaB=lambdify((C.x,C.y,C.z),nabla_b
lambda_rotB=lambdify((C.x,C.y,C.z),rot_B)
Синтаксическая ошибка:
lambda C.x,C.y,C.z: (C.x*C.y*C.z*C.i + C.x*C.y*C.z*C.j + C.x*C.y*C.z*C.k)
^
SyntaxError: invalid syntax
Я хочу, чтобы численно оценить поле / диаду и получить массив Numpy.