2017-02-17 31 views
0

我试图设置sympy来计算衍生物。当我用简单的方程测试它时,我发现相同的答案(sympy计算与我自己的计算之间的平等是正确的)。然而,当我尝试更复杂的,当它无法正常工作(我也检查了wolfram alpha的答案)。sympy differential equality

这里是我的代码:

from __future__ import division 
from sympy import simplify, cos, sin, expand 
from sympy import * 
x, y, z, t = symbols('x y z t') 
k, m, n = symbols('k m n', integer=True) 
f, g, h = symbols('f g h', cls=Function) 

equation = (x**3*y-x*y**3)/(x**2+y**2) 
equation2 = (x**4*y+4*x**2*y**3-y**5)/((x**2+y**2)**2) 


pprint(equation) 
print "" 
pprint(equation2) 


print diff(equation,x) == equation2 

回答

1

这是一个共同的 “疑难杂症”,在Sympy。为了创建符号平等,您应该使用sympy.Eq而不是===(请参阅tutorial)。对于你的榜样,

Eq(equation.diff(x), equation2).simplify() 

True

注意,如上述,您可能需要调用simplify()为了看wheather的Eq对象对应于TrueFalse