Sun Jun 15 17:27:53 MDT 1997 euler% math Mathematica 3.0 for Solaris Copyright 1988-96 Wolfram Research, Inc. -- Terminal graphics initialized -- In[1]:= In[2]:= In[3]:= (* ----------[ M a t h e m a t i c a ]---------- *) 0. Second In[4]:= (* ---------- Initialization ---------- *) 0. Second In[5]:= (* ---------- Tensor Analysis ---------- *) 0. Second In[6]:= (* Generalized Kronecker delta: delta([j, h], [i, k]) = delta(j, i) delta(h, k) - delta(j, k) delta(h, i). See David Lovelock and Hanno Rund, _Tensors, Differential Forms, & Variational Principles_, John Wiley & Sons, Inc., 1975, p. 109. *) 0. Second In[7]:= (j == i) == (h == k) - (j == k) == (h == i) 0. Second Out[7]= (j == i) == (h == k) - (j == k) == (h == i) In[8]:= (* Levi-Civita symbol: [epsilon(2,1,3), epsilon(1,3,1)] => [-1, 0] *) 0. Second In[9]:= {Signature[{2, 1, 3}], Signature[{1, 3, 1}]} 0. Second Out[9]= {-1, 0} In[10]:= (* Tensor outer product: [[ 5 6] [-10 -12]] [1 -2] [ 5 6] [[ -7 8] [ 14 -16]] ij ij [3 4] X [-7 8] = [ ] c = a b [[ 15 18] [ 20 24]] kl kl [[-21 24] [-28 32]] *) 0. Second In[11]:= a = {{1, -2}, {3, 4}}; 0. Second In[12]:= b = {{5, 6}, {-7, 8}}; 0. Second In[13]:= Outer[Times, a, b] // MatrixForm 0. Second Out[13]= 5 6 -10 -12 -7 8 14 -16 15 18 20 24 -21 24 -28 32 In[14]:= Clear[a, b] 0. Second In[15]:= (* Definition of the Christoffel symbol of the first kind (a is the\ > metric tensor) [Lovelock and Rund, p. 81] d a d a d a 1 kh hl lk Chr1 = - (----- + ----- - -----) lhk 2 l k h d x d x d x *) 0. Second In[16]:= (* Partial covariant derivative of a type (1, 1) tensor field (Chr2\ > is the Christoffel symbol of the second kind) [Lovelock and Rund, p. 77] i d i i m m i T = ---- T + Chr2 T - Chr2 T j|k k j m k j j k m d x *) 0. Second In[17]:= << ProgrammingInMathematica`Tensors` 0.02 Second In[18]:= Tensor[T][ui[i], li[j]] 0. Second i Out[18]= T j In[19]:= (* Verify the Bianchi identity for a symmetric connection (K is the\ > Riemann curvature tensor) [Lovelock and Rund, p. 94] h h h K + K + K = 0 i jk|l i kl|j i lj|k *) 0. Second In[20]:= (* ---------- Quit ---------- *) 0. Second In[21]:= Quit[] real 1.37 user 0.82 sys 0.31