How to define a Einstein summation convention in Mathematica?
Say, how to let Mathematica know T[i,i] equals T[1,1]+T[2,2]+T[3,3]? How to define the function T[i,j]?
I know there are several Mathematica-abased programs that can do this, but still I want to know how to define my own.
Answer
For a single Function T this is pretty easy:
T[i_, i_] /; ! NumberQ[i] := Sum[T[j, j], {j, 3}]
A quick test gives:
In[7]:= T[i, i]
Out[7]= T[1, 1] + T[2, 2] + T[3, 3]
If you want to always sum over two equal indices for several functions, this might need some extra work though.
Comments
Post a Comment