楕円の弧長

 投稿者:永野護  投稿日:2010年12月17日(金)14時14分19秒
  この掲示板ではいつもお世話になっています。
楕円を(x^2/a^2)+(y^2/b^2),x=asin(t),y=bcos(t)とするとき、楕円の弧の長さは

弧長=∫ds=∫√(dx^2+dy^2)=4a∫(0~pai/2)√(1-m*sin^2(t)) dt       (m=(a^2-b^2)/a^2 )
ということですが、たとえばa=3,b=2として下記のようなプログラムを実行したとき
答えが
15.8654710051718 となります。

インターネットの別の箇所で楕円の1周=2*pai*b*√((a/b)
という式を見つけたのですがこの式を使うと答えが15.3905979619424 となります。

どちらが間違っているのでしょうか。
DEF   f(x)=sqr(9*(1-(5/9)*(sin(x))^2))
LET b=Pi/2
LET a=0
LET n=100000
LET h=(b-a)/n
for x=0 to b step h
LET s=s+h*(f(x))
next X

print s
print 4*s
END
お暇なときにでも回答お願いできないでしょうか。いつもすいません。よろしくお願いいたします。
 

Re: 楕円の弧長

 投稿者:山中和義  投稿日:2010年12月17日(金)16時36分28秒
  > No.1465[元記事へ]

永野護さんへのお返事です。

> インターネットの別の箇所で楕円の1周=2*pai*b*√((a/b)

誤っていると思います。楕円の周の長さは、√などの初等関数では表せません。


> 答えが 15.8654710051718 となります。

区分求積、台形法では、精度はこのくらいでしょう。
第2種完全楕円積分 Z2(k)=∫[0,π/2]{SQR((1-k^2*SIN(φ)^2)}dφ より
15.8654395892905 となります。
 

楕円の弧長

 投稿者:永野護  投稿日:2010年12月17日(金)17時40分23秒
  いつもお世話になります。山中様、回答ありがとうございました。
お忙しい中、回答いただきましたことに感謝します。
寒い時節ですがお体を大切になさってください。
 

戻る