如何解决使用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尝试此操作,但出现此错误。非常感谢您的帮助。
解决方法
您可以将表达式替换为符号,然后区分以下内容:
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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。