Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

derivative of order var('m') returns 0

In mathematica I can differentiate a function m times with respect to x, where m doesn't have an explicit value yet and get an expression that can be evaluated as below:

in[0] g = x^2 + 3/2*(x^2 - 1)*x
f = D[g, {x, m}]
out[0]= ∂(x,m)(3/2x(-1+x^2))+Power(m,0)[x,2]

in[1]  f /. {m -> 2}
out[1]= 2+9x

What I believe to be the equivalent code in sage will only give me 0 instead of an expression which I could then evaluate by setting m=2:

#Sage example 1
sage: g = x^2 + 3/2*(x^2 - 1)*x
sage: var('m')
sage: diff(g,x,m)

I know it is possible to differentiate a variable number of times due to the following:

#Sage example 2
sage: diff((x^2-1)^n,x,n)
2*(x^2 - 1)^(n - 1)*n*x*log(x^2 - 1) + 2*(x^2 - 1)^(n - 1)*x

I think that example 2 works because I have x raised to the power n.

Is it possible to accomplish the equivalent of what I did in mathematica in sage (i.e. have example 1 not return 0)? Alternatively if this is not possible what advice do you have for how I could work on making this functionality exist?

Thanks in advance.