楕円の1周長

 投稿者:SECOND  投稿日:2010年12月18日(土)00時59分32秒
  ! 楕円の1周長
!-------------
!・・√(1-k^2*sin(θ)^2)・・の形の積分は、たて長の楕円から出てきます。
!また、台形積分の分割数は、64 くらいでも十分です。(17桁まで見ても)
!
!-----------------------
! よこ長、x軸側が長径aの楕円( Normally )
!
!     x= a*cos(θ)        y=b*sin(θ)
!dx/dθ=-a*sin(θ)   dy/dθ=b*cos(θ)
!
!∫√(dx^2+dy^2)=  ∫√{a^2*sin(θ)^2 + b^2*cos(θ)^2} dθ
!               = a∫√{1 -cos(θ)^2 + b^2/a^2*cos(θ)^2} dθ
!               = a∫√{1 -(1- b^2/a^2)*cos(θ)^2} dθ
!
!               = a∫√{1 -k^2*cos(θ)^2} dθ    … 1- b^2/a^2 =(a^2- b^2)/a^2 =(離心率 k)^2
!
!-----------------------
! たて長、y軸側が長径aの楕円( Abnormally )
!
!     x= b*cos(θ)        y=a*sin(θ)
!dx/dθ=-b*sin(θ)   dy/dθ=a*cos(θ)
!
!∫√(dy^2+dx^2)=  ∫√{a^2*cos(θ)^2 + b^2*sin(θ)^2} dθ
!               = a∫√{1 -sin(θ)^2 + b^2/a^2*sin(θ)^2} dθ
!               = a∫√{1 -(1- b^2/a^2)*sin(θ)^2} dθ
!
!               = a∫√{1 -k^2*sin(θ)^2} dθ    … 1- b^2/a^2 =(a^2- b^2)/a^2 =(離心率 k)^2
!
!-----------------------
!OPTION ARITHMETIC RATIONAL
OPTION ARITHMETIC DECIMAL_high
LET a=3                                   !長径
LET b=2                                   !短径
LET k2=1- b^2/a^2                         !k2= (離心率 k)^2
!
LET div=2                                 !分割数の初期値
DO
   LET d=PI/2 /div                        !微分の幅d=(π/2)/分割数
   PRINT "1/4 範囲(π/2) の分割数:";div
   !
   !------- 台形∫--------
   !∫=(f0+f1)/2*⊿+(f1+f2)/2*⊿+ … +(fn-2 + fn-1)/2*⊿+(fn-1 + fn)/2*⊿
   !∫=(f0 /2      + f1         + … + fn-2             + fn-1 + fn /2)*⊿
   !
   !----------------------
   ! たて長、y軸側が長径aの楕円」( Abnormally )
   !----------------------
   LET fn=SQR(1 -k2*SIN(PI/2)^2)           !    fn
   LET sum=(1 +fn)/2                       !(f0+fn)/2
   FOR θ=d TO PI/2-d/2 STEP d
      LET sum=sum+SQR(1 -k2*SIN(θ)^2)     !f1+f2+...+fn-1
   NEXT θ
   LET sum=4*a*sum*d
   PRINT "4a∫√{1-k2*sin(θ)^2}dθ=";
   PRINT USING "###.###############":sum   !たて長、楕円(長径a, 短径b)の1周長
   !
   !----------------------
   ! よこ長、x軸側が長径aの楕円」( Normally )
   !----------------------
   LET f0=SQR(1 -k2*COS(0)^2)              ! f0
   LET sum=(f0 +1)/2                       !(f0+fn)/2
   FOR θ=d TO PI/2-d/2 STEP d
      LET sum=sum+SQR(1 -k2*COS(θ)^2)     !f1+f2+...+fn-1
   NEXT θ
   LET sum=4*a*sum*d
   PRINT "4a∫√{1-k2*cos(θ)^2}dθ=";
   PRINT USING "###.###############":sum   !よこ長、楕円(長径a, 短径b)の1周長
   !
   !---------------------------
   PRINT
   LET div=div*2
LOOP UNTIL 256< div

END
 

楕円の1周長

 投稿者:永野護  投稿日:2010年12月18日(土)13時05分31秒
  SECOND様、詳しい回答ありがとうございました。
 

戻る