FW: How to do Lie Algebras in Mathematica...
- To: mathgroup at smc.vnet.net
- Subject: [mg20774] FW: [mg20751] How to do Lie Algebras in Mathematica...
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Thu, 11 Nov 1999 00:22:48 -0500
- Sender: owner-wri-mathgroup at wolfram.com
Here is one quick attempt. We simply define a Lie algebra axiomatically using a bracket operation just as one would do in an introductory math course on the subject: First we want the bracket to be bi-linear: In[1]:= Bracket[X_Plus, Y_Plus] := Block[{Bracket}, Distribute[Bracket[X, Y]]] In[2]:= Bracket[a_?NumericQ*X_, Z_] := a*Bracket[X, Z] In[3]:= Bracket[Z_, a_?NumericQ*X_] := a*Bracket[Z, X] next anti-commutativity In[3]:= Bracket[X_, X_] = 0; In[4]:= Bracket[x_, y_] /; Sort[{x, y}] =!= {x, y} := -Bracket[Apply[Sequence, Sort[{x, y}]]] Finally the Jacobi identity: In[5]:= Bracket /: Bracket[Bracket[x_, y_], z_] + Bracket[Bracket[y_, z_], x_] + Bracket[Bracket[z_, x_], y_] = 0; (This is not a minimal system of axioms but seems convenient in this case) Now we only need to define the Bracket on generators, e.g. In[6]:= Bracket[e, h] = 2e; Bracket[f, h] = -2f; Bracket[e, f] = h; And we can now do Lie algebra computations like: In[7]:= Bracket[3f + 2h, 5e - f + 11h] Out[7]= -20 e - 70 f - 15 h -- Andrzej Kozlowski Toyama International University JAPAN http://sigma.tuins.ac.jp > From: Melih Sener <melih at ks.uiuc.edu> To: mathgroup at smc.vnet.net > Organization: TBG/Beckman Institute > Date: Wed, 10 Nov 1999 00:17:57 -0500 > To: mathgroup at smc.vnet.net > Subject: [mg20774] [mg20751] How to do Lie Algebras in Mathematica... > > > Hi... > > Lets say I want to generate the Lie Algebra [of say su(3)] > on Mathematica without going to explicitly > constucting matrices for the generators... > > So I want Mathematica to "learn" relations like: > > [G_ij , G_kl] = (something)*G_mn > > and I want to define a "commutator product" [A , B] > which is distributive, linear etc. > > So that I can produce expressions for things like > [a*G_12+b*G_23, c*G_33+d*G_13] in an easy way... > [ "Distribute" is useful... but I don't know how to > make mathematica learn to factor coefficents of generators > outside the commutator...] > > What is the best way to do this? > > Thanks, > > Melih >