Ask Your Question

derivative of order var('m') returns 0

asked 2015-10-29 04:34:28 +0200

ianhi gravatar image

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.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2015-10-29 14:27:09 +0200

eric_g gravatar image


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)
edit flag offensive delete link more



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

vdelecroix gravatar imagevdelecroix ( 2015-10-30 03:40:57 +0200 )edit

Differentiating n times, with n symbolic, means n could be any nonnegative integer, but we don't want to specify which.

A bit like taking the n-th power of a matrix, with n symbolic.

Some functions are nice enough that there is a general formula for their n-th derivative. For instance,

  • If f = exp(x), then diff(f, x, n) is exp(x)
  • If f = x^m for some nonnegative integer m, then diff(f, x, n) is m!/(m-n)! x^(m-n) for 0 <= n <= m, and 0 for n > m.
slelievre gravatar imageslelievre ( 2020-09-28 12:26:21 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2015-10-29 04:34:28 +0200

Seen: 1,055 times

Last updated: Oct 29 '15