我更新了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尝试此操作,但出现此错误。非常感谢您的帮助。
答案 0 :(得分:0)
您可以将表达式替换为符号,然后区分以下内容:
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]