繁体   English   中英

使用 SymPy 对一个函数相对于另一个符号函数进行符号微分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM