数値計算
 numerical computation



 数値計算とは, 方程式など数学的に定式化された問題を数値的に処理するための技術の総称である(なお, 数値的にではなく, 記号的に処理する技術もあり, 数式処理もしくは記号処理と呼ばれている).
 問題を数値的に処理すると述べたが, 通常コンピュータを使うことになる.理論上, 無限けたの実数もコンピュータ上では当然有限けたの数として扱わなければならない.ここにコンピュータ内部における数の表現の問題が起こる.現在は浮動小数点数で表現するのが一般的である.このとき, 無限けたの実数を有限けたで表現するのであるから, 当然, 誤差(丸め誤差と呼ばれる)が生じる.この丸め誤差の存在が数値計算アルゴリズムの振舞いを複雑なものにしている元凶である.
 しかし, このような丸め誤差を厳密に評価する数値計算技術, いわゆる区間演算も実用になりつつある.そこでは, 一つの実数に一つの有限けたの数を対応させるのではなく, それを含む区間(区間の端点は有限けたの数である)を対応させ, 演算も区間の演算に拡張し, 数値計算全体を区間の演算で行う.最近では, この手法に基づき, 有限次元の方程式や微分方程式の解を, 存在, 一意性, そして存在領域の保証付きで求められるようになりつつある.このような数値計算法は総称して精度保証付き数値計算法と呼ばれている.
 数値計算はコンピュータの発達と共に急成長した分野であり, 現在, 以下のようなコア技術がほぼ確立している(精度保証付き数値計算法関連の技術はまだ確立したとは言いがたいので含めていない).
 【解析計算】関数近似の技法(最良近似, 最小二乗近似, 補間), 数列の加速法, 微分の近似法(数値微分, 高速自動微分法), 積分の近似法(一次元数値積分法, 多次元数値積分法)フーリエ変換の近似法( FFT )
 【線形計算】行列の分解, 連立一次方程式の数値解法( LU 分解法, 反復法, 共役こう配法系の解法), 固有値問題の数値解法(ヤコビ法, 2分法, べき乗法, QR 法), 特異値分解, 線形最小二乗問題の数値解法
 【有限次元非線形方程式の数値解法】代数方程式の数値解法, 非線形方程式の数値解法
 【無限次元方程式の数値解法】常微分方程式の初期値問題の数値解法, 常微分方程式の境界値問題の数値解法, 偏微分方程式の数値解法(有限差分法, 有限要素法, 境界要素法)
 【極値計算(連続的最適化法)】線形計画法, 非線形計画法, 内点法
 (http://gams.nist.gov/, http://www.netlib.org/などから必要なソフトを手に入れることもできる)
 もちろん, 数値計算は現在も発展中であり, 先に述べた精度保証付き数値計算以外にも, 新しい数値計算技術の開発により, 証券業界で問題となっていた365次元積分が短時間で計算されたとか, 電磁流体力学に現れる25万次元の行列の固有値が計算されたとか, 話題にこと欠かない状態である.
(杉原)




(C)社団法人 電子情報通信学会 1998