[英]Symbolic differentiation of a function with respect to another symbolic function using 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 进行此操作,但出现此错误。 我真的很感激你在这方面的帮助。
您可以将表达式替换为符号,然后区分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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.