python - Why does sympy.diff not differentiate sympy polynomials as expected? -
i trying figure out why sympy.diff not differentiate sympy polynomials expected. normally, sympy.diff works fine if symbolic variable defined , polynomial not defined using sympy.poly. however, if function defined using sympy.poly, sympy.diff not seem compute derivative. below code sample shows mean:
import sympy sy # define symbolic variables x = sy.symbol('x') y = sy.symbol('y') # define function without using sy.poly f1 = x + 1 # define function using sy.poly f2 = sy.poly(x + 1, x, domain='qq') # compute derivatives , return results df1 = sy.diff(f1,x) df2 = sy.diff(f2,x) print('f1: ',f1) print('f2: ',f2) print('df1: ',df1) print('df2: ',df2) this prints following results:
f1: x + 1 f2: poly(x + 1, x, domain='qq') df1: 1 df2: derivative(poly(x + 1, x, domain='qq'), x) why sympy.diff not know how differentiate sympy.poly version of polynomial? there way differentiate sympy polynomial, or way convert sympy polynomial form allows differentiated?
note: tried different domains (i.e., domain='rr' instead of domain='qq'), , output not change.
this appears bug. can around calling diff directly on poly instance. ideally calling function diff top level sympy module should yield same result calling method diff.
in [1]: sympy import * in [2]: sympy.abc import x in [3]: p = poly(x+1, x, domain='qq') in [4]: p.diff(x) out[4]: poly(1, x, domain='qq') in [5]: diff(p, x) out[5]: derivative(poly(x + 1, x, domain='qq'), x) in [6]: diff(p, x).doit() out[6]: derivative(poly(x + 1, x, domain='zz'), x)
Comments
Post a Comment