Decoding Leibniz notation

I wrote this for myself to understand the Leibniz notation. Prerequisites for this post are the definition of the derivative and the Lagrange notation. If you don’t understand these yet, please study them first.

So…

You may have already seen something like dydx. This is called the Leibniz notation. The Leibniz notation has many of what Spivak calls vagaries”. It has multiple interpretations– formal and informal. The informal interpretation doesn’t map to modern mathematics, but can sometimes be useful (while at other times misleading). The full, unambiguous Leibniz notation is verbose, so in practice people end up taking liberties with it. As a consequence, its meaning must often be discerned from the context.

This flexibility makes the notation very useful in science and engineering, but also makes it difficult to learn. I explore it here to make learning easier.

Historical motivation

We start with the historical interpretation, where the notation began. Leibniz didn’t know about limits. He thought the derivative is the value of the quotient

f(x+h)f(x)h

when hh is infinitesimally small”. He denoted this infinitesimally small quantity of hh by dxdx, and the corresponding difference f(x+dx)f(x)f(x+dx)-f(x) by df(x)df(x). Thus for a given function ff the Leibniz notation for its derivative ff’ is:

df(x)dx=f

Intuitively, we can think of dd in a historical context as delta” or change”. Then we can interpret this notation as Leibniz did– a quotient of a tiny change in f(x)f(x) and a tiny change in xx. But this explanation comes with two important disclaimers.

First, dd is not a value. If it were a value, you could cancel out dds in the numerator and the denominator. But you can’t. Instead think of dd as an operator. When applied to f(x)f(x) or xx, it produces an infinitesimally small quantity. Alternatively you can think of df(x)df(x) and dxdx as one symbol that happens to look like multiplication, but isn’t.1

Second, df(x)dx denotes a function (the same one denoted by ff’), not a value at a point (i.e. not f(a)f’(a)). To denote the image of the derivative function at aa we use the following notation:

df(x)dxx=a=f(a)

Writing all that is a pain and in practice people rarely do it this way, but we’ll get to that in a minute.

Modern interpretation

To summarize, the full and unambiguous Leibniz notation is:

df(x)dx=fanddf(x)dxx=a=f(a)

In modern mathematics real numbers do not have a notion of infinitesimally small quantities. Thus in a modern interpretation we treat df(x)dx as a symbol denoting ff’, not as a quotient of numbers. Nothing here is being divided, nothing can be canceled out. In a modern interpretation df(x)dx is just one thing that happens to look like a quotient but isn’t, anymore than ff’ is a quotient.

Second derivative

A question arises for how to express the second (or nth) derivative in the Leibniz notation. Let g(x)=df(x)dxg(x)= (i.e. let gg be the first derivative of ff). Then it follows that the second derivative in Leibniz notation is dg(x)dx=g=f=g’=f’′. Substituting the definition of gg we get:

d(df(x)dx)dx=f

Of course this is too verbose and no one wants to write it this way. This is where the vagaries begin. For convenience people use the usual algebraic rules to get a simpler notation, even though formally everything is one symbol and you can’t actually do algebra on it:

d(df(x)dx)dx=d2f(x)dx2

Two questions arise here.

First, why dx2dx^2? Shouldn’t it be (dx)2(dx)^2? One way to answer this question is to remember that dxdx is one symbol, not a multiplication (because dd is not a value). And so we’re just squaring that one symbol dxdx, which doesn’t require parentheses.

Another probably more honest way to answer this question is to recall that this isn’t real algebra– we just use a simularcum of algebra out of convenience. But convenience is a morally flexible thing, and people decided to drop parentheses because they’re a pain to write. So (dx)2(dx)^2 became dx2dx^2.

Second, we said before that df(x)df(x) can be thought of as one symbol. Then what is this d2d^2 business? The answer here is the same– we aren’t doing real algebra but a simularcum of algebra. We aren’t really squaring anything; we’re overloading exponentiation to mean second derivative”. The symbol d2f(x)d^2f(x) is again one symbol.

Liberties and ambiguities

There are a few more liberties people take with the Leibniz notation. Let f(x)=x2f(x)=x^2. If we want to denote the derivative of ff we can do it in two ways:

df(x)dxordx2dx

Here dx2dx is new, but the meaning should be clear. We’re just replacing f(x)f(x) in df(x)df(x) with the definition of f(x)f(x). This is a little confusing because in the particular case of f(x)=x2f(x)=x^2, it’s visually similar to the notation for second derivative. There are no ambiguities here so far– it’s just a visual artifact of the notation we have to learn to ignore. But now the liberties come.

Suppose we wanted to state what the derivative of ff at a point aa is. In Lagrange notation we say f(a)=2af’(a)=2a. In Leibniz notation the proper way to say it is:

df(x)dxx=a=2a

But this is obviously a pain, so people end up taking two liberties. First, everyone drops the vertical line that denotes the application at aa. So in practice the form above becomes:

df(x)dx=2x

This shouldn’t compile” because df(x)dx=f=f’. Thus this statement is equivalent to saying f=2xf’=2x, which should be a syntax error. But this is the notation most people use, and you have to get used to it.

Second, people decided that writing df(x)dx is too painful, and in practice everyone writes dfdx. This also shouldn’t compile (it would be something like writing limxaf_{x a}f, which also is a syntax error). But again, it’s the notation most people use.

To summarize what we have so far:

df(x)dxx=a=2abecomesdfdx=2x

Even more liberties

You’d think that we already pushed the notation past all limits of propriety, but scientists and engineers manage to push it even further. Consider the following simple problem. A circle’s radius is growing at 1 inch per second. How quickly is the area of the circle growing? Let’s solve it with Lagrange’s notation first.

The area of a circle is A=πr2A=r^2. We’re trying to understand change by using derivatives to analyze behavior of functions. Since rr is changing, what we’ll be looking at is the function for the area of a circle A(r)=πr2A(r)=r^2. And since the radius is changing with time, we have another function for the radius at a particular time r(t)r(t). The problem doesn’t tell us how rr is defined, but it tells us its derivative is r(t)=1 in/sr’(t)=1. All we have to do now is take the derivative of AA:

A(r(t))=(Ar)(t)=π2r(t)r(t)=2πr(t) in/s

Thus at a given time tt the area is increasing at the rate of 2πr(t) in/s2r(t).

Now here’s the rub. In science and engineering most values are somehow related to other values, and nearly everything is related to time. Explicitly defining functions makes even simple relationships (like the one above) complicated to write down. So people dispense with denoting functions explicitly, and just treat these quantities as functions. In practice, the Leibniz notation for the equation above is something like this:

dAdt=dAdrdrdt=2πr in/s

We’re not explicitly defining or mentioning functions anywhere, but immediately proceed with the understanding that the variables AA and rr are really functions.

As a matter of studying advice, I spent hours trying to understand exactly why anyone might want to do this and how the mechanics work, until I sat down to do a bunch of simple related rates problems, at which point abusing the notation in this way quickly became the most natural thing in the world. So if you’re stuck, go solve a bunch of simple problems and then come back here. Hopefully by then everything will make a lot more sense.


  1. I read somewhere that in his notebooks Leibniz experimented with extending dd with a squiggle on top that went over xx to indicate that dd is not a value, but I haven’t been able to verify if that’s true.↩︎

Sep 30, 2024