import sympy 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 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