#python #sympy
#python #sympy
Вопрос:
Я обновил свой Python3 и sympy, и внезапно мой код больше не работает. Я пробую следующий код:
import sympy as sym
x, y, z= sym.symbols('x[0], x[1], x[2]')
theta = sym.atan2(y,x)
t = theta pi
r_1 = 0.0124*sym.cos(t) 0.0414*sym.sin(2*t)
f = (r_1)*sym.cos(t)
diff_f = sym.diff(f,theta)
Когда я запускаю его, я получаю следующую ошибку:
Can't calculate derivative wrt atan2(x[1], x[0])
Теперь это работало со старой версией (я точно не помню, какая это была версия). Но прямо сейчас я пытаюсь сделать это с последними версиями Python и sympy, и я получаю эту ошибку. Я был бы очень признателен за вашу помощь в этом.
Ответ №1:
Вы можете заменить выражение символом, а затем дифференцировать wrt, чтобы:
In [3]: a = Symbol('a')
In [4]: f.subs(theta, a).diff(a).subs(a, theta)
Out[4]:
-0.0828⋅x[0]⋅cos(2⋅atan2(x[1], x[0]))
──────────────────────────────────────
_______________
╱ 2 2
╲╱ x[0] x[1]