2020年6月20日土曜日

楕円の周長を求める積分の近似値

 結局のところここまで調べてみたあげく、楕円の弧の長さ(弧長)は積分で表せても、初等関数では計算できないことが知られていました。
 初等関数とは、「代数関数、指数関数、対数関数、三角関数、逆三角関数、およびこれらの関数の有限回の合成で得られる、実数または複素数変数の関数」をいうと『岩波数学辞典』に説明されています。
 なお、楕円の周長の近似値計算式が、『高等数学公式便覧』(p.24, p.120) に紹介されていましたので、全周の長さのおおよそはそれで計算できます。

 ⛞ 楕円の弧の長さは初等関数では計算できない
  ► つまり楕円では、円周を求めたときのようには不定積分を求められないので、関数 F ´(x) を満たす原始関数 F (x) が初等関数で表せないために、簡単には計算できないのです。
 ⛞ ルート記号の計算について
  まずは蛇足ながら、根号 (radical sign) についての規則を確認しておきましょう。
▣ 平方根 (square root) を示す記号 を使って、 a と表して、ルート a と読み、この値は a素数のときには無理数となります。また、a, b が正の数のときには、次の 3 つの式が成り立ちます。
a b  = √ ab 
 
 
 √ a     =     a  
   
 √ b    b 
a 2 b  = a b 
 ⛞ 楕円の周長を求める楕円積分
  積分計算の前に、離心率 e の値などについて、再確認しておきます。
  ► 標準的な楕円の方程式は
 x 2   +   y 2    = 1  ( c 2 = a 2b 2 )
   
 a 2   b 2 
なので、
e =    c    =    √ a 2b 2 
   
 a   a 
であり、さらに、
●  y 2 = b 2 (1 - x 2a 2 )
  = b 2 ( a 2a 2x 2a 2 ) = b 2a 2 ( a 2 x 2 )
y =    b   √ a 2x 2 
 
 a 
∴  a 2 y =    a 2 b   √ a 2x 2  = ab a 2x 2 
 
 a 
が導かれます。次に、楕円の方程式の両辺を x で微分して、導関数の値を計算します。
 2 x   +   2 y   ∙   dy    = 0
     
 a 2   b 2   dx 
⇒    2 y   ∙  dy   = -   2 x 
     
 b 2   dx   a 2 
⇒   dy   = -   2 x   ∙   b 2    = -   b 2 x 
       
 dx   a 2   2 y   a 2 y 
y´ =   dy   = -   b 2 x 
   
 dx   ab a 2x 2  
  = -   b   ∙  x
   
 a   √ a 2x 2  

  この導関数を前回確認した公式に代入して、演算を試みます。
L = 4  a  √ 1 + ( f ´(x)) 2  dx
 
0
 
 
 
 
= 4  a    a 2e 2 x 2   dx
 
 
0  a 2x 2 
 【 平方根号 の中の計算式
1 + ( f ´(x)) 2 = 1 +   b 2   ∙  x 2
   
 a 2   a 2x 2 
