Skip to main content

Module bch

Module bch 

Source
Expand description

Baker-Campbell-Hausdorff (BCH) Formula

Provides logarithmic coordinates for Lie group composition.

§Mathematical Background

For X, Y ∈ 𝔤 (Lie algebra), the BCH formula gives Z ∈ 𝔤 such that:

exp(Z) = exp(X) · exp(Y)

The full series is:

Z = X + Y + (1/2)[X,Y] + (1/12)([X,[X,Y]] + [Y,[Y,X]])
  - (1/24)[Y,[X,[X,Y]]] + ...

§Convergence (IMPORTANT)

The BCH series has a finite convergence radius:

BoundValueUse case
Strictlog(2) ≈ 0.693Guaranteed convergence
Practicalπ ≈ 3.14Often works but not guaranteed

For ||X|| + ||Y|| > log(2), the truncated series may give incorrect results. Use direct composition exp(X)·exp(Y) instead.

§Why log(2)?

The BCH series can be written as Z = Σₙ Zₙ(X,Y) where each Zₙ is a sum of nested brackets. The key insight is that:

||Zₙ|| ≤ Cₙ · (||X|| + ||Y||)ⁿ

where Cₙ grows like 1/n. The generating function Σ Cₙ tⁿ converges for |t| < log(2).

Proof sketch: Write exp(X)exp(Y) = exp(Z) and take log of both sides:

Z = log(exp(X)exp(Y)) = log(I + (exp(X)exp(Y) - I))

The logarithm series log(I + A) = A - A²/2 + A³/3 - … converges for ||A|| < 1. Since ||exp(X)exp(Y) - I|| ≤ e^{||X||+||Y||} - 1, we need e^{||X||+||Y||} - 1 < 1, giving ||X|| + ||Y|| < log(2). ∎

The functions in this module include runtime checks (debug_assert) to warn when inputs exceed the convergence radius.

§Applications

  • Numerical integration on Lie groups (Magnus expansion)
  • Understanding non-commutativity: Z ≠ X + Y when [X,Y] ≠ 0
  • Efficient composition in algebra coordinates

§References

  • Rossmann, W. “Lie Groups: An Introduction through Linear Groups” (2002)
  • Iserles et al. “Lie-group methods” Acta Numerica (2000)
  • Blanes & Casas “A Concise Introduction to Geometric Numerical Integration” (2016)

Enums§

BchError
Error type for safe BCH operations.
BchMethod
Result of BCH composition indicating which method was used.

Constants§

BCH_CONVERGENCE_RADIUS
Convergence radius for BCH series (strict bound)
BCH_PRACTICAL_LIMIT
Practical limit for BCH series (often works but not guaranteed)

Functions§

bch_error_bound
Estimate error bound for BCH truncation.
bch_fifth_order
Baker-Campbell-Hausdorff formula truncated to 5th order.
bch_fourth_order
Baker-Campbell-Hausdorff formula truncated to 4th order.
bch_is_practical
Check if BCH series is likely to give reasonable results.
bch_safe
Safe BCH composition with automatic fallback to direct exp(X)·exp(Y).
bch_safe_with_method
Safe BCH composition with method reporting.
bch_second_order
Baker-Campbell-Hausdorff formula truncated to 2nd order.
bch_split
Inverse BCH formula: Given Z, find X and Y such that exp(Z) = exp(X) · exp(Y).
bch_third_order
Baker-Campbell-Hausdorff formula truncated to 3rd order.
bch_will_converge
Check if BCH series is expected to converge for given inputs.