Заменить SymPy sp.Symbol вектором ReferenceFrame - PullRequest
0 голосов
/ 10 июля 2020

У меня проблемы с подстановкой символов для векторов с помощью функции subs в SymPy. Ниже приведен пример того, что я хотел бы сделать:

N = ReferenceFrame('N')
zhat, Q, p = sp.symbols('\\hat{\\mathbf{z}} Q p')
expr = 4*Q*zhat/p
old = zhat
new = N.z
expr.subs(old, new)

Я считаю необходимым, учитывая контекст этой проблемы, заявить, что мне требуется исходное выражение expr для состоять полностью из символов и иметь тип Mul перед заменой.

1 Ответ

0 голосов
/ 10 июля 2020

Я не нашел решения точно указанной выше проблемы, но очень похожее:

N = CoordSys3D('N')
zhat, Q, p = sp.symbols('\\hat{\\mathbf{z}} Q p')
expr = 4*Q*zhat/p
old = zhat
new = N.k
expr.subs(old, new)

Использование CoordSys3D вместо ReferenceFrame позволяет замена.

...