Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.39 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import time
  4.  
  5. #----------------- declaracao de variaveis
  6.  
  7. dt = 0.1*60*60 # delta t (hora)
  8. Mt = 5.9736*(10**24) # Massa da Terra(kg)
  9. Ml = 7.349*(10**22) # Massa da Lua (kg)
  10. Ms = 1.9891*(10**30) # Massa do Sol (kg)
  11. G = 6.67418*(10**-11) # Constante Gravitacional (m3kg-1s-2)
  12. kt = 0 # Variavel de controle afelio e perielio terra
  13. kl = 0 # Variavel de controle apogeu e perigeu lua
  14. i = 0 # Variavel contadora dentro do while
  15. l = 0 # Variavel contadora lua kl
  16. tT = 0 # Periodo da terra em dias
  17.  
  18. #----------------- condições iniciais (t=0)
  19.  
  20. t = 0
  21. xt = [147098290000] #posicao inicial terra em x (m)
  22. yt = [0] #posicao inicial terra em y (m)
  23. xl = [363104000+xt[0]] #posicao inicial lua em x (m)
  24. yl = [0] #posicao inicial lua em y (m)
  25. xlt = [xl[0]-xt[0]] #posicao inicial lua em relacao a terra x (m)
  26. ylt = [yl[0]-yt[0]] #posicao inicial lua em relacao a terra y (m)
  27. vxt = [0] #velocidade inicial terra em x (m/s)
  28. vyt = [30278] #velocidade inicial terra em y (m/s)
  29. vxl = [0] #velocidade inicial lua em x (m/s)
  30. vyl = [(3977.82/3.6)+vyt[0]] #velocidade inicial lua em y (m/s)
  31. rt = [((xt[0]**2)+(yt[0]**2))**(1/2)] #raio da orbita terra (m)
  32. rl = [((xl[0]**2)+(yl[0]**2))**(1/2)] #raio da orbita lua (m)
  33. rtl =[((xt[0]-xl[0])**2+(yt[0]-yl[0]))**(1/2)] #raio da orbita terra em relação a lua (m)
  34. alx =[(-G*(((Ms/(rl[0]**3))*xl[0])+((Mt/(rtl[0]**3))*(xl[0]-xt[0]))))] #aceleração da lua em x (m/s2)
  35. aly =[(-G*(((Ms/(rl[0]**3))*yl[0])+((Mt/(rtl[0]**3))*(yl[0]-yt[0]))))] #aceleração da lua em y (m/s2)
  36. atx =[(-G*(((Ms/(rt[0]**3))*xt[0])+((Ml/(rtl[0]**3))*(xt[0]-xl[0]))))] #aceleração da terra em x (m/s2)
  37. aty =[(-G*(((Ms/(rt[0]**3))*yt[0])+((Ml/(rtl[0]**3))*(yt[0]-yl[0]))))] #aceleração da terra em y (m/s2)
  38. Xlt =[xl[0]-xt[0]] #Vetor X da lua em relacao a terra (para achar perielios e apogeus)
  39. Ylt =[yl[0]-yt[0]] #Vetor Y da lua em relacao a terra (para achar perielios e apogeus)
  40. Vxlt =[vxt[0]-vxl[0]] #Vetor velocidade x da lua em relacao a terra
  41. Vylt =[vxt[0]-vyl[0]] #Vetor velocidade Y da lua em relacao a terra
  42.  
  43. # ----------------- evolução temporal ----
  44.  
  45. while i<365:
  46. tT= tT + (dt/(60*60*24))
  47. if i==0:
  48. vxt.append((vxt[i]+atx[i]*dt/2)) #velocidade terra em x1 (m/s)
  49. vyt.append((vyt[i]+aty[i]*dt/2)) #velocidade terra em y1 (m/s)
  50. vxl.append((vxl[i]+alx[i]*dt/2)) #velocidade lua em x1 (m/s)
  51. vyl.append((vyl[i]+aly[i]*dt/2)) #velocidade lua em y1 (m/s)
  52. else:
  53. vxt.append((vxt[i]+atx[i]*dt)) #velocidade terra em x (m/s)
  54. vyt.append((vyt[i]+aty[i]*dt)) #velocidade terra em y (m/s)
  55. vxl.append((vxl[i]+alx[i]*dt)) #velocidade lua em x (m/s)
  56. vyl.append((vyl[i]+aly[i]*dt)) #velocidade lua em y (m/s)
  57.  
  58. xt.append(xt[i]+vxt[i+1]*dt) #posicao terra em x (m)
  59. yt.append(yt[i]+vyt[i+1]*dt) #posicao terra em y (m)
  60. xl.append(xl[i]+vxl[i+1]*dt) #posicao lua em x (m)
  61. yl.append(yl[i]+vyl[i+1]*dt) #posicao lua em y (m)
  62. xlt.append(xl[i+1]-xt[i+1]) #posicao inicial lua em relacao a terra x (m)
  63. ylt.append(yl[i+1]-yt[i+1]) #posicao inicial lua em relacao a terra x (m)
  64.  
  65. rt.append(((xt[i+1]**2)+(yt[i+1]**2))**(1/2)) #raio da orbita terra (m)
  66. rl.append(((xl[i+1]**2)+(yl[i+1]**2))**(1/2)) #raio da orbita lua (m)
  67. rtl.append((((xt[i+1]-xl[i+1])**2+((yt[i+1]-yl[i+1]))**2))**(1/2)) #raio da orbita terra em relação a lua (m)
  68.  
  69. alx.append((-G*(((Ms/(rl[i+1]*3))*xl[i+1])+((Mt/(rtl[i+1]**3))*(xl[i+1]-xt[i+1]))))) #aceleração da lua em x (m/s2)
  70. aly.append((-G*(((Ms/(rl[i+1]**3))*yl[i+1])+((Mt/(rtl[i+1]**3))*(yl[i+1]-yt[i+1]))))) #aceleração da lua em y (m/s2)
  71. atx.append((-G*(((Ms/(rt[i+1]**3))*xt[i+1])+((Ml/(rtl[i+1]**3))*(xt[i+1]-xl[i+1]))))) #aceleração da terra em x (m/s2)
  72. aty.append((-G*(((Ms/(rt[i+1]**3))*yt[i+1])+((Ml/(rtl[i+1]**3))*(yt[i+1]-yl[i+1]))))) #aceleração da terra em y (m/s2)
  73.  
  74. for i in range(0, nt, 20):
  75. # plotting points on each subplot
  76. plt1.scatter(0., 0., color='r', s=40) #sol = vermelho
  77. plt1.scatter(xt[i], yt[i], color='b', s=3) #terra = azul
  78. plt1.scatter(xl[i], yl[i], color='g', s=3) #lua = verde
  79.  
  80. plt.show()
  81.  
  82. print()
  83. i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement