Advertisement
jukaukor

lentorataparaabeli.jl

Oct 3rd, 2023 (edited)
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. using QuadGK,Optim
  2. # Juhani Kaukoranta 8.10.2023
  3. # kuussa g = 1.622,maassa g = 9.81, Marsissa g=6.674
  4. # lähtönopeus v0
  5. # laskee vastuksettoman lentorataparaabelin arvoja
  6. function lentorata(v0,g)
  7. function kaari(θ) # paraabelikaaren pituus
  8. function integrand(x)
  9. return(sqrt(v0^2-2*g*v0*sin(θ)*x+g^2*x^2))
  10. end
  11. pituus,error = quadgk(integrand,0,2*v0*sin(θ)/g)
  12. return pituus
  13. end
  14. function ala(θ) # paraabelikaaren pinta-ala
  15. x1 = v0^2*sin(2*θ)/g
  16. return tan(θ)*x1^2/2-g*x1^3/(6*(v0*cos(θ))^2)
  17. end
  18. kaari2(x) = -kaari(x) # jotta max saadaan optimize.minimizer avulla
  19. ala2(x) = -ala(x) # jotta max saadaan optimize.minimizer avulla
  20. resultkaari = optimize(kaari2,0.4,1.3)
  21. maksimikaari = resultkaari.minimizer # maksimikaaren tuottava lähtökulma
  22. resultala = optimize(ala2,0.2,1.4)
  23. maksimiala = resultala.minimizer # maksimialan tuottava lähtökulma
  24. maksimivaakakantama = round(v0^2/g,digits=2)
  25. println("heittoliike, kun kaasukehän vastus olemattoman pieni:")
  26. println("lähtonopeus = ",v0," m/s")
  27. println("putouskiihtyvys g = ",g," m/s2")
  28. println("kun kaasukehän vastus on olematon, niin:")
  29. println("tällöin paraabelikaaren maksimipituus ",round(kaari(maksimikaari),digits=2), " m")
  30. println("maksimiparaabelikaaren lähtökulma = ",round(maksimikaari*180.0/pi,digits=2)," astetta")
  31. println("tällöin kaaren korkeus on ",round(v0^2*(sin(maksimikaari))^2/(2*g),digits=2)," m")
  32. println("tällöin vaakakantama on ",round(2*v0*sin(maksimikaari)/g,digits=2)," m")
  33. println("tällöin vaakakantaman lentoaika = ",round(2*v0*sin(maksimikaari)/g)," s")
  34. println("pisin vaakakantama saadaan kulmalla 45° = ",maksimivaakakantama, " m")
  35. println("tällöin 45° kulmalla vaakakantaman lentoaika ",round(2*v0*sin(pi/4)/g,digits=2)," s")
  36. println("tällöin 45° kulmalla kaaren korkeus = ",round((v0*sin(pi/4))^2/(2*g),digits=2)," m")
  37. println("paraabelikaaren ja lähtötason välinen maksimipinta-ala ",round(ala(maksimiala),digits=2), " m²")
  38. println("kaaren maksimipinta-alan tuottaa lähtökulma = ",round(maksimiala*180.0/pi,digits=2)," astetta")
  39. println("maksimipinta-alaa vastaava kantama = ",round(v0^2*sin(2*maksimiala)/g,digits=2)," m")
  40. println("maksimipinta-alaa vastaava kaaren korkeus = ",round((v0*sin(maksimiala))^2/(2*g),digits=2)," m")
  41. println("maksimipinta-alaa vastaava lentoaika = ",round(2*v0*sin(maksimiala)/g,digits=2)," s")
  42. println("maksimikorkeuden ",round(v0^2/(2*g),digits=3)," m tuottaa lähtökulma 90° = pystysuora")
  43. println("tällöin pystysuoran heiton vaakakantama on 0 m ja lentoaika ", round(2*v0/g,digits=2)," s")
  44. end
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement