import Diff G=6.67e-11 M=2.0e30 RE=1.5e11 rs=7e8 def fall(t,x): # dx0/dt = GM/x1**2, dx1/dt=x0 return [-G*M/x[1]**2,x[0]] def e(x): #energy at pt x return x[0]**2/2 - G*M/x[1] N=56000 dt = 100 x=[0,RE] e0=e(x) print 0,x[0],x[1], 0 for i in range(N): x=Diff.runge(fall,x,i*dt,(i+1)*dt,10) print (i+1)*dt,x[0],x[1],(e(x)-e0)/e0 if x[1]