Does anyone have a recommendation for software which can efficiently calculate the Baker-Campbell-Hausdorff series in classical Lie algebras?

Right now, I have a problem which boils down to understanding Baker-Campbell-Hausdorff with respect to a basis in su(2), and this seems like the kind of thing Sage or Mathematica should be able to handle. However, I haven't had to use computer algebra packages for Lie theory before, so I would love to be pointed in the right direction.

Many thanks,


  • 2
    $\begingroup$ For $SU(2)$, rather than using BCH, why not just exponentiate the matrices, multiply them and compute the logarithm? The logarithm is the most involved step, but it basically amounts to computing the eigenvalues and eigenvectors. This is a relatively straightforward task. Do you want the answer to be in a particular form? $\endgroup$ – Ryan Budney Nov 2 '11 at 17:35
  • $\begingroup$ I suppose in principle there's a nice closed-form answer if you use the above approach. You can determine the axis and angle of rotation by solving some linear and a quadratic equation. $\endgroup$ – Ryan Budney Nov 2 '11 at 17:40
  • $\begingroup$ I've been told that LiE is a good software package for many Lie-theoretic problems. I've never used it myself, so I'll leave this as a comment, rather than an answer. $\endgroup$ – Theo Johnson-Freyd Nov 2 '11 at 18:02
  • $\begingroup$ @Ryan, SU(2) is a warm-up for SU(n), so while I could do things by hand here, I figured it's worth my while to find a good computer program now. Theo, thanks for the mention on LiE. I'll take a look at it. $\endgroup$ – Jesse Wolfson Nov 2 '11 at 19:13
  • 1
    $\begingroup$ arxiv.org/abs/math-ph/9905012 $\endgroup$ – Steve Huntsman Nov 3 '11 at 0:10

There is a quite comprehensive package for Lie algebras in Maple. It is developed by Ian Anderson (from Utah State not Jethro Tull).


You don't need any packages to be able to do that in Mathematica for small Lie algebras such as su(2), probably not in SAGE either (I'm familiar with Mathematica). Anyway, Basically you just need to use the MatrixExp function and solve some equations. E.g. define

$M_1 = \text{MatrixExp}\left[\sum\limits_i \alpha^i X_i\right]$ and $M_2 =\prod\limits_i\text{MatrixExp}\left[\beta^i X_i\right]$

You may get transcendental equations, but you can simplify things by hand. Here's $M_2$ explicitly (just pick a basis $X_i$):

$\text{M2}=\text{MatrixExp}[X[1]\alpha [1]].\text{MatrixExp}[X[2]\alpha [2]].\text{MatrixExp}[X[3]\alpha [3]]\text{//}\text{FullSimplify}$

  • $\begingroup$ umm and I mean of course then solve the equation $M_1 = M_2$ for $\alpha$'s or $\beta$'s... $\endgroup$ – H. Arponen Nov 3 '11 at 9:32

I don't have a first-hand experience, but hope this is helpful anyway. K.Engo, A.Marthinsen and H.Munthe-Kaas have done a lot of work on numerical methods for solving ODE on manifolds (and Lie groups in particular). See for example their paper ''DiffMan: an object-oriented Matlab toolbox for solving differential equations on manifolds'', Appl. Numerical Mathematics, 39 (2001), p.323 where they discuss a particular package.

  • $\begingroup$ There is the paper K. Engø, "On the BCH-formula in so(3)", BIT Numerical Mathematics, 41, number 3, 2001, pp629-632. Its technique is directly applicable (more simply) to $\exp:su(2)\to SU(2)$, you simply put the $SU(2)$ Rodrigues formula instead of the $SO(3)$ one into Engo's procedure. $\endgroup$ – WetSavannaAnimal Mar 28 '14 at 1:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.