使用SymPy,一个函数相对于另一个符号函数的符号微分

时间:2020-09-24 22:57:32

标签: 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 个答案:

答案 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] 
相关问题