Function Repository Resource:

ZassenhausTerms

Source Notebook

Generate terms in the Zassenhaus formula

Contributed by: Mohammad Bahrami

ResourceFunction["ZassenhausTerms"][{op1,op2,,opm},n,alg]

generates the degree-n term of the Zassenhaus formula with alg as the underlying operation between opi.

Details and Options

The degree-n term of Zassenhaus formula involves all possible Lie monomials of degree n in terms of nested commutators of operators.
The Zassenhaus formula is defined as .
When alg is not specified, the default operation is Dot.
The Zassenhaus formula is in many ways the "dual" of the Baker–Campbell–Hausdorff (BCH) formula.
ZassenhausTerms accepts one option, which is set as False by default
"CommutatorForm"Falsewhether to give the result in commutator form
ZassenhausTerms needs version 14.3 of the Wolfram Language.

Examples

Basic Examples (5) 

Degree-2 of Zassenhaus term for two operators:

In[1]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 2]
Out[1]=

Degree-2 of Zassenhaus term for two operators, in the commutator form:

In[2]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 2, "CommutatorForm" -> True]
Out[2]=

Degree-4 of Zassenhaus term for two operators:

In[3]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 4] // NonCommutativeExpand[#, Dot] &
Out[3]=

Degree-2 of Zassenhaus term for three symbolic matrices:

In[4]:=
op = Table[MatrixSymbol["x" <> ToString[j], \[FormalN]], {j, 3}];
ResourceFunction["ZassenhausTerms"][op, 2] // NonCommutativeExpand[#, Dot] &
Out[5]=

Degree-3 of Zassenhaus term for three operators with Composition as the action:

In[6]:=
ResourceFunction["ZassenhausTerms"][{x, y, w}, 3, Composition] // NonCommutativeExpand[#, Composition] &
Out[6]=

Scope (4) 

Degree-3 of Zassenhaus terms with NonCommutativeMultiply as the action between operators:

In[7]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 3, NonCommutativeMultiply] // NonCommutativeExpand[#, NonCommutativeMultiply] &
Out[7]=

Show :

In[8]:=
Z3 = 1/3 Commutator[y, Commutator[x, y]] + 1/6 Commutator[x, Commutator[x, y]];
ResourceFunction["ZassenhausTerms"][{x, y}, 3, NonCommutativeMultiply] - Z3 // NonCommutativeExpand[#, NonCommutativeMultiply] &
Out[9]=

Show :

In[10]:=
Z4 = -1/8 Commutator[y, Commutator[y, Commutator[x, y]]] - 1/8 Commutator[y, Commutator[x, Commutator[x, y]]] - 1/24 Commutator[x, Commutator[x, Commutator[x, y]]];
ResourceFunction["ZassenhausTerms"][{x, y}, 4, NonCommutativeMultiply] - Z4 // NonCommutativeExpand[#, NonCommutativeMultiply] &
Out[11]=

Show degree-3 of Zassenhaus formula, for four operators:

In[12]:=
ResourceFunction["ZassenhausTerms"][{x, y, z, w}, 3] // NonCommutativeExpand[#, Dot] &
Out[12]=

Options (2) 

Show degree-3 of Zassenhaus formula, for two operators by holding the commutator form:

In[13]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 3, "CommutatorForm" -> True]
Out[13]=

Show degree-2 of Zassenhaus formula, for four symbolic matrices by holding the commutator form:

In[14]:=
ResourceFunction["ZassenhausTerms"][
 Table[MatrixSymbol["x" <> ToString[j], \[FormalN]], {j, 4}], 2, "CommutatorForm" -> True]
Out[14]=

Applications (1) 

Show a few terms of Zassenhaus formula for x1+x2+x3+x4=x1x2x3x4∏n=2∞ⅇWn

In[15]:=
With[{ops = Table[
    ToString[Subscript[x, j], StandardForm], {j, 3}]},
 Grid[Table[{\!\(\*
TagBox[
RowBox[{"ToString", "[", 
RowBox[{
RowBox[{"Subscript", "[", 
RowBox[{"\[ScriptCapitalW]", ",", "j"}], "]"}], ",", "StandardForm"}],
         "]"}],
FullForm]\), ResourceFunction["ZassenhausTerms"][ops, j] // NonCommutativeExpand[#, Dot] &}, {j, 2, 5}], Frame -> All, Alignment -> Left]]
Out[15]=

Publisher

Mads Bahrami

Version History

  • 1.0.0 – 23 July 2025

Source Metadata

Related Resources

License Information