=    a 2 ( a 2x 2 ) + b 2 x 2    =    a 4a 2 x 2 b 2 x 2 
   
 a 2 ( a 2x 2  a 2 ( a 2x 2
=    a 4x 2 ( a 2b 2   =    a 4a 2 x 2 ( a 2b 2 )  ∕  a 2 
   
 a 2 ( a 2x 2  a 2 ( a 2x 2
=    a 4a 2 x 2 e 2    =    a 2 ( a 2e 2 x 2   =    a 2e 2 x 2 
     
 a 2 ( a 2x 2  a 2 ( a 2x 2  a 2x 2 

  ► ここで、x = at とおくと、dx = adt となり、
 また、dt での上端は、aa = 1 に変更されます。
L = 4 
 
a
 
   dx
   a 2e 2 x 2 
 
 
0  a 2x 2 
  = 4 
 
a
 
   d (at)
   a 2e 2 (at) 2 
 
 
0  a 2 - (at) 2 
  = 4 
 
1  a
 
   dt
   a 2 (1 - e 2 t 2
 
 
0  a 2 (1 - t 2
  = 4a 
 
1
 
   dt
   1 - e 2 t 2  
 
 
0  1 - t 2  
  = 4a 
 
1
 
   dt
   (1 - e 2 t 2 ) 2 
 
 
0  (1 - t 2 ) (1 - e 2 t 2
  = 4a 
 
1
 
 dt
 (1 - e 2 t 2
 
 
0  √ (1 - t 2 ) (1 - e 2 t 2  
  = 4a 
 
1  (1 - e 2 t 2
 
 dt
1
 
 
0  √ (1 - t 2 ) (1 - e 2 t 2  
 ▣ 平方根号の中に 3 次式、4 次式の入っている式の積分を楕円積分といって、値は u で表されます。
 u =  
 
x
 
dt
 
 
0  √ (1 - t 2 ) (1 - k 2 t 2  
 ⛞ 楕円積分の別解
  円では、y ≧ 0 となる半円の長さを計算し、2 倍しました。
 ▣  sin π = 0
 ▣  cos π = - 1
L  = 2 
 
π
 √ (-r sinθ ) 2 + ( r cosθ ) 2 
 
0
  = 2 
 
π
 r dθ
 
0
  = 2 [ r θ ] π   =  2 ( r π - 0)  =  2 πr
0
  楕円でも同様に、y ≧ 0 となる、周長の半分の長さを計算して、2 倍してみます。
 ▣  x = a cosθ
 ▣  y = b sinθ
 ▣  sin2θ + cos2θ = 1
L  = 2 
 
π
 √ (-a sinθ ) 2 + ( b cosθ ) 2 
 
0

(-a sinθ ) 2 + ( b cosθ ) 2 = a 2 sin2θb 2 cos2θ
 = a 2 (1 - cos2θ ) + b 2 cos2θ = a 2a 2 cos2θb 2 cos2θ
 = a 2 - ( a 2b 2 ) cos2θ = a 2a 2 cos2θ ( a 2b 2 )  ∕  a 2
 = a 2a 2 e 2 cos2θ = a 2 (1 - e 2 cos2θ )

L  = 2 
 
π
 √ a 2 (1 - e 2 cos2θ
 
0
  = 2 a 
 
π
 √ 1 - e 2 cos2θ 
 
0
  = 4 a 
 
π/2
 √ 1 - e 2 cos2θ 
 
0
  = 4 
 
     dx
a  1 + (  dy  )
 
     
0  dx 
  = 4 
 
 dx
a  √ (dx) 2 + (dy) 2 
 
 
0 dx
◈ たとえば、e = 0 のとき、
L  = 2a 
 
π
 √ 1 - e 2 cos2θ 
 
0
の計算式では、次のように
L  = 2a 
 
π
 √ 1   = 2a 
 
π
  = 2aπ
   
0
0
と計算可能で、これは半径 a の円周の長さとなります。
 ⛞ 楕円積分の公式・楕円の周長と近似式
 ◯ 次に参照する資料で例示されるように、標準の楕円積分では、離心率 e ではなく、k が使われます。
『高等数学公式便覧』
 河村哲也/監訳・井元薫/訳
〔2013年06月15日 朝倉書店/発行〕
 (p.120)
8.5 楕円積分
   楕円積分第 1
F (k, φ)  =  
 
φ
 
 
0  √ 1 - k 2 sin2 ψ  
 
 
  =  
 
sinφ dt
 
 
0    √ 1 - t 2  1 - k 2 t 2  
 
 
   楕円積分第 2
E (k, φ)  =  
 
φ  1 - k 2 sin2 ψ 
 
0   
 
 
sinφ
 
   dt
=  
 
 1 - k 2 t 2 
 
 
0     1 - t 2 
 
 
   楕円積分第 3
Π (h, k, φ)  =  
 
φ
 
 
0  (1 + h sin2 ψ) √ 1 - k 2 sin2 ψ  
 
 
 
例:楕円周( k =楕円の離心率のときの楕円積分第 2 種):
 離心率 k = sin α = √ a2 b2  a = ε 24 ページを見よ)のときの
 楕円     x 2   +   y 2    = 1
   
 a 2   b 2 
は周長  U  =  4 a 
 
π ∕ 2  1 - k 2 sin2 ψ  dψ
 
0   
  = 4aE (k  π   )  を持つ。
 
2
 (p.24)
 楕円
周囲の長さ  U  ≈  π (  ab   - √ ab  ) ,
 
2
U  =  4a 
 
π/2  1 - ε 2 sin2 t  dt  =  4aE ( ε  π   )
 
 
0   2
 
 
 ⛞ 楕円の周長計算
 楕円の周長の具体的な計算は、『高等数学公式便覧』(p.120) に簡潔に記述されていますので、改行を多用して、その部分も引用しておきましょう。
楕円    x 2   +   y 2    =     x 2   + y 2 = 1
     
 2 2   1 2  4
  に、対して特に
●  a  =  2
●  b  =  1
●  k  =  e  =  √ a 2b 2 a
  =  sinα  =    √ 3  
 
2
●  α  =  60 °
●  k 2  =  3 ∕ 4
U  =  8
 
π ∕ 2  1 - (3 ∕ 4) sin2 ψ  dψ
 
0   
  =  8E ( √ 3 ∕ 2 , π ∕ 2 )  =  8E ( sin60° , 90° )
●  U  =  8 ∙ 1.2111  =  9.6888
U  ≈  π (  ab   - √ ab  )
 
2
  =  π (  2 + 1   - √ 2  )
 
2
●  U  ≈  9.6943
 と、計算がなされています。
 ここまで見てきた曲線の長さ(弧長)の方程式では、楕円の一部を取り出した《楕円の弧長》の計算は難しいけれども、その全周である《楕円の周長》の近似値ならば、比較的容易に計算できることがわかりました。
 近似値計算の結果とともに、図示しておきましょう。
a =   b =    U ≈ 
 ⛞ 楕円の面積を微分してみる
  最後に試行として、楕円の面積を微分してみます。
◎ 楕円の面積を  ab  で微分します。
S = ab π  において、
T = t 2 π  へ変換するために、
t = √ ab   と、おけば
T ´ = 2 t π = 2 √ ab  π  =  

 今回も同様に JavaScript によるプログラムを、このページ内に同梱しています。
―― また楕円の方程式と積分の図などについて、コピペしてそのまま使える、JavaScript の見本をテキスト化して掲載したページを、計算方法の紹介などとともに、以下のサイトで公開しています。

JavaScript : 円と楕円の弧の方程式
http://theendoftakechan.web.fc2.com/eII/hitsuge/arcus/ellipse.html

2020年6月16日火曜日

曲線の弧の長さを計算する積分

 曲線の弧の長さは〈弧長〉と呼称されるようです。
 この長さを求めるための積分の方程式があります。
 このたびは、可能な範囲で、その計算式について確認しておきましょう。

◯ axb もしくは a < x < b を満たす x の集合について
数直線上の線分で表される範囲で、
両端の点を含むものを
 閉区間 (closed interval) といって [ a, b ] で表し、
両端の点を含まないものを
 開区間 (open interval) といって ( a, b ) で表します。
◎ 曲線 y = f (x) の長さは微小区間 [ x, x+dx ] に挟まれた曲線の長さの総和と考えられます。
L =  
 
     dx
b  1 + (  dy  )
 
     
a  dx 
   =  
 
b
 √ 1 + ( f ´(x)) 2  dx
 
a
【証明】
 上の図において、まず曲線 AB の長さ s は、[ a, b ] が非常に短い区間 (interval) であるなら、線分 AB の長さによって近似されると考えられます。
s ≒ AB = √ (⊿x) 2 + (⊿y) 2 
 そうして曲線全体は、非常に短い線分を次々に結んだ折れ線の長さで近似できると、考えられるのです。
 曲線の長さは、そのような折れ線の長さの極限と考えられます。
 いま求めようとする曲線の長さ s を、折れ線の長さの極限で計算すると、次のようになります。
●  ds = √ (dx) 2 + (dy) 2 
 この計算式を、積分できる式にするため、dx をルート記号の外に出します。
ds = √ (dx) 2 + (dy) 2 
  = √ (dx) 2 {1 + (dy) 2 ∕ (dx) 2
 =        dx = √ 1 + ( f ´(x)) 2  dx
 1 + (  dy  )
     
 dx 
 したがって、曲線 y = f (x) (axb) の長さ s は、次の式で求められます。
s  =   
 
b
 √ 1 + ( f ´(x)) 2  dx
 
a
 ▣ 同様の手順で、s L に変更すれば次の式が成り立ちます。
L  =   
 
b
 √ 1 + ( f ´(x)) 2  dx
 
a
  区間 [ a, b ]積分区間といい、また下端 a と上端 b の大小関係は
a < b ,  a = b ,  a > b
 の、いずれでもよいことになっています。
 ⛞ 媒介変数表示された関数の曲線の長さの公式
▶ 媒介変数表示の曲線[ x = f (t) , y = g (t) (atb) ]の長さ L は、次の式で求められます。
 
 
 
L =  b   (  dx  ) 2  +(  dy  ) 2   dt
 
       
a  dt   dt 
  =  b  √ ( f ´(t)) 2 + ( g´(t)) 2  dt
 
a
【公式の検証方法】
 媒介変数 t の変化量を t として、その間の、曲線の平均変化量は次のように求められました。
 ⊿x    =     f (t + ⊿t) -f (t
   
 ⊿t   t
 ⊿y    =     g (t + ⊿t) -f (t
   
 ⊿t   t
 ◈ 考え方として、この曲線の変化量は次のように計算されるのでした。
▶  ⊿x = f (t + ⊿t) -f (t)
▶  ⊿y = g (t + ⊿t) -g (t)
 この変化量がわずかであるなら、その間の曲線の長さs は、次のように近似されると考えられます。
s ≒ √ (⊿x) 2 + (⊿y) 2 
    = √ (⊿t) 2 { (⊿x) 2 ∕ (⊿t) 2 + (⊿y) 2 ∕ (⊿t) 2
 
 
 
s ≒     (  ⊿x  ) 2  +(  ⊿y  ) 2   ⊿t
     
 ⊿t   ⊿t 
 ◈ そして極限の値 ds が、曲線の長さの増分として考えられるのです。
 dx    = f ´(t)
 
 dt  
 dy    = g´(t)
 
 dt  
なので、
●  dx = f ´(t) dt
●  dy = g´(t) dt
であるから、極限の値 ds の計算式は、次のようになります。
●  ds = √ (dx) 2 + (dy) 2 
      = √ { f ´(t) dt } 2 + { g´(t) dt } 2 
      = √ { f ´(t) } 2 + { g´(t) } 2  dt
 ▣ この極限の値の総和が、曲線の長さと考えられるわけです。
 
 
 
L =  b   (  dx  ) 2  + (  dy  ) 2   dt
 
       
a  dt   dt 
  =  b  √ ( f ´(t)) 2 + ( g´(t)) 2  dt
 
a
 ⛞ 円周の長さの計算
L  =   
 
b
 √ ( f ´(t)) 2 + ( g´(t)) 2  dt
 
a
    の公式を使って、計算します。
●  x 2y 2 = r 2
 ▣  x = f ( θ ) = r cosθ
 ▣  y = g ( θ ) = r sinθ
 ▣  x´ = ( r cosθ )´ = -r sinθ
 ▣  y´ = ( r sinθ )´ = r cosθ
  y ≧ 0 となる、半円の長さを計算して、2 倍します。
  ▣  sin π = 0
  ▣  cos π = - 1
L  = 2 
 
π
 √ (-r sinθ ) 2 + ( r cosθ ) 2 
 
0
  = 2 
 
π
 r dθ
 
0
  = 2 [ r θ ] π   = 2 ( r π - 0) = 2 πr
0

 今回も同様に JavaScript によるプログラムを、このページ内に同梱しています。

2020年6月11日木曜日

円と楕円の面積・積分の平均値の定理

 いよいよもって、楕円の面積を求めるにあたり、まず積分で円の面積を計算しておきます。
 その前に《積分の平均値の定理》について確認しておきましょう。

 ⛞ 平均値の定理 (mean value theorem)
   関数 f (x) が、axb で連続、a < x < b で微分可能であるならば、
 f (b) - f (a   = f ´(c)   ( a < c < b )
ba
 を満たす実数 c が、少なくともひとつは存在します。
 これを平均値の定理といいます。
◈ 平均値の定理は、( a , f (a) ) , ( b , f (b) ) を結ぶ弦に平行な接線が存在することを示しています。
下の図は、
f (x) =   1  x 2
 10 
のグラフです。接線の傾きは
f ´(x) =   1  x
 5 
なので、傾きの 5 倍の値が、 x の値となって、
その x の値が、 c の値になるわけです。
 a =   b =   c = 


 ⛞ 積分の平均値の定理
► f (x) の原始関数を F (x) とすれば、
F ´(b) - F ´(a) = ( ba ) f (c)
となり、
b
 f (x) dx = ( ba ) f (c)
a
となる c が、axb の内部に少なくともひとつは存在するという定理になります。
f (x) =   1  x 2
 10 
として積分すると、
F (x) =   1  x 3C
 30 
となるので、したがって、
b
 f (x) dx =   1  b 3 -  1  a 3
a
 30   30 
       = ( ba 1  c 2
 10 
なので、
c 2 =   10  ∙   b 3a 3 
 ba  30
∴  c 2 =     b 3a 3 
 3 ( ba
 ⛞ 置換積分法 (integration by substitution) で求める円の面積
   置換積分法というのは、関数 f (x) を積分するのに、
▣  x = g (t)
というように、新しい変数 t に関する積分に変形して計算する方法です。
置換積分法の公式 : ただし x = g (t)
  ► 関数 f (x)f ( g (t) ) と置き換えたとき、 dxg ´(t) dt と置き換えらます。
f (x) dx =    f ( g (t) ) g ´(t) dt
◎ これは合成関数の微分法、
d  f ( g (x) ) = f ´( g (x) ) g ´(x)
 dx 
に対応するものです。
◈ さて、中心が原点 O (0, 0) で、半径が a円の方程式
x 2y 2 = a 2
と表され、この円周上の点 P (x, y) の座標は三角関数で、
x = a cos θ
y = a sin θ
となることをすでに見てきました。
この円の方程式をまず、y について解くと、
y = ± √ a 2x 2 
となるのですが、第一象限では x y の座標がともに 0 以上なので、
y = √ a 2x 2 
つまり f (x) ≧ 0 が成り立ち、そして x の値は、 0 ≦ xa の間で推移します。
  第一象限の弧と x, y 軸で囲まれた面積を 4 倍すれば、全体の面積 S が算出されるわけです。
S = 4
a
 y dx = 4 
a
 f (x) dx
0
0
   = 4 
a
 a 2x 2  dx
0

◎ y  =  a sinθ です。
◎ x  =  a cosθ なので、この両辺を θ で微分すると、
  dx     =  -a sinθ
となって、これを、
   dx = -a sinθ dθ
と考えます。したがって、
●  ydx = a sinθ  ∙ (-a sinθ dθ )
     = -a 2 sin 2 θ dθ
を、積分の方程式にあてはめて計算することになります。

◎ x  =  0 のとき、θ  =  π ∕ 2
◎ x  =  a のとき、θ  =  0
S = 4
a
 y dx = 4 
0
a 2 sin 2 θ dθ
0
π/2
   = 4 a 2 
π/2
 sin 2 θ dθ
0
 ● また、三角関数の半角の公式として
sin 2 θ =    1 - cos 2θ 
2
cos 2 θ =    1 + cos 2θ 
2
tan 2 θ =    1 - cos 2θ 
 1 + cos 2θ 
が、知られています。
S = 4 a 2 
π/2
 sin 2 θ dθ
0
   = a 2 
π/2
(2 - 2 ∙ cos 2θ )
0
◎ 微分して cos θ になるのは、sin θ
◎ sin π  =  0
S = a 2 [ 2θ - sin 2θ ] π/2
0
    = a 2 { ( π - sin π ) - 0 } = π a 2
∴  S = π a 2
 ⛞ 置換積分法で求める楕円の面積
 x 2   +   y 2    = 1
 a 2   b 2 
この方程式の両辺に a 2 b 2 を掛けて、y について解くと、
●  b 2 x 2a 2 y 2 = a 2 b 2
●  y 2 = ( a 2 b 2b 2 x 2 )  ∕  a 2
      = b 2 ( a 2x 2 )  ∕  a 2
●  y = ±   b   √ a 2x 2 
 a 
なので、第一象限の面積を 4 倍する計算式は次の通り。
4
a
 y dx = 4 
a
 f (x) dx
0
0
     = 4 ( b  ∕  a
a
 a 2x 2  dx
0
  このとき、
a
 a 2x 2  dx = π a 2  ∕  4
0
であるから、楕円の面積を S とすれば、
S =    4 b   ∙   π a 2    = π ab
a 4
∴  S = π ab

 今回も JavaScript によるプログラムを、このページ内に同梱しています。