# derivative of order var('m') returns 0

Hello,
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:

#MATHMATICA CODE
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)
0


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?

edit retag close merge delete

Sort by » oldest newest most voted

Hi,

In Sage, the syntax diff(g,x,m) where x and m are two symbolic variables, does not stand for the m-th derivative of g with respect to x, but for the second order partial derivative of g with one derivative taken with respect to x and the other one with respect to m, i.e. in LaTeX notation \frac{\partial^2 g}{\partial x \partial m}. This explains why example 1 returns 0 (m does not appear in g), while example 2 returns something nonzero ((x^2-1)^n is a function of both x and n).

If, instead of a symbolic variable, the third argument of diff is a non-negative integer m, then the outcome is the m-th derivative of g with respect to x: for instance

sage: g = x^2 + 3/2*(x^2 - 1)*x
sage: m = 3   # m is now an integer, not a symbolic variable
sage: diff(g, x, m)
9

more

2

This definitely explains the behavior of the Sage diff function. However, how could we differentiate n-th time with n being symbolic?

( 2015-10-29 21:40:57 -0500 )edit