楕円弧の長さ(8) - まとめ -

楕円弧の長さは級数解や台形公式による数値積分によっても計算できますが 処理速度を考えると ガウスルジャンドルあるいは春日屋の方法が適しています。


楕円弧の長さは

で計算できます。

 

 

楕円弧の長さは 楕円の長径×第2種楕円積分 で与えられることがわかります。第2種楕円積分は楕円弧の円周率πのようなものだと考えれば受け入れやすいと思います。
wikipedia 楕円積分によれば、ルジャンドル標準形の楕円積分になります。数式処理ソフト maxima の組込関数はこの形式が採用されています。

※参考文献
  ○楕円弧の長さの計算式は、応用数学 第4巻 建築構造講座 コロナ社
  ○Gaussの求積法は、解析概論[改訂第三版] 岩波書店
  ○Legendreの多項式は、自然科学者のための数学概論[増訂版] 岩波書店
  ○平均値法は、次元解析・最小2乗法と実験式 応用数学講座 第5巻 コロナ社  本間 仁・春日屋伸昌 共著


今回は 計算結果のまとめ です。図もプログラムもありません。つまらないと思います。話題が終わらないので書いています。


例.1
a = 1.0、b = 0.5、w = b / a
s = a * E(φ, 1-w^2),  φ=90°

4 真値
s = 1.2110560275684596
3 級数解   n=100
s = 1.2110560275684594
5 台形積分 n=10000
s = 1.2110560275684925
6 シンプソン積分 n=100
s = 1.2110560275684599
7 ガウスルジャンドルの方法 n=30
s = 1.21105602756846
  ガウスルジャンドルの方法 n=150
s = 1.2110560275684599


例.2
a  = 1.0、b = 0.5、w = b / a
s  = a * E(φ, 1-w^2),  φ=90°
s1 = 2 * s - s3
s2 = a * E(φ2, 1-w^2),  φ2=30°
s3 = a * E(φ3, 1-w^2),  φ3=60°

4 真値
s1 + s2 = 2.00981083328632
3 級数解   n=100
s1 + s2 = 2.009810833286319
5 台形積分 n=10000
s1 + s2 = 2.00981083328632
6 シンプソン積分 n=100
s1 + s2 = 2.0098108332764375
7 ガウスルジャンドルの方法 n=30
s1 + s2 = 2.0098108332863207
  ガウスルジャンドルの方法 n=150
s1 + s2 = 2.0098108332863207


例.3
a  = 1.0、b = 0.1、w = b / a
s  = a * E(φ, 1-w^2),  φ=90°
s1 = 2 * s - s3
s2 = a * E(φ2, 1-w^2),  φ2=30°
s3 = a * E(φ3, 1-w^2),  φ3=60°

4 真値
s1 + s2 = 1.6639611483050505
3 級数解   n=100
s1 + s2 = 1.664690368330484
5 台形積分 n=10000
s1 + s2 = 1.6639611489642714
6 シンプソン積分 n=100
s1 + s2 = 1.6639611483000623
7 ガウスルジャンドルの方法 n=30
s1 + s2 = 1.6639611478848642
  ガウスルジャンドルの方法 n=150
s1 + s2 = 1.66396114830505


例.4
a  = 1.0、b = 0.01、w = b / a
s  = a * E(φ, 1-w^2),  φ=90°
s1 = 2 * s - s3
s2 = a * E(φ2, 1-w^2),  φ2=30°
s3 = a * E(φ3, 1-w^2),  φ3=60°

4 真値
s1 + s2 = 1.6345036805259558
3 級数解   n=100
s1 + s2 = 1.6392334470603878
  級数解   n=10000
s1 + s2 = 1.6639611483050631
5 台形積分 n=10000
s1 + s2 = 1.634503681203089
6 シンプソン積分 n=100
s1 + s2 = 1.6345040888479074
7 ガウスルジャンドルの方法 n=30
s1 + s2 = 1.6345036636103563
  ガウスルジャンドルの方法 n=150
s1 + s2 = 1.6345036805259552


例.5
a  = 1.0、b = 0.9、w = b / a
s  = a * E(φ, 1-w^2),  φ=90°
s1 = 2 * s - s3
s2 = a * E(φ2, 1-w^2),  φ2=30°
s3 = a * E(φ3, 1-w^2),  φ3=60°

4 真値
s1 + s2 = 2.4885322906585077
3 級数解   n=100
s1 + s2 = 2.4885322906585072
5 台形積分 n=10000
s1 + s2 = 2.4885322907204577
6 シンプソン積分 n=100
s1 + s2 = 2.488532290656993
7 ガウスルジャンドルの方法 n=30
s1 + s2 = 2.4885322906585086
  ガウスルジャンドルの方法 n=150
s1 + s2 = 2.4885322906585077


ガウスルジャンドルの方法は対称性を利用すれば 積分点の半分のループで済むため n=150 は n=75 に相当します。上記の例.1~5 (w = a / b を 0.01 ~ 1.0)で 有効桁数 15 を返したのは ガウスルジャンドルの方法 で 積分点 n=150 としたときだけでした。
級数解は w = 0.1, 0.01 で誤差が大きくなり 項数 n=10000 としても 有効桁数 15 を返すことはできませんでした。台形積分とシンプソン積分は 上記の例.1~5 (w = a / b を 0.01 ~ 1.0)で 有効桁数 6 を返しました。

級数解は 円弧が直線に近くなるあたりの計算に問題がありそうです。実際には CADで a /b が 0.01 の楕円弧を描いても直線にしか見えないか あるいは 描けないかのどちらかです。

やはり 計算法の特性を踏まえて利用する方法を決めることが大切なようです。

 


今回で 楕円弧の長さ は終わりです。またお会いいたしましょう。それでも、春日屋の方法が気になります。