投稿者:永野護
投稿日: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
お暇なときにでも回答お願いできないでしょうか。いつもすいません。よろしくお願いいたします。
|
|
|
投稿者:山中和義
投稿日: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秒
|
|
|
いつもお世話になります。山中様、回答ありがとうございました。
お忙しい中、回答いただきましたことに感謝します。
寒い時節ですがお体を大切になさってください。
|
|
|
戻る