# The Representation of Derivatives

Derivatives in the Wolfram System work essentially the same as in standard mathematics. The usual mathematical notation, however, often hides many details. To understand how derivatives are represented in the Wolfram System, you must look at these details.

The standard mathematical notation is really a shorthand for , where is a "dummy variable". Similarly, is a shorthand for . As suggested by the notation , the object can in fact be viewed as a "pure function", to be evaluated with a particular choice of its parameter . You can think of the operation of differentiation as acting on a function , to give a new function, usually called .

With functions of more than one argument, the simple notation based on primes breaks down. You cannot tell, for example, whether stands for or , and for almost any , these will have totally different values. Once again, however, is just a dummy variable, whose sole purpose is to show with respect to which "slot" is to be differentiated.

In the Wolfram System, as in some branches of mathematics, it is convenient to think about a kind of differentiation that acts on *functions*, rather than expressions. An operation is needed that takes the function , and gives the *derivative function* . Operations such as this that act on *functions*, rather than variables, are known in mathematics as *operators*.

The object in the Wolfram System is the result of applying the differentiation operator to the function . The full form of is in fact Derivative[1][f]. Derivative[1] is the Wolfram System differentiation operator.

The arguments in the operator Derivative[n_{1},n_{2},…] specify how many times to differentiate with respect to each "slot" of the function on which it acts. By using operators to represent differentiation, the Wolfram System avoids any need to introduce explicit "dummy variables".

In[1]:= |

Out[1]//FullForm= | |

In[2]:= |

Out[2]//FullForm= | |

In[3]:= |

Out[3]//FullForm= | |

In[4]:= |

Out[4]= |

In[5]:= |

Out[5]//FullForm= | |

In[6]:= |

Out[6]//FullForm= | |

In[7]:= |

Out[7]//FullForm= | |

In[8]:= |

Out[8]//FullForm= | |

In[9]:= |

Out[9]= |

In[10]:= |

Out[10]//FullForm= | |

The object behaves essentially like any other function in the Wolfram System. You can evaluate the function with any argument, and you can use standard the Wolfram System operations to change the argument. (This would not be possible if explicit dummy variables had been introduced in the course of the differentiation.)

In[11]:= |

Out[11]//FullForm= | |

In[12]:= |

Out[12]= |

In[13]:= |

Out[13]= |

There is some slight subtlety when you need to deduce the value of based on definitions for objects like .

In[14]:= |

In[15]:= |

Out[15]= |

In[16]:= |

Out[16]= |

In[17]:= |

Out[17]= |

The function is completely determined by the form of the function . Definitions for objects like do not immediately apply, however, to expressions like . The problem is that has the full form Derivative[1][f][x], which nowhere contains anything that explicitly matches the pattern . In addition, for many purposes it is convenient to have a representation of the function itself, without necessarily applying it to any arguments.

What the Wolfram System does is to try and find the explicit form of a *pure function* which represents the object . When the Wolfram System gets an expression like Derivative[1][f], it effectively converts it to the explicit form D[f[#],#]& and then tries to evaluate the derivative. In the explicit form, the Wolfram System can immediately use values that have been defined for objects like . If the Wolfram System succeeds in doing the derivative, it returns the explicit pure‐function result. If it does not succeed, it leaves the derivative in the original form.

In[18]:= |

Out[18]= |

In[19]:= |

Out[19]= |