我正在尝试使用sympy执行方程的导数,但是,如果我手动编写方程,则导数是正确的;当我将方程式作为字符串传递时,输出错误。谁能解释我如何解决这个问题?我正在使用python 3.6和sympy 1.5.1。
>>>from sympy import *
>>>from operator import *
>>> x1 = symbols('x1')
>>> f = add(sin(x1),mul(x1,x1))
>>> diff(f,x1)
2*x1 + cos(x1) ## Correct output
>>>> f = 'add(sin(x1),x1))' ## Equation provided as string
>>>> diff(f,x1)
(Subs(Derivative(mul(_xi_1,x1),_xi_1),_xi_1,x1) + Subs(Derivative(mul(x1,_xi_2),_xi_2,x1))*Subs(Derivative(add(sin(x1),x1)) + cos(x1)*Subs(Derivative(add(_xi_1,x1)),sin(x1)) ## Wrong output