Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using QuadGK,Optim
- # Juhani Kaukoranta 8.10.2023
- # kuussa g = 1.622,maassa g = 9.81, Marsissa g=6.674
- # lähtönopeus v0
- # laskee vastuksettoman lentorataparaabelin arvoja
- function lentorata(v0,g)
- function kaari(θ) # paraabelikaaren pituus
- function integrand(x)
- return(sqrt(v0^2-2*g*v0*sin(θ)*x+g^2*x^2))
- end
- pituus,error = quadgk(integrand,0,2*v0*sin(θ)/g)
- return pituus
- end
- function ala(θ) # paraabelikaaren pinta-ala
- x1 = v0^2*sin(2*θ)/g
- return tan(θ)*x1^2/2-g*x1^3/(6*(v0*cos(θ))^2)
- end
- kaari2(x) = -kaari(x) # jotta max saadaan optimize.minimizer avulla
- ala2(x) = -ala(x) # jotta max saadaan optimize.minimizer avulla
- resultkaari = optimize(kaari2,0.4,1.3)
- maksimikaari = resultkaari.minimizer # maksimikaaren tuottava lähtökulma
- resultala = optimize(ala2,0.2,1.4)
- maksimiala = resultala.minimizer # maksimialan tuottava lähtökulma
- maksimivaakakantama = round(v0^2/g,digits=2)
- println("heittoliike, kun kaasukehän vastus olemattoman pieni:")
- println("lähtonopeus = ",v0," m/s")
- println("putouskiihtyvys g = ",g," m/s2")
- println("kun kaasukehän vastus on olematon, niin:")
- println("tällöin paraabelikaaren maksimipituus ",round(kaari(maksimikaari),digits=2), " m")
- println("maksimiparaabelikaaren lähtökulma = ",round(maksimikaari*180.0/pi,digits=2)," astetta")
- println("tällöin kaaren korkeus on ",round(v0^2*(sin(maksimikaari))^2/(2*g),digits=2)," m")
- println("tällöin vaakakantama on ",round(2*v0*sin(maksimikaari)/g,digits=2)," m")
- println("tällöin vaakakantaman lentoaika = ",round(2*v0*sin(maksimikaari)/g)," s")
- println("pisin vaakakantama saadaan kulmalla 45° = ",maksimivaakakantama, " m")
- println("tällöin 45° kulmalla vaakakantaman lentoaika ",round(2*v0*sin(pi/4)/g,digits=2)," s")
- println("tällöin 45° kulmalla kaaren korkeus = ",round((v0*sin(pi/4))^2/(2*g),digits=2)," m")
- println("paraabelikaaren ja lähtötason välinen maksimipinta-ala ",round(ala(maksimiala),digits=2), " m²")
- println("kaaren maksimipinta-alan tuottaa lähtökulma = ",round(maksimiala*180.0/pi,digits=2)," astetta")
- println("maksimipinta-alaa vastaava kantama = ",round(v0^2*sin(2*maksimiala)/g,digits=2)," m")
- println("maksimipinta-alaa vastaava kaaren korkeus = ",round((v0*sin(maksimiala))^2/(2*g),digits=2)," m")
- println("maksimipinta-alaa vastaava lentoaika = ",round(2*v0*sin(maksimiala)/g,digits=2)," s")
- println("maksimikorkeuden ",round(v0^2/(2*g),digits=3)," m tuottaa lähtökulma 90° = pystysuora")
- println("tällöin pystysuoran heiton vaakakantama on 0 m ja lentoaika ", round(2*v0/g,digits=2)," s")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement