import sympy
? how to write matrices in latex?!
r, phi = sympy.symbols('r phi')
gmn= sympy.Matrix([[1,0],[0,r**2]])
gMN= gmn**(-1)
indices = {0:'r', 1:'phi'}
for i in [0,1]:
for j in [0,1]:
for k in [0,1]:
sum = 0
for l in [0,1]:
#print (1./2)*gMN[2*1+j]*(sympy.diff(gmn[2*0+j],phi) +sympy.diff(gmn[2*1+j],r) -sympy.diff(gmn[2*0+1],r))
sum += (1./2)*gMN[2*k+l]*(sympy.diff(gmn[2*j+l],indices[i]) +sympy.diff(gmn[2*i+l],indices[j]) -sympy.diff(gmn[2*i+j],indices[l]))
#print 'gamma',i,j,k,sum
print 'gamma','^',indices[k],'_{',indices[i],indices[j],'}',sum
gamma ^ r _{ r r } 0 gamma ^ phi _{ r r } 0 gamma ^ r _{ r phi } 0 gamma ^ phi _{ r phi } 1.0/r gamma ^ r _{ phi r } 0 gamma ^ phi _{ phi r } 1.0/r gamma ^ r _{ phi phi } -1.0*r gamma ^ phi _{ phi phi } 0
r, theta, phi = sympy.symbols('r theta phi')
gmn= sympy.Matrix([[r**2,0],[0,(r**2)*(sympy.sin(theta)**2)]])
gMN= gmn**(-1)
indices = {0:'theta', 1:'phi'}
for i in [0,1]:
for j in [0,1]:
for k in [0,1]:
sum = 0
for l in [0,1]:
# print (1./2)*gMN[2*1+j]*(sympy.diff(gmn[2*0+j],phi) +sympy.diff(gmn[2*1+j],r) -sympy.diff(gmn[2*0+1],r))
sum += (1./2)*gMN[2*k+l]*(sympy.diff(gmn[2*j+l],indices[i]) +sympy.diff(gmn[2*i+l],indices[j]) -sympy.diff(gmn[2*i+j],indices[l]))
#print 'gamma',i,j,k,sum
print 'gamma','^',indices[k],'_{',indices[i],indices[j],'}',sum
gamma ^ theta _{ theta theta } 0 gamma ^ phi _{ theta theta } 0 gamma ^ theta _{ theta phi } 0 gamma ^ phi _{ theta phi } 1.0*cos(theta)/sin(theta) gamma ^ theta _{ phi theta } 0 gamma ^ phi _{ phi theta } 1.0*cos(theta)/sin(theta) gamma ^ theta _{ phi phi } -1.0*sin(theta)*cos(theta) gamma ^ phi _{ phi phi } 0