ホーム ] PC技術/システム技術 ] VB.NETプログラミング ] なるほどナレッジ ] インフォメーション ]

上へ
基本事項
ソフトウェア構成
UltraLong構造体
UltraMath
FFT
プログラミング例
UltraPrecisionユーティリティ
FFT試験
レガシ演算速度
FFT演算速度
数値/浮動小数点/精度
定数システム
レガシ四則算
FFT乗算
ニュートン法
逆数法
数学関数
時間評価システム
限界値自動決定システム
数学定数算出

多倍長演算ライブラリ(UltraPrecision)

数学関数

最終更新日:2006/06/21

●概要

 ここでは、UltraMathで定義されている数学関数をどのように求めているかを解説する。

●原理

 初等関数は、関数直接で値を求められないことが殆どで、一般には、ニュートン法などの漸化式、または、級数展開でもとめる。ここでも、関数により最適な方法で求めている。また、他の関数から求められる場合もある。

●精度と速度

 互いに矛盾する性質であるが、指定精度をなるべく高速に求める工夫が必要となる。精度は高ければ良いものではなく、必要な精度が的確に求められることが重要となる。

 工夫のポイントは、

  • 初期値の精度
  • 求める値の範囲の限定化
  • 級数の場合は、分母分子の比を大きくする方法
  • ラフ値との微少差を補正する方法
  • 漸化式の導入

となる。初期のものと比較して、アルゴリズムがかなり改善でき、より高速化できている。

■数学関数

 ●平方根/立方根

 ニュートン法で求める。高速化のために、その逆数を求めるのが、常套手段。

 ○平方根

 ○立方根

 ●指数関数

 指数部が整数の場合と、実数の場合とで、求め方は全く異なる。

 ○整数指数

 ○実数指数(Exp)

 ○実数指数(一般)

 ●対数関数

 ●三角関数

  ○正弦/余弦

  ○正接

 ●逆三角関数

 ○逆正弦/逆余弦正接

 ○逆正接

 ●双曲線関数

 ○双曲線正弦/余弦

 ○双曲線正接

 ●逆双曲線関数 

 ○逆双曲線正弦

 ○逆双曲線余弦

 ○逆双曲線正接

■評価関数

 ●階乗附属関数

 ●級数評価関数

 ●演算時間評価関数