Advertisement
jukaukor

ellipsin_piiri.jl

Dec 26th, 2023
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. # Ellipsin piirin liittyvia laskuja Julialla
  2. # Juhani Kaukorant 26.12.2023
  3. using Elliptic,QuadGK,Roots
  4. # käytössä elliptiset funktiot, numeerinen integrointi, juurenhaku
  5. # a,b= # ellipsin semimajor,semiminor akselit
  6. # m = 1-b^2/a^2 # ellipsin eksentrisyyden neliö
  7. function ramanujan(a,b)
  8. # Ramanujanin likiarvo ellipsin piirille
  9. h = ((a-b)/(a+b))^2
  10. return pi*(a+b)*(1+3*h/(10+sqrt(4-3*h)))
  11. end
  12. function ellipsinpiiri(a,b)
  13. m = 1-b^2/a^2
  14. println("Legendre elliptic integral:",4*a*E(m)); #tarkin
  15. println("Numeerinen integrointi: ",4*a*quadgk(x->sqrt(1-m*sin(x)^2),0,pi/2)[1]);
  16. println("Ramanujan approximaatio: ",ramanujan(a,b));
  17. end
  18. function ellipsinkaari(a,b,T0,T1)
  19. # kaaren pituus T0->T1
  20. # T ei ole keskipisteestä laskettu kulma
  21. # vaan ellipsin pisteen (a*sin(t),b*cos(t)) kulma t
  22. # T=0 itä, T=pi/2 pohjoinen,T=pi länsi,T=3pi/2 etelä
  23. m =1-b^2/a^2
  24. return a*E(T1-pi/2,m)-a*E(T0-pi/2,m)
  25. end
  26. function find_ellipseb(a,piiri)
  27. # etsitään pieni puoliakseli
  28. # kun piiri ja iso puoliakseli a tunnetaan
  29. f(x) = 4*a*E(1-x^2/a^2)-piiri
  30. b = find_zero(f,5)
  31. return b
  32. end
  33. function ellipsinala(a,b)
  34. return pi*a*b
  35. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement