fullmoon
@fullmoon

This is the first post in a multi-part series I'm writing on Weyl algebras and their applications.

One fun math fact I sometimes share with people is that you can use Weyl algebras to differentiate expressions, but the Wikipedia article on Weyl algebras doesn't explain how to do this or why Weyl algebras are cool, so I'll try my hand at explaining them.

You can actually do more with Weyl algebras than differentiate expressions (like integrating expressions!) but in this first post I'm going to focus just on differentiation.

The operator

The fundamental building block for all of the upcoming madness is that we're going to define an operator, named , which takes one argument (e.g. x), which we will write as: x. Furthermore, we'll define the following rule for how behaves:

xxxx=1

Division ring

Note that this is only possible if multiplication does not commute. In other words, it's no longer necessarily true that xy=yx for any two expressions x and y. Because if multiplication were to commute then we'd get:

xxxx=xxxx=01

However, other things we know and love are still true, like:

additionmultiplication
identity x+0=0+x=x x1=1x=x
associativity (x+y)+z=x+(y+z) (xy)z=x(yz)
commutativity x+y=y+x
inverse xx=0 x(x1)=1

… and also:

left distributivityxy+xz=x(y+z)
right distributivityyx+zx=(y+z)x

In other words, we are working with a division ring.

Carefully note that this means that the operator is not defined for all possible arguments. For example, you can't sensibly define 1 because

xxxx=1

is not true when x=1:

1111=11=01

Differentiation

We can use this operator to differentiate expressions (which is why we use the partial derivative notation for this operator). Specifically, if we want to differentiate some expression f with respect to x then all we have to do is to compute the result of:

xffx

Let's try out a couple of examples. For example, if we were to differentiate x2 with respect to x we would compute the result like this (skipping as few steps as possible):

xx2 x2x = xxx xxx = x x x + 0 x x x = xxx + xxx xxx xxx = xxx xxx + xxx xxx = ( xxxx )x + x( xxxx ) = 1x + x1 = 1x + x = 1x + 1x = (1+1)x = 2x

… which is exactly the right answer: the derivative of x2 with respect to x is 2x.

Similarly, we can show that the derivative of x1 with respect to x is x2. This time we'll skip a few steps to keep things shorter:

xx1x1x = 1xx1x1x1 = x1xxx1x1xxx1 = x1 ( xxxx ) x1 = x1 (1) x1 = x1 x1 = x2

The commutator

In fact, we can show that this trick works for all polynomials over x, but in order to do that we'll need to introduce a little bit of notation to simplify things. We'll define a "commutator" operator [_,_] that takes two arguments (e.g. x and y), which we will write as [x,y]. The behavior of this operator is defined by the following equation:

[x,y] = xyyx

So using this operator we can now write our original equation defining the operator like this:

[x,x]=1

… and if we want to differentiate some expression f with respect to x we would compute:

[x,f]

So we can restate our prior results differentiating x2 and x1 like this:

[x,x2] = 2x [x,x1] = x2

Polynomial differentiation

Equipped with this new commutator we can prove that [x,f] differentiates f with respect to x if f is a polynomial. All we have to do is prove a few basic rules.

First, we need to prove that if we differentiate 1 (a constant) with respect to x then we get 0 (just like the differentiation we learned in calculus):

[x,1]=0
Proof [x,1] = x11x = xx = 0

Then we need to prove that if we differentiate x with respect to x then we get 1 (just like the differentiation we learned in calculus):

[x,x]=1
Proof [x,x] = xxxx = 1

Then we need to prove that differentiation distributes over addition (just like the differentiation we learned in calculus):

[x,f+g] = [x,f] + [x,g]
Proof [x,f+g] = x(f+g) (f+g)x = ( xf + xg ) ( fx + gx ) = ( xf fx ) + ( xg gx ) = [x,f] + [x,g]

Finally, we need to prove that differentiation obeys the multiplication rule (just like the differentiation we learned in calculus):

[x,fg] = [x,f]g + f[x,g]
Proof [x,fg] = xfg fgx = xfg fxg + fxg fgx = ( xf fx ) g + f ( xg gx ) = = [x,f]g + f[x,g]

… and since we can build polynomials out of those four building blocks (1, x, addition, and multiplication), if our differentiation behaves the same as traditional differentiation from calculus then we can guarantee it gives the same results when differentiating arbitary polynomials.

Moreover, we already proved that our differentiation gives the same result as traditional differentiation when differentiating x1, so we can extend this result to polynomials with negative exponents, too.

In fact, you can generalize this result to rational exponents, too, but I'm leaving that out of this post for now. That's … uh … an exercise for the reader.

Motivation

So you might wonder: what is the point of implementing differentiation in this way? What do we gain out of this approach?

There are two useful properties of this approach that we're going to make use of later on:

  • You can differentiate with respect to weird things

    The argument of the operator doesn't have to be a variable! Later on in this series we're going to supply really weird arguments to this operator like:

    (x)

    … or:

    ((f)1)

    … which is something that has no sensible equivalent in traditional differentiation but is actually a reasonable thing to do in the context of Weyl algebras and it gives well-behaved results.

  • This approach is notationally better-behaved

    In traditional differentiation, you can't express a concept like f(x+x) unless you explicitly write out f as an abstract function applied to an argument named x. But, using Weyl algebras, you can express the same concept as xfx1, which means that f can be substituted with an arbitary expression without breaking anything, which will prove to be an extremely handy property.


You must log in to comment.

in reply to @fullmoon's post: