knitr::opts_chunk$set(echo = TRUE) library("weyl") set.seed(0)
knitr::include_graphics(system.file("help/figures/weyl.png", package = "weyl"))
To cite this work or the weyl
package in publications please use
@hankin2022_weyl_arxiv. In a very nice youtube
video,
Richard Borcherds discusses the fact that first-order differential
operators do not commute, but their commutator is itself first-order;
he says that they "almost" commute. Here I demonstrate Borcherds's
observations in the context of the weyl
package. Symbolically, if
$$ D=\sum f_i\left(x_1,\dots,x_n\right)\frac{\partial}{\partial x_i}\qquad E=\sum g_i\left(x_1,\dots,x_n\right)\frac{\partial}{\partial x_i} $$
where $f_i=f_i\left(x_1,\dots,x_n\right)$ and $g_i=g_i\left(x_1,\dots,x_n\right)$ are functions, then
$$ DE=\sum_{i,j}f_i\frac{\partial}{\partial x_i}\,g_i\frac{\partial}{\partial x_j} =\sum_{i,j}f_ig_j\frac{\partial}{\partial x_i}\frac{\partial}{\partial x_j} + f_i\frac{\partial g_j}{\partial x_i}\,\frac{\partial}{\partial x_j} $$
$$ ED=\sum_{i,j}g_i\frac{\partial}{\partial x_i}\,f_i\frac{\partial}{\partial x_j} =\sum_{i,j}g_if_j\frac{\partial}{\partial x_j}\frac{\partial}{\partial x_i} + g_i\frac{\partial f_i}{\partial x_j}\,\frac{\partial}{\partial x_j} $$
so $E$ and $E$ "nearly" commute, in the sense that $ED-DE$ is first order:
$$DE-ED= \sum_{i,j}f_i\frac{\partial g_j}{\partial x_i}\,\frac{\partial}{\partial x_j}-g_i\frac{\partial f_i}{\partial x_j}\,\frac{\partial}{\partial x_j} $$
Above we have used the fact that partial derivatives commute, which
leads to the cancellation of the second-order terms. We can verify
this using the weyl
package:
D <- weyl(spray(cbind(matrix(sample(8),4,2),kronecker(diag(2),c(1,1))),1:4)) E <- weyl(spray(cbind(matrix(sample(8),4,2),kronecker(diag(2),c(1,1))),1:4)) F <- weyl(spray(cbind(matrix(sample(8),4,2),kronecker(diag(2),c(1,1))),1:4)) D
($E$ and $F$ are similar). Symbolically we would have
$$D= \left( x^6y^2 + 2xy^5\right)\frac{\partial}{\partial x}+ \left(4x^7y^8 + 3x^4y^3\right)\frac{\partial}{\partial y}. $$
The package allows us to compose $E$ and $D$, although the result is quite complicated:
summary(E*D)
However, the Lie bracket, $ED-DE$, (.[E,D]
in package idiom) is
indeed first order:
.[E,D]
Above, looking at the dx
and dy
columns, we see that each row is
either 1 0
or 0 1
, corresponding to either $\partial/\partial x$
or $\partial/\partial y$ respectively. Arguably this is easier to see
with the other print method:
options(polyform = TRUE) .[E,D] options(polyform = FALSE) # revert to default
We may verify Jacobi's identity:
.[D,.[E,F]] + .[F,.[D,E]] + .[E,.[F,D]]
Borcherds goes on to consider the special case where the $f_i$ and $g_i$ are constant. In this case the operators commute (by repeated application of Schwarz's theorem) and so their Lie bracket is identically zero. We can create constant operators easily:
(D <- as.weyl(spray(cbind(matrix(0,3,3),matrix(c(0,1,0,1,0,0,0,0,1),3,3,byrow=T)),1:3))) (E <- as.weyl(spray(cbind(matrix(0,3,3),matrix(c(0,1,0,1,0,0,0,0,1),3,3,byrow=T)),5:7)))
(above, see how the first three columns of the index matrix are zero, corresponding to constant coefficients of the differential operator; symbolically $D=2\frac{\partial}{\partial x}+\frac{\partial}{\partial y}+3\frac{\partial}{\partial z}$ and $E=6\frac{\partial}{\partial x}+5\frac{\partial}{\partial y}+7\frac{\partial}{\partial z}$. And indeed, their Lie bracket vanishes:
.[D,E]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.