Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Ellipsin piirin liittyvia laskuja Julialla
- # Juhani Kaukorant 26.12.2023
- using Elliptic,QuadGK,Roots
- # käytössä elliptiset funktiot, numeerinen integrointi, juurenhaku
- # a,b= # ellipsin semimajor,semiminor akselit
- # m = 1-b^2/a^2 # ellipsin eksentrisyyden neliö
- function ramanujan(a,b)
- # Ramanujanin likiarvo ellipsin piirille
- h = ((a-b)/(a+b))^2
- return pi*(a+b)*(1+3*h/(10+sqrt(4-3*h)))
- end
- function ellipsinpiiri(a,b)
- m = 1-b^2/a^2
- println("Legendre elliptic integral:",4*a*E(m)); #tarkin
- println("Numeerinen integrointi: ",4*a*quadgk(x->sqrt(1-m*sin(x)^2),0,pi/2)[1]);
- println("Ramanujan approximaatio: ",ramanujan(a,b));
- end
- function ellipsinkaari(a,b,T0,T1)
- # kaaren pituus T0->T1
- # T ei ole keskipisteestä laskettu kulma
- # vaan ellipsin pisteen (a*sin(t),b*cos(t)) kulma t
- # T=0 itä, T=pi/2 pohjoinen,T=pi länsi,T=3pi/2 etelä
- m =1-b^2/a^2
- return a*E(T1-pi/2,m)-a*E(T0-pi/2,m)
- end
- function find_ellipseb(a,piiri)
- # etsitään pieni puoliakseli
- # kun piiri ja iso puoliakseli a tunnetaan
- f(x) = 4*a*E(1-x^2/a^2)-piiri
- b = find_zero(f,5)
- return b
- end
- function ellipsinala(a,b)
- return pi*a*b
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement