1

楕円積分を用いた楕円弧長の計算 その1

1342
0
  1. はじめに
     楕円の周長が第2種完全楕円積分で求められる事や、楕円弧長が第2種不完全楕円積分で表される事に言及しているサイトは良く見掛けるが、楕円弧長については、多くが具体的な算出法を示していなかったり、著しく不完全な記述に終わっている。
     正しく定式化するのに難解な議論は必要ないので、ここで整理しておく。なお、今回は弧の範囲を第Ⅰ象限に限定し、次回以降、楕円の右半分、楕円全体と範囲を広げて行く。

  2. 第2種楕円積分
    第2種楕円積分は、次の積分で定義される。

第2種不完全楕円積分(基本形)

E(φ,k)=0φ1k2sin2ϕdϕ
0φπ/2

第2種完全楕円積分は、第2種不完全楕円積分に於いてφ=π/2と置いた式で定義される。

第2種完全楕円積分

E(k)=0π/21k2sin2ϕdϕ

関数名が同じ事に違和感を覚えるかも知れないが、変数の数で区別する事が慣習となっているので、本稿でもそれに従う。

  1. 楕円
    中心が座標の原点に一致し、水平な楕円は、次の式で表される。
    x2a2+y2b2=1
    これを、楕円の標準形と言う。
    0<b<aの時、aを長半径、bを短半径と呼ぶ。
    また、楕円の重要な特徴量として離心率eがあり、次の式で求められる。
    e={1(b/a)2(0<ba)1(a/b)2(0<ab)
    また楕円の表示には、次の媒介変数表示も良く用いられる。
       x=acost, y=bsint, 0t2π
    この場合、t=0で点(a,0)から始まり、点(0,b)を経て、反時計方向に一周して、点(a,0)に戻る。
    楕円上の点(x,y)と原点を結ぶ線分は動径と呼ばれる。
    円の媒介変数表示
    x=rcost, y=rsint
    では、tは動径がx軸となす角θと一致するが、楕円では一致せず、(第I及び第IV象限では)次のような関係になる。
    tanθ=y/x=(b/a)tant
    さらに、媒介変数表示は次のようにする事もできる。
    x=asint, y=bcost, 0t2π
    この場合、t=0で点(0,b)から始まり、点(a,0)を経て、時計方向に一周して、点(0,b)に戻る。tθの関係は次の通り。
    tanθ=y/x=(b/a)/tant
    最初の媒介変数表示を第1の形式、後の方を第2の形式と呼ぶ事にする。

  2. 楕円の弧長
    媒介変数表示
    x=x(t), y=y(t)
    で表される関数のt=t1からt=t2までの弧長L
    L=t1t2(dxdt)2+(dydt)2dt
    で求められる。これより、第1の形式で表された楕円の[0,r]の範囲の弧長L
    L=0r(ddtacost)2+(ddtbsint)2dt
    =0ra2sin2t+b2cos2tdt
    となる。この式は初等関数で表す事はできないが、k=eとした第2種不完全楕円積分で表す事は可能である。しかし、eが複素数にならないようにする為にa,bの大小関係に応じて場合分けが必要になる。
    A. 0<baの場合
    離心率はe=1(b/a)2となる。
    楕円を媒介変数uを用いた第2の形式で表す。そうすると弧長L
    L=0r(dduasinu)2+(ddubcosu)2du
    =0ra2cos2u+b2sin2udu
    =a0rcos2u+(b/a)2sin2udu
    =a0r1sin2u+(b/a)2sin2udu
    =a0r1(1(b/a)2)sin2udu
    =a0r1e2sin2udu
    =aE(r,e)
    で得られる。前述した通りuは動径とy軸との時計方向の角度であるから、aE(r,e)は点(0,b)からu=rで与えられる点までの弧長になっている。[u1,u2]の範囲の弧長は
    L=au1u21e2sin2udu
    =a0u21e2sin2udua0u11e2sin2udu
    =a(E(u2,e)E(u1,e))
    となる。実用上、弧の範囲はθで指定できた方が便利なので、θからuへの変換方法を求めておく。
    0u,θπ/2とすると、
    tanθ=(b/a)/tanuから tanu=(b/a)/tanθ
    よって、
    u=tan1((b/a)/tanθ)
    となる。ただし、θ=0の時u=π/2θ=π/2の時u=0とする。θ1θ2の時u1u2となるよう
    u1=tan1((b/a)/tanθ2),u2=tan1((b/a)/tanθ1)
    と定める。
    B. 0<abの場合
    離心率はe=1(a/b)2となる。
    楕円を媒介変数vを用いた第1の形式で表す。そうすると弧長L
    L=0r(ddvacosv)2+(ddvbsinv)2dv
    =0ra2sin2v+b2cos2vdv
    =b0r(a/b)2sin2v+cos2vdv
    =b0r1e2sin2tdv
    =bE(r,e)
    で得られる。前述した通りvは動径とx軸との反時計方向の角度であるから、bE(r,e)は点(a,0)からv=rで与えられる点までの弧長になっている。[v1,v2]の範囲の弧長は
    L=b(E(v2,e)E(v1,e))
    となる。θからvへの変換方法は
    0v,θπ/2とすると、
    tanθ=(b/a)tanvから tanv=(a/b)tanθ
    よって、
    v=tan1((a/b)tanθ)
    となる。ただし、θ=π/2の時v=π/2とする。
    θ1θ2の時v1v2となるよう
    v1=tan1((a/b)tanθ1),v2=tan1((a/b)tanθ2))
    と定める。
    なお、ケースAでは、媒介変数tを用いた第1の形式でスタートし、途中でt=π/2uと変数変換しても(やや議論の見通しが悪くなるが)全く同じ結論に達する。興味が有れば、確認されたい。

  3. まとめ
    楕円を
    x2a2+y2b2=1
    と表す時、θ=θ1からθ=θ2までの弧長Lは、第2種不完全楕円積分E(φ,k)を用いて、次のように求められる。ただし、θは動径とx軸との間の反時計方向の角度であり
    0θ1θ2π/2
    とする。
    A. 0<baの場合
    L=a(E(u2,e)E(u1,e))
    e=1(b/a)2
    u1=tan1((b/a)/tanθ2)
    u2=tan1((b/a)/tanθ1)
    B. 0<abの場合
    L=b(E(v2,e)E(v1,e))
    e=1(a/b)2
    v1=tan1((a/b)tanθ1)
    v2=tan1((a/b)tanθ2)

投稿日:2022421
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

GonJii
2
1627

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中