Mathematica Q&A: Three Functions for Computing Derivatives
May 20, 2011 — Andrew Moylan, Technical Communication & Strategy
Got questions about Mathematica? The Wolfram Blog has answers! We’ll regularly answer selected questions from users around the web. You can submit your question directly to the Q&A Team using this form.
This week’s question comes from Bashir, a student:
What are the different functions for computing derivatives in Mathematica?
D supports generalizations including multiple derivatives and derivatives with respect to multiple variables, such as differentiating twice with respect to x, then once with respect to y:
And vector and tensor derivatives, such as the gradient:
There are two important properties of D[expr, x] that distinguish it from other functions for computing derivatives in Mathematica:
2. D takes the partial derivative to be zero for all subexpressions that don’t explicitly depend on x. Compare with Dt below.
To differentiate a function, you use Derivative, which has the standard shorthand notation ' (apostrophe):
The result is a pure Function of one unnamed argument #1. Note that if you immediately evaluate this function at x, the result is exactly what you would have found by using D to differentiate the quantity Sqrt[x] with respect to x:
The notation f' is shorthand for Derivative[f], specifying differentiation once with respect to the first argument. As with D, generalizations like multiple derivatives and derivatives with respect to multiple variables are possible:
Derivative[2, 1] specifies differentiation twice with respect to the first argument and once with respect to the second argument. (You could also write the above in a single line as Derivative[2, 1][#1^2 #2^3&].)
Dt[expr, x] computes the total derivative of the expression expr with respect to x. It works like D[expr, e], except Dt does not assume zero derivative for parts of expr with no dependence on x. Compare D and Dt in this short example:
D assumes a is a constant independent of x; Dt does not, and Dt[a, x] remains unevaluated.
This can be useful in situations where you have variables that implicitly depend on some other variable. For example, suppose you want the time derivative of x + y z given in terms of the time derivatives of x, y, and z. You can use Dt:
To do this with D, you would explicitly make x, y, and z functions of t:
Finally, the one-argument form Dt[expr] gives the total differential of the expression expr:
The result is given in terms of the differentials (Dt[x], Dt[y], in this case) of the variables occurring in expr.
When viewed in traditional mathematical notation (TraditionalForm), this example looks familiar as the standard quotient rule for differential quantities:
If you have a question you’d like answered in this blog, you can submit it to the Q&A Team using this form. For daily bite-sized Mathematica tips, follow our @MathematicaTip Twitter feed (or follow using RSS).