def rungek(eps,dt,nit,m,pos,vel,acel): #path = '/home/users/valeria/metodos_numericos/_data/runge/' path = '/home/omarioni/metodos_numericos/_data/P2C/runge/' for i in np.arange(nit): k1 = acel k2 = acel + k1*dt/2. k3 = acel + k2*dt/2. k4 = acel + k3*dt vel = vel + dt*(k1/6. + k2/3. + k3/3. + k4/6.) k1 = vel k2 = vel + k1*dt/2. k3 = vel + k2*dt/2. k4 = vel + k3*dt pos = pos + dt*(k1/6. + k2/3. + k3/3. + k4/6.) acel = fz.aceleraciones(eps,pos[:,0],pos[:,1],pos[:,2],m) if i in np.arange(0,nit,10): np.savetxt(path + 'posiciones'+str('%s'%i)+'.dat',pos,fmt='%12.6f') np.savetxt(path +'velocidades'+str('%s'%i)+'.dat',vel,fmt='%12.6f') #np.savetxt(path +'aceleraciones'+str('%s'%i)+'.dat',acel,fmt='%12.6f') return pos, vel, acel
def euler(eps,dt,nit,m,pos,vel,acel): path = '/home/omarioni/metodos_numericos/_data/P2C/euler/' for i in np.arange(nit): vel = vel + acel*dt pos = pos + vel*dt acel = fz.aceleraciones(eps,pos[:,0],pos[:,1],pos[:,2],m) if i in np.arange(0,nit,10): np.savetxt(path+'posiciones'+str('%s'%i)+'.dat',pos,fmt='%12.6f') np.savetxt(path+'velocidades'+str('%s'%i)+'.dat',vel,fmt='%12.6f') np.savetxt(path+'aceleraciones'+str('%s'%i)+'.dat',acel,fmt='%12.6f') return pos, vel, acel
def DKD(eps,dt,nit,m,pos,vel,acel): #path = '/home/users/valeria/metodos_numericos/_data/DKD/' #path = '/home/ornela/metodos_numericos/_data/DKD/' path = '/home/omarioni/metodos_numericos/_data/P2C/DKD/' for i in np.arange(nit): pos = pos + vel*dt*0.5 acel = fz.aceleraciones(eps,pos[:,0],pos[:,1],pos[:,2],m) vel = vel + acel*dt pos = pos + vel*dt*0.5 if i in np.arange(0,nit,10): np.savetxt(path+'posiciones'+str('%s'%i)+'.dat',pos,fmt='%12.6f') np.savetxt(path+'velocidades'+str('%s'%i)+'.dat',vel,fmt='%12.6f') #np.savetxt(path+'aceleraciones'+str('%s'%i)+'.dat',acel,fmt='%12.6f') return pos, vel, acel