2010年8月15日日曜日

ガウスレジェンドル法の汎用性(楕円弧長、周長計算)

画像は下記URLより引用
画像の左辺の式の積分計算が不可能な場合(例:楕円関数など)、右辺の数値計算を実行することで積分計算が可能になる。画像ではxi,wi値が10桁しか表示されていないが、14~15
桁の数値が定まれば計算の精度が高くなります。そして、画像の題意の5point_ruleですが、これもポイント数を多くしてゆくと計算精度が高くなります。Excel20003のVBA計算では1024ポイントまで14桁の数値演算精度が、不完全第二種楕円積分計算の場合、可能になるようです。長半径100、短半径0.1の楕円周長計算が15桁の精度で求まってしまうほどです。参考に長半径100、短半径99.9の楕周長の15桁精度での計算には1024ポイント程度が必要になるようです。2048ポイントにすると逆にExcel2003の内部計算誤差が大きくなって精度は逆に悪くなります。ExcelVBA(Excel2003)
の場合、1024個以上のポイント数でもxi,wi値は15桁の精度を保っています。問題は被積分関数の複雑さによって精度が左右されるところに問題があります。それでも、第2種不完全楕円積分の場合、1024個で積分値は14桁の精度を保っていた事実に注意するべきでしょう。上記のように極端に
真円に近い楕円、極端に扁平な楕円の弧長計算でなければ15桁の精度は保たれています。これがC++などの言語でコードを組むと10桁レベルの精度しか保ち得ないそうです。ExcelVBAの威力でしょうね。
このxi,wi値を求める計算コード(ExcelVBA)は下記URLに掲載されています。
http://homepage1.nifty.com/gfk/Gauss_Legendre.htm 有限会社 ゴットフット企画
ここの情報を利用して当方で作成したxi,wi値を求めるソフトは下記URLを参照されてください。(コードは公開してあります。)
ちなみに楕円弧長計算(不完全第二種楕円積分計算にも対応)ソフト(自作)は下記URL参照。(コードは非公開。)
ここの紹介ソフトにもxi,wi値を求めるソフトが含まれています。

0 件のコメント: