上図は当方での検証結果です。当方のガウスレジャンドル法によるソフトでは14桁目の4捨5入値までが精度許容範囲でした。精密な楕円周長の計算には簡略式はどの例でも使えないことが判明しただけでも収穫があったと思います。
画像は楕円の周長を求める式(概略値)を並べてみました。
最初の式は第2種楕円関数を展開した式です。5次まで記載していますが、楕円率が大きいとどこまで展開しても収束が緩やかになってしまい、精度的にはちょっと?です。しかし、楕円率が低い程、高い精度を持ちます。2番目の式は現在で最も高い精度の値を算出する式ということです。この式ではどんな楕円形状であっても、最大誤差は0.3619%(e=0.979811の時)を超えることはないといわれています(a=100.b=20の時はe=0.979796)。3番目の式は伝統的に高精度の概略式として利用されてきた式です。意外と楕円率が低い場合、高い精度を算出します。国内のURLにはこの式よりさらに粗い値を算出している式を掲載しているのを見かけます。画像はExcelシートで作成しました。(私、まだ精度の検証はしていません。)もう一つですが、エクセルで画像のような数式表示が可能なのですが、どのようにすれば、きちんと画像のように数式の記述が可能かはまだわかりません。
追記;楕円(部分を含む)周長を求めるソフトを下記URLにて無償公開しています。
http://m-sudo.blogspot.jp/2012/07/blog-post_12.html
(よほど真円に近い楕円形状でなければ小数点以下10桁までの高精度演算結果を提供します。)
追記:下記のようなデータもあります。
出典:http://www.engineersedge.com/area_properties/ellipse.htm
追記:楕円周長展開式の精度
0 件のコメント:
コメントを投稿