代数学では、三角関数を、例えば文字記号sin(x)と書いて済まします。具体的に数値を求める計算は、加減乗除だけを組み合わせた式を別に工夫します。代数式で表す段階は、計算手順の正しさを説明する目的がありますので、これをアルゴリズム(算法:algorithm)と言います。この研究は、実用の時間内で計算ができること、計算値の精度を数学的に保証することが目的です。込み入った理論式が提案される場合、式通りに数学関数をサブプログラムから引用して正直にプログラミングして実行すると、計算精度が実用にならないことも起きます。その原因の多くは、桁落ちにあります。たまたま二つの数値が近接していて、それらの引き算があると、有効数字の桁数が相対的に小さくなって、実用的な計算精度が得られないことが起こります。これは、理論式(アルゴリズム)を検証しても分かりません。典型的な例は逆マトリックスの計算と、それを内部的に応用するFEM(有限要素法;finite element method)に見られます。実用的な数値を求めるのは技術ですので、数値計算術として工夫され、アルゴリズムで提案された式とは別の方法を使います。この部分は企業秘密にされることが多く、日本で開発しても信用されず、残念ながら、海外のソフトに依存することが多いのが実情です。 |