Advertisement
stevn

Bevægelse af himmelsk objekt r

Jun 3rd, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. dv = 0.01
  2. #hastighedsskridt
  3.  
  4. startv = 17.8/dv
  5. #Starthastighed (selve tallet kan blive ændret)
  6.  
  7. slutv = 18/dv
  8. #Starthastighed
  9.  
  10. for(w in startv:slutv){
  11.  
  12. k = 40
  13. #G*M
  14.  
  15. step = 0.00001
  16. t = seq(0, 400, step)
  17.  
  18. k2 = 40/(2*10^30)*5.972*10^24
  19. #Dividerede G*M med solens masse og gangede med jordens
  20.  
  21. x = 1
  22. y = 0
  23. vx = 0
  24. vy = 6.28
  25. #jorden position of hastighed i forhold til solen
  26.  
  27. x2 = 0
  28. y2 = -0.25
  29. vx2 = w*dv
  30. vy2 = 0
  31. #satelittens position og hastighed i forhold til solen
  32.  
  33. x3 = (x2-x)
  34. y3 = (y2-y)
  35.  
  36. vx3 = 0
  37. vy3 = 0
  38. #hastigheden satelitten bliver tiltrukket til jorden
  39.  
  40.  
  41. r = ((x^2+y^2)^(1/2))
  42.  
  43. r2 = ((x2^2+y2^2)^(1/2))
  44.  
  45. r3= ((x2-x)^2+(y2-y)^2)^(1/2)
  46. # afstanden mellem jorden og solen, solen og satelitten, og satelitten og jorden
  47.  
  48. ax = -k*x/r^3
  49. ay = -k*y/r^3
  50. #jordens acceleration i forhold til solen
  51.  
  52. ax2 = -k*x2/r2^3
  53. ay2 = -k*y2/r2^3
  54. #satelittens accereration i forholdl til solen
  55.  
  56.  
  57. ax3 = -k2*y3/r3^3
  58. ay3 = -k2*y3/r3^3
  59. #satelittens accereration i forholdl til jorden
  60.  
  61. for(i in 2:length(t)){
  62.  
  63. vx[i]=vx[i-1]+step*ax[i-1]
  64. vy[i]=vy[i-1]+step*ay[i-1]
  65.  
  66. #beregning af jordens hastighed i forhold til solen
  67.  
  68. vx2[i]=vx2[i-1]+step*ax2[i-1]
  69. vy2[i]=vy2[i-1]+step*ay2[i-1]
  70.  
  71. #beregning af satelittens hastighed i forhold til solen
  72.  
  73. vx3[i] = vx3[i-1]+step*ax3[i-1]
  74. vy3[i] = vy3[i-1]+step*ay3[i-1]
  75.  
  76. #beregning af hvor hurtigt satelitten bliver tiltrukket a jorden
  77.  
  78. x[i] = x[i-1]+step*vx[i-1]
  79. y[i] = y[i-1]+step*vy[i-1]
  80.  
  81. #beregning af jordens position i forhold til solen
  82.  
  83.  
  84. x2[i] = x2[i-1]+step*vx2[i-1]
  85. y2[i] = y2[i-1]+step*vy2[i-1]
  86.  
  87. #beregning af satelittens position i forhold til solen
  88.  
  89.  
  90.  
  91. x2[i] = x2[i]+vx3[i-1]*step
  92.  
  93. y2[i] = y2[i]+vy3[i-1]*step
  94.  
  95. x3[i] = (x2[i]-x[i])
  96. y3[i] = (y2[i]-y[i])
  97.  
  98. #Tiltrækningen til jorden bliver lagt til
  99. #Objektets position i forhold til jorden bliver opdateret
  100.  
  101.  
  102.  
  103. r[i] = ((x[i]^2+y[i]^2)^(1/2))
  104.  
  105. r2[i] = ((x2[i]^2+y2[i]^2)^(1/2))
  106.  
  107. r3[i]= ((x2[i]-x[i])^2+(y2[i]-y[i])^2)^(1/2)
  108.  
  109. #afstanden beregnes
  110.  
  111. ax[i] = -k*x[i]/r[i]^3
  112. ay[i] = -k*y[i]/r[i]^3
  113.  
  114. ax2[i] = -k*x2[i]/r2[i]^3
  115. ay2[i] = -k*y2[i]/r2[i]^3
  116.  
  117. ax3[i] = -k2*y3[i]/r3[i]^3
  118. ay3[i] = -k2*y3[i]/r3[i]^3
  119.  
  120. #accelerationerne beregnes
  121.  
  122. }
  123. name = paste("C:/Users/Steven/Desktop/Skole ting overførsel/rscripts og andre docs/r image/orbits v =", w*dv, ".png", sep="")
  124.  
  125. if(w*dv == as.integer(w*dv)){
  126. name = paste("C:/Users/Steven/Desktop/Skole ting overførsel/rscripts og andre docs/r image/orbits v =", w*dv, ".0 .png", sep="")
  127.  
  128. }
  129.  
  130. #Disse to filplaceringsnavne skal ændres til placeringen af mappen billederne skal være i
  131.  
  132. plotname = paste("v = ", w*dv, "AE/År", sep = " ")
  133. png(filename = name)
  134.  
  135.  
  136. plot(x2, y2, type = "l", main = plotname, col = "red")
  137. lines(x, y, type = "l")
  138.  
  139.  
  140. dev.off()
  141. #de simulerede værdier bliver plottet og udskrevet
  142.  
  143. print(w)
  144. #Dette er bare en indikator for hvor langt koden er nået
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement