daily pastebin goal
26%
SHARE
TWEET

Untitled

a guest Dec 7th, 2018 59 Never
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
 
  1. print('Simulador da trajetória de uma órbita.')
  2.  
  3. '----------------Condições Iniciais----------------'
  4.  
  5. print('Temos as seguintes condições iniciais:')
  6. print('G = (6.67)*(10**-11) m^3.kg^-1.s^-2')
  7. print('Massa do sol = 1.98*(10**30)  kg')
  8. print('Massa da terra = 5.972*(10**24)  kg')
  9. print('Posição inicial no eixo x = 1.5*(10**11)  m')
  10. print('Posição inicial no eixo y = 0  m')
  11. print('Velocidade inicial no eixo x = 0  m/s')
  12. print('Velocidade inicial no eixo y = 3.6340*(10**4)  m/s')
  13. print('Tempo total da contagem = 3.1516*(10**7)s (um ano) ')
  14. print('Delta tempo = 0.001  s')
  15.  
  16.  
  17. '----------------Definindo Condições Iniciais----------------'
  18.  
  19. const_grav = 6.67*(10**-11)   #constante gravitacional
  20. massa_sol = 1.98*(10**30)       #massa do sol
  21. massa_terra = 5.972*(10**24)    #massa da terra
  22. x0 = 1.5*(10**11)               #posição inicial no eixo x
  23. y0 = 0                          #posição inicial no eixo y
  24. vx0 = 0                        #velocidade inicial no eixo x
  25. vy0 = 3.6340*(10**4)           #velocidade inicial no eixo y
  26. t = 3.1516*(10**7)              #tempo total = tempo de um ano
  27. cont_tempo = 0                  #contador de tempo
  28. delta_t = 0.001                 #delta t
  29.  
  30.  
  31. '----------------Listas com os valores----------------'
  32.  
  33. tn = [] # lista do tempo contabilizando cada instante
  34. x_coord = [] #lista com os valores da posição em relação ao eixo x
  35. y_coord = [] #lista com os valores da posição em relação ao eixo y
  36. vx_coord = [] # lista da velocidade em relação ao eixo x
  37. vy_coord = [] # lista da velocidade em relação ao eixo y
  38. v_coord = [] # lista da velocidade em módulo
  39. ax_coord = [] #lista da aceleração no eixo x
  40. ay_coord = [] #lista da aceleração no eixo y
  41. a_coord = [] # aceleração em módulo
  42. virial = [] #teorema do virial
  43.  
  44.  
  45. '----------------Loop do tempo----------------'
  46.  
  47. #Enquanto tempo total for maior ou igual ao contador de tempo, teremos o loop.
  48.  
  49. while (t >= cont_tempo):
  50.  
  51.     cont_tempo = cont_tempo + delta_t
  52.  
  53. #Usando as equações obtidas através da segunda lei de Newton, podemos calcular os parâmetros
  54.  
  55.     ax = (const_grav * massa_sol * x0)/((x0 ** 2 + y0 ** 2) ** 1.5)
  56.     ay = (const_grav * massa_sol * y0)/((x0 ** 2 + y0 ** 2) ** 1.5)
  57.     a = (ax**2 + ay**2)**0.5
  58.  
  59.     vx = vx0 + (ax * delta_t)
  60.     vy = vy0 + (ay * delta_t)
  61.     v = (vx ** 2 + vy ** 2) ** 0.5
  62.  
  63.     x = (ax * (delta_t ** 2)) / 2 + (vx0 * delta_t) + x0
  64.     y = (ay * (delta_t ** 2)) / 2 + (vy0 * delta_t) + y0
  65.  
  66.     energia_potencial = (- const_grav * massa_sol * massa_terra)/((x ** 2 + y ** 2) ** 0.5)
  67.     energia_cinetica = (massa_terra * (v ** 2)) / 2
  68.     teorema_virial = energia_potencial / energia_cinetica
  69.  
  70.     # Por conta do LOOP, podemos preencher cada uma das listas usando a função .append
  71.  
  72.     x_coord.append(x)
  73.     y_coord.append(y)
  74.     vx_coord.append(vx)
  75.     vy_coord.append(vy)
  76.     v_coord.append(v)
  77.     tn.append(cont_tempo)
  78.     ax_coord.append(ax)
  79.     ay_coord.append(ay)
  80.     a_coord.append(a)
  81.     virial.append(teorema_virial)
  82.  
  83.     # ----------------Atualizando as variáveis----------------
  84.  
  85.     x0 = x
  86.     y0 = y
  87.     vy0 = vy
  88.     vx0 = vx
  89.  
  90. '----------------Dados obtidos----------------'
  91.  
  92. #Criamos uma função que preenche as tabelas com os parâmetros que obtivemos acima
  93.  
  94. def tabela(nome,lista):
  95.     arquivo = open(nome + '.txt', 'a')
  96.     for i in range(len(lista)):
  97.         arquivo.write(str(lista[i]) + 'n')
  98.     arquivo.close
  99.  
  100.  
  101. tabela('Lista do tempo', tn)
  102. tabela('Lista da posição do eixo x', x_coord)
  103. tabela('Lista da posição do eixo y', y_coord)
  104. tabela('Lista da velocidade no eixo x', vx_coord)
  105. tabela('Lista da velocidade no eixo y', vy_coord)
  106. tabela('Lista da velocidade em módulo', v_coord)
  107. tabela('Lista da aceleração no eixo x', ax_coord)
  108. tabela('Lista da aceleração no eixo y', ay_coord)
  109. tabela('Lista da aceleração em módulo', a_coord)
  110. tabela('Lista do teorema do virial', virial)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top