数値解析

代数的な方法で解を得ることが不可能な解析学上の問題を数値によって近似的に解く手法に関する学問
バビロニア粘土板 YBC 7289 (紀元前1800-1600年頃)
2の平方根の近似値は60進法で4桁、10進法では約6桁に相当する。1 + 24/60 + 51/602 + 10/603 = 1.41421296... [1]。(Image by Bill Casselman)

数値解析(すうちかいせき、Numerical Analysis)は、数学および物理学の一分野で、代数的な方法で解を得ることが不可能な解析学上の問題を(通常は有限精度の)数値を用いて近似的に解く手法に関する学問である。

史上最初の数学的記述の一つとして、バビロニア粘土板 YBC 7289 を挙げることができる。これは六十進法 (単位矩形の対角線の長さ)を数値的に近似したものである[1]三角形の長さを計算できること(そして、平方根を計算できること)は、特に建築において重要である。例えば、縦横それぞれ2メートルの正方形の壁の対角線 メートルとなる[注釈 1]

数値解析は、このような実用的計算の長い伝統に続くものである。バビロニアの の近似のように、現代の数値解析も厳密な解を求めようとするものではない。何故なら、厳密な解を有限時間で求めることは不可能だからである。その代わりに、数値解析の多くは、ある程度の誤差の範囲内の近似解を求めようとする。

数値解析は自然科学および工学のあらゆる分野に応用がある。計算言語学[2]社会統計学[3]のように、人文科学社会科学でも重要である。

コンピュータ以前は、数値的な手法は数表と、大きな計算になると機械式計算機による補助も近代には使われたものの、紙とペンによる膨大な途中経過をダブルチェックして行われる大変な作業であった。(個々の計算はそろばんにより行われるかもしれないが、そろばんで「膨大な途中経過」は扱えない。計算尺も用途によっては有用だが、有効数字が限られており、それでは間に合わない分野も多い)

コンピュータの発達以降は、従来から見るとその桁外れな計算力により応用分野が大きく広がったとともに、コンピュータ以前からのノウハウに加え、コンピュータによる計算の特性を正しく理解して使うことも重要になった[4]

常微分方程式天体(惑星、恒星、小宇宙)の軌道の計算などに登場する。資産管理には最適化が利用されている。数値線型代数はデータ解析に不可欠である。確率微分方程式マルコフ連鎖は、医学や生物学における生体細胞のシミュレーションの基本である。

以下の記述では「精度」と「正確度」という用語があまり正しく使われていないかもしれない。まず正確度と精度の記事を確認すること。

概要編集

数値解析の目標は、難しい問題への近似解を与える技法の設計と解析である。この考え方を具体化するため、次のような問題と手法を挙げる。

  • 気象予報には、高度な数値計算手法が不可欠である。
  • ロケットの軌道を計算するためには、常微分方程式の高精度な数値解が必要となる。
  • 自動車会社は自動車事故での安全性を向上させるため、衝突のコンピュータシミュレーションを行っている。そのようなシミュレーションには、偏微分方程式の数値計算が不可欠である。
  • ヘッジファンドは様々な数値解析ツールを駆使し、他の市場参加者よりも正確に株やデリバティブの価値を計算しようとする。
  • 航空会社は、チケット価格設定、航空機や乗務員のスケジュール設定、燃料補給のスケジュール設定などに洗練された最適化アルゴリズムを利用する。この分野はオペレーションズ・リサーチとも呼ばれる。
  • 保険会社はアクチュアリー分析に数値解析プログラムを利用する。

歴史編集

数値的手段による解析のための計算は、コンピュータの発明以前から多くの国々で行われていた。線型補間は2000年以上前から行われている。ニュートン法ラグランジュ補間ガウスの消去法オイラー法などの名称からも分かるように、歴史上の偉大な数学者の多くが数値的手段による解析にも注力した[4]

計算を能率化しまた計算の誤りをなるべく減らすために、公式や数表を掲載した印刷物である数表が作られた。例えば関数値を小数点以下16桁まで与える数表を使って、必要に応じて補間を行うことで、関数の精度の良い近似値を得ることができた。この分野での典型的な業績の例として、アブラモビッツ英語版ステガン英語版の編集したNISTの書籍などが挙げられる(通称“Abramowitz and Stegun”。これは1000ページを超えるもので、典型的な公式、計算式、近似式や関数の数表やグラフなどを多数集めている。コンピュータが利用可能になった後には数表そのものは(関数値のルーチンを作る作業者が計算値の検証に使う場合を除いて)あまり役に立つ機会がなくなったが、公式、計算式、近似式が多く集められており、今日でも数値計算分野にとっては有用性がある)。

機械式計算機やリレー式のデジタル計算機も計算のツールとして開発された。そのような計算機が1940年代に電子式のコンピュータへと進化した。デジタル式のコンピュータは数値の計算以外にも使える機材であるが、例えばENIACの開発目標は、高速な数値計算を行うための機械の実現であった。その後はさらに複雑な計算がより高速に行えるようになっている。(計算機械にはデジタル式以外にもアナログ方式のものがある。例えば計算尺は一種のアナログ式の計算デバイスであるし、機械式や電気式、電子的のアナログ方式のコンピュータもデジタル方式のコンピュータが低価格となりごく当たり前になる以前には良く用いられていた。アナログ方式の弱点は、素子の物理的な特性から決まる誤差やノイズによりある程度以上の高精度な計算を行うことが困難であることや、動作を決めるためのプログラミングは機構や回路そのもので実現するので、ストアドプログラミング方式が実現容易なデジタル方式と違って変更が素早くできないので、用途が専用機械になりがちなことである。)

直接解法と反復解法編集

直接解法と反復解法

次の式を x について解くことを考える。

3x3+4=28
直接解法
3x3 + 4 = 28
4を引く 3x3 = 24
3で割る x3 = 8
立方根を求める x = 2

反復解法では、f(x) = 3x3 + 4 に二分法を適用する。初期値として a = 0 と b = 3 を使うと、f(a) = 4、f(b) = 85 である。

反復解法
a b mid f(mid)
0 3 1.5 14.125
1.5 3 2.25 38.17...
1.5 2.25 1.875 23.77...
1.875 2.25 2.0625 30.32...

ここまでで、解は 1.875 と 2.0625 の間にあるとわかる。このアルゴリズムでは、誤差 0.2 未満でこの範囲にある任意の値を返す。

離散化と数値積分編集

2時間のレースで、自動車の速度を3回測定した結果が次表のようになっている。

時間 0:20 1:00 1:40
km/h 140 150 180

離散化とは、この場合、0:00 から 0:40 までの自動車の速度が一定とみなし、同様に 0:40 から 1:20 までと、1:20 から 2:00 までも一定とみなすことである。すると、最初の40分の走行距離は約 (2/3h x 140 km/h)=93.3 km となる。したがって、全走行距離は 93.3 km + 100 km + 120 km = 313.3 km と見積もられる。これがリーマン和を使った一種の数値積分である(走行距離は速度の積分であるため)。

悪条件問題: 関数 f(x) = 1/(x − 1) を考える。f(1.1) = 10 で f(1.001) = 1000 である。x が 0.1 の範囲内で変化したとき、f(x) は約1000も変化する。この f(x) の x = 1 での評価は悪条件問題である。

良条件問題: 対照的に関数   は連続であるため、その評価は良条件である。

直接解法は、問題の解を有限個のステップで計算する。その解は、演算精度が無限ならば正確である。例えば、線型方程式系を解くガウスの消去法QR分解線形計画問題シンプレックス法などがある。実際には有限な浮動小数点数が使われるため、得られる解は近似値となる。

これに対して反復解法は一定のステップ数で完了するとは限らない。ある初期予測値から開始して、反復的に計算を行って徐々に解に収束させていく。一般にこの場合、たとえ無限の精度で計算したとしても、有限回の反復では正確な解にたどり着くことはない。例として、ニュートン法二分法ヤコビ法などがある。数値線形代数の大規模な問題には、反復解法が一般に必要とされる[5][6][7][8][9][10]

数値解析では、反復解法が直接解法よりも一般的である。いくつかの手法は基本的には直接解法だが、GMRES法共役勾配法などのように、反復解法として使うことも多い。これらの技法では厳密解を得るために必要なステップ数が大きくなるため、反復解法として近似解を利用する。

離散化編集

さらに、連続問題を近似的に離散問題に置き換えて解くことが必要になる。この置き換え操作を「離散化(discretization)」という。たとえば、微分方程式を解く場合が挙げられる。数値的に微分方程式を解くためには、データの数が有限でなければ現実には扱うことができない。そこでたとえば微分方程式の定義領域が連続なものであっても、そのなかから有限個の点を適切に代表点として選び、元の微分方程式をそれらの点での値についてだけの関係に置き換えて扱う。

誤差の発生と伝播編集

誤差の研究は、数値解析の重要な一分野である。解に誤差が入り込む原因はいくつかある。

丸め誤差編集

全てのデジタルコンピュータのモデルである有限状態機械では、数値を有限の桁数で表現するためあらゆる実数を正確に表現するのは不可能であり、端数処理にともなう誤差が発生する。この誤差を丸め誤差という。この誤差は計算を倍精度で行うなど、コンピュータの計算精度を上げることによって減らすことができる。

打ち切り誤差編集

打ち切り誤差とは、数学的には繰り返しを無限に続けた極限では真の解を与える計算法を、無限回の操作を行うことは現実にはできないので、繰り返しをある有限回までで打ち切って得られた近似解の真の解との差である。たとえば右の欄にある   を解く問題で、10回程度の反復では、解は約 1.99 となる。このとき打ち切り誤差は 0.01 である。一般には(丸め誤差の影響を無視すれば)反復回数を十分に増やせばこの誤差は減少する。またたとえば収束する無限級数の和を、最初のある項数までの有限部分和に置き換えた場合の誤差も、打ち切り誤差である。

離散化誤差編集

多くの問題では基礎方程式微分方程式である。連続量で表される微分方程式に離散化近似を行うと、元の式と異なる差分方程式が得られる。差分方程式はテイラー展開の高次微小量を無視して得られるため、その解も元の微分方程式の解と正確には一致しない。このように離散化によって発生する誤差を離散化誤差という。この誤差を減らすには、より高次の離散化方法をとる、計算点の個数をできるだけ多くするなどの方法がある。

モデリング誤差編集

上述までの誤差は、与えられたモデルを「正しく」解いているか、という観点からの誤差であるが、その対立概念として、元の基礎方程式に関して、「正しい」式を解いているか、という問題がある。例えば非線形現象を線形近似することなどがこれに相当する。これは数値解析というより、元の問題が属する科学分野の問題ではあるが、基礎方程式が誤っている(実現象のモデルとして不適切である)場合には上述の誤差を減らしても解が実現象を正しく表すとは限らないため、解の誤差評価をする際には必ず検討しなければならないことである。この検証過程では定式化や仮説における誤り、モデルの適用限界などに対する考察が必要になる[11]

数値的安定性と良条件性編集

誤差が発生すると、計算を通じてそれが伝播していく。実際、電卓やコンピュータでの(浮動小数点数の)加算は正確ではなく、反復計算をすると計算はさらに不正確になっていく。このような誤差の研究から数値的安定性の概念が生まれた[12]。あるアルゴリズムが数値的に安定であるとは、誤差が発生・伝播したときに計算が進むにつれてその誤差があまり大きくならないことを意味する[12]。これは問題が良条件の場合のみ可能である。良条件とは、データが少しだけ変化したとき、解も少しだけ変化するような性質を持つことを意味する[12]。逆に問題が悪条件であれば、データに含まれる誤差は大きく成長する。

しかし、良条件の問題を解くアルゴリズムは必ずしも数値的に安定とは言えない。数値解析の技術は、良条件の問題を解く安定なアルゴリズムを見つけるためにある。例えば、2の平方根(約 1.41421)の計算は良条件問題である[要出典]。この問題を解く多くのアルゴリズムは、初期近似値 x1 から開始して   になるべく近い値を求めようとする。つまり、x1=1.4 として、よりよい近似値を x2x3、…と計算していく。有名なアルゴリズムとしてバビロニアの平方根があり、この場合の式は xk+1 = xk/2 + 1/xk である。別の方法として、例えば、xk + 1 = (xk2−2)2 + xk という式を使うとする(仮に Method X とよんでおく)[注釈 2]。この2つのアルゴリズムについて、x1 = 1.4 と x1 = 1.42 の場合の反復結果の一部を以下に示す。

バビロニア バビロニア Method X Method X
x1 = 1.4 x1 = 1.42 x1 = 1.4 x1 = 1.42
x2 = 1.4142857... x2 = 1.41422535... x2 = 1.4016 x2 = 1.42026896
x3 = 1.414213564... x3 = 1.41421356242... x3 = 1.4028614... x3 = 1.42056...
... ...
x1000000 = 1.41421... x28 = 7280.2284...

見ての通り、バビロニアの平方根は初期値がどうであっても素早く収束するが、Method X は初期値が1.4の時は収束が遅く、1.42を初期値にすると発散する。したがって、バビロニアの平方根は数値的に安定だが、Method X は数値的に不安定である。

精度保証付き数値計算編集

近似値の計算をすると同時に計算に含まれる丸め誤差、打切り誤差、離散化誤差をすべて(数学的な意味で)厳密に評価する技術を精度保証付き数値計算という。 計算する際は数を区間に置き換えて計算(区間演算) し、真値を含む区間を結果として出力する。 精度を保証するという観点から数値計算法全般を見直す動きが数値計算の各方面で起こっている。例えば微分方程式の分野では解の存在証明が困難な解析学上の問題 に対する数値的アプローチが確立されつつある[13][14]。現代では力学系の研究にも応用されており、有力な道具として注目されている[15][16][17][18]

研究分野編集

数値解析は、解こうとしている問題によっていくつかの分野に分かれる。

関数の値の計算編集

補間: 気温の観測値が1:00には20℃、3:00には14℃だったとする。このデータを線型補間すると、2:00の気温は17℃、1:30の気温は18.5℃となる。

補外: ある国の国内総生産が毎年平均5%伸びていて、昨年の値が1000億ドルだったとする。ここで補外すると、今年は1050億ドルとなる。

回帰: 線型回帰では、n 個の点が与えられたとき、それら n 個の点のなるべく近くを通る直線を求める。

最適化: レモネード売りがレモネードを売っている。1杯1ドルでは、1日に197杯売れる。1杯あたり1セント値段を上げると、1日に売れるレモネードは1杯減る。1杯を1.485ドルにすると売り上げが最大となるが、1セント未満を使った値段は付けられないので、1.49ドルにすると一日の最大売り上げ 220.52 ドルが得られる。

微分方程式: ある部屋で一方からもう一方へ空気が流れるように100個の扇風機を配置し、羽根をそこに落としてみる。何が起きるだろうか? 羽根は空気の流れに従って漂うが、非常に複雑な動きになるかもしれない。その近似としては、羽根が漂っている付近の空気の速度を1秒おきに測定し、シミュレートされた羽根が1秒間は測定された方向にその速度で進むと仮定する。このような手法をオイラー法と呼び、常微分方程式を解くのに使われる。

最も単純な問題は、関数のある点での値を求めることである[注釈 3]。単純に数式に値を代入する直接的な手法は、効率的でないこともある。多項式の場合、ホーナー法を使うことで乗算と加算の回数を減らすことができる。一般に、浮動小数点演算を使うことで生じる丸め誤差を予測して制御することが重要となる。

補間、補外、回帰編集

補間が役立つのは、ある未知の関数のいくつかの点の値があるとき、それら以外の中間点でのその関数の値を求める場合である。単純な手法としては線型補間があり、既知の点の間で関数が線型に変化するとみなすものである。これを一般化した多項式補間はもっと正確となることが多いが、ルンゲ現象に悩まされることもある。その他の補間手法としてはスプラインウェーブレットといった局所化関数を使うものがある。

補外は補間とよく似ているが、未知の関数の値が判っている点の外側の点について値を求めることをいう[20]

回帰も類似した手法だが、既存のデータが不正確であることを考慮する。いくつかの点とその値があり、それらデータが誤差を含みつつ何らかの関数に従っているとして、その未知の関数を決定する。このための手法として、最小二乗法がよく知られている。

方程式、方程式系の解編集

基本的な問題のひとつとして、与えられた方程式の解を計算する問題がある。その方程式が線型か否かによって手法が分類される。例えば、  は線型だが、  は線型ではない。

線型方程式系編集

線型方程式系を解く手法については研究が進んでいる。標準的な直接解法としては何らかの行列分解を使うものがあり、ガウスの消去法LU分解対称行列エルミート行列に関するコレスキー分解、非正方行列に関するQR分解がある。反復解法としては、ヤコビ法ガウス=ザイデル法SOR法共役勾配法[21]があり、大規模な方程式系でよく使われる。

非線形方程式編集

非線型方程式には求根アルゴリズムが用いられる(根とは、関数がゼロとなる変数の値を意味する)。関数が可微分で導関数が分かっている場合には、ニュートン法が利用されることが多い[22][23]。他にも線型化などの手法がある。

固有値と特異値編集

固有値分解特異値分解も重要な問題である。例えば、Spectral Image Compression[24]特異値分解に基づいたアルゴリズムである。これに対応した統計学のツールを主成分分析という。例えば、World Wide Web上での話題トップ100を自動的に抽出し、各Webページをどの話題に属するか分類するといった作業で使われる。

最適化問題編集

最適化問題は、与えられた関数が最大(または最小)になる点を問う問題である。多くの場合、解は何らかの制約条件を満たさなければならない。

最適化問題はさらに、関数や制約の形式によっていくつかに分類される。例えば、線形計画問題は関数と制約が共に線型である場合を扱う。線形計画問題の主な解法として、シンプレックス法などを挙げることができる。

ラグランジュの未定乗数法は、制約条件のある最適化問題を制約のない問題に変換するために用いられる。

積分編集

数値積分(数値的求積法)では、与えられた領域に於ける定積分の値を求める[25]。一般的な手法としては、ニュートン・コーツ系の公式(中点法やシンプソンの公式)やガウスの求積法[26]二重指数関数型数値積分公式[27][28]などがある。これらは分割統治戦略に基づいて、大きな領域についての積分を小さな領域の積分に分割して値を求める。これらの手法は領域が高次元であると計算の手間が膨大となり適用することが困難になるので、高次元の場合には領域の空間次元に計算量があまり依存しないモンテカルロ法や準モンテカルロ法などのサンプリング平均により定積分の値を推定する手法がよく用いられる[29][30]

微分方程式編集

数値解析では、微分方程式常微分方程式偏微分方程式)を(近似的に)解く問題も扱う[31][32][33]

偏微分方程式を解くには、まず方程式を離散化し、有限次元の部分空間で計算を行う[31][33]。そのような手法として、有限要素法[34][35][36][37]差分法、特に工学分野で使われる有限体積法[38]などを挙げることができる。これらの手法は関数解析学の定理などに基づいている。これら各種の離散化近似手法により生じた有限自由度の連立代数関係式を何らかの手段で解くことで、求めたい微分方程式の解の近似を得る。

ソフトウェア編集

20世紀後半以降、多くの数値計算アルゴリズムはコンピュータ上に向けて実装され、実行されてきた[4]Netlib には数値解析用の各種ルーチンのソースコードがあり、その多くはFORTRANC言語により書かれている。各種の数値解析アルゴリズムを実装した商用ライブラリ製品としては IMSLNAG などがある。オ-プンな(ソースコードが開示されていて、利用や改変の際の自由度が高い)ものの例としては GNU Scientific Library を挙げることができる。

MATLABは行列計算を中心とする数値計算用の商用プログラミング言語として有名だが[39][40][41]、他にも商用ではSAS(統計解析用)[42]SPSS(統計解析用)[43][44][45][46][47]S-PLUSIDL[48] などがある。

フリーソフト編集

フリーソフトとして、「MATLAB」と互換性の高い Scilab[49][50][51][52]GNU Octave[53]FreeMat、「S言語」や「S-PLUS」の言語仕様に準じるR言語[54]、SPSS の代替を目指す PSPP[55]gretl、そのほかIT++(C++ライブラリ)、Pythonのライブラリ・パッケージである (SciPy[56][57][58]NumPy) など、様々な数値解析ソフトウェアが使われている。

性能も様々で、ベクトルや行列の演算は一般に高速だが、スカラーのループは10倍以上の差があるものもある[59]

数式処理システム編集

MathematicaMaple のような数式処理システム(記号処理システム)は多くの場合に浮動小数点数値の計算機能も含むので数値計算用途にも(性能や効率を問わなければ)一応使える[60][61][62][63][64][65][66][67][68][69]SageMath は数値計算と数式処理計算の両方を備えた統合システムである[70]。また、簡単な問題であればMicrosoft Excelなどの表計算ソフトを用いてでも扱える場合がある[71][72]

関連項目編集

関連分野編集

主な研究者編集

日本編集

海外編集

注釈編集

  1. ^ ピタゴラスの定理によれば、各辺が2メートルの正方形の対角線の長さは   メートルとなる。
  2. ^ これは   という方程式についての不動点反復法である。この方程式の解には   もある。  なので、反復は常に右方向に向かう。そのため、  では収束するが、  では発散する。
  3. ^ 特殊関数の値を求める方法、零点を求める方法も盛んに研究されており、[19]が詳しい。

出典編集

[脚注の使い方]
  1. ^ Photograph, illustration, and description of the root(2) tablet from the Yale Babylonian Collection
  2. ^ 長尾真. (1986). 計算言語学: 計算言語学の歴史と展望. 情報処理, 27(8).
  3. ^ 安田三郎. (1977). 社会統計学. 丸善.
  4. ^ a b c Brezinski, C., & Wuytack, L. (2012). Numerical analysis: Historical developments in the 20th century. Elsevier.
  5. ^ 線形方程式の反復解法、 一般社団法人 日本計算工学会 編、藤野清次 著、阿部邦美 著、杉原正顯 著、丸善出版、2013年09月。
  6. ^ 藤野清次, & 張紹良. (1996). 反復法の数理. 朝倉書店.
  7. ^ Saad, Y. (2003). Iterative methods for sparse linear systems. SIAM.
  8. ^ Hageman, L. A., & Young, D. M. (2012). Applied iterative methods. Courier Corporation.
  9. ^ Traub, J. F. (1982). Iterative methods for the solution of equations. American Mathematical Society.
  10. ^ Greenbaum, A. (1997). Iterative methods for solving linear systems. SIAM.
  11. ^ 峯村吉泰 『JAVAによる流体・熱流動の数値シミュレーション』 森北出版、2001年、4頁。ISBN 4-627-91751-1 
  12. ^ a b c Higham, N. J. (2002). Accuracy and stability of numerical algorithms (Vol. 80). SIAM.
  13. ^ Nakao, M. T., Plum, M., & Watanabe, Y. (2019). Numerical Verification Methods and Computer-Assisted Proofs for Partial Differential Equations. Springer.
  14. ^ Tucker, W. (2011). Validated numerics: a short introduction to rigorous computations. Princeton University Press.
  15. ^ 中尾充宏、山本野人:「精度保証付き数値計算―コンピュータによる無限への挑戦」、日本評論社、(1998年)
  16. ^ 大石進一:「精度保証付き数値計算」、コロナ社、(2000年)
  17. ^ 中尾充宏、渡辺善隆:「実例で学ぶ精度保証付き数値計算」、サイエンス社(2011年)
  18. ^ 大石進一編著:「精度保証付き数値計算の基礎」、コロナ社、(2018年)
  19. ^ Gil, A., Segura, J., & Temme, N. (2007). Numerical methods for special functions (Vol. 99). Siam.
  20. ^ Brezinski, C., & Zaglia, M. R. (2013). Extrapolation methods: theory and practice. Elsevier.
  21. ^ 戸川隼人. (1977). 共役勾配法. シリーズ新しい応用の数学.
  22. ^ Fernández, J. A. E., & Verón, M. Á. H. (2017). Newton’s method: An updated approach of Kantorovich’s theory. Birkhäuser.
  23. ^ Peter Deuflhard, Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms, Second printed edition. Series Computational Mathematics 35, Springer (2006)
  24. ^ The Singular Value Decomposition and Its Applications in Image Compression Archived 2006年10月4日, at the Wayback Machine.
  25. ^ Davis, P. J., & Rabinowitz, P. (2007). Methods of numerical integration. Courier Corporation.
  26. ^ Weisstein, Eric W. "Gaussian Quadrature." From MathWorld--A Wolfram Web Resource. mathworld.wolfram.com/GaussianQuadrature.html
  27. ^ Takahasi, H. and Mori, M. (1974). “Double exponential formulas for numerical integration”. Publications of the Research Institute for Mathematical Sciences (京都大学, Kyoto University) 9 (3): 721–741.
  28. ^ 森正武:数値解析における二重指数関数型変換の最適性, 数学(日本数学会), Vol. 50, No. 3 (1998), pp. 248–264.
  29. ^ 手塚集、「数値多重積分に関する話題(<特集>数値計算)」 『応用数理』 1998年 8巻 4号 p.267-276, doi:10.11540/bjsiam.8.4_267, 日本応用数理学会
  30. ^ Geweke, J. (1995). Monte Carlo simulation and numerical integration. Federal Reserve Bank of Minneapolis, Research Department.
  31. ^ a b 田端正久; 偏微分方程式の数値解析, 2010. 岩波書店.
  32. ^ 三井斌友 et. al. (2004). 微分方程式による計算科学入門. 共立出版.
  33. ^ a b 登坂宣好, & 大西和榮. (2003). 偏微分方程式の数値シミュレーション. 東京大学出版会.
  34. ^ 森正武. (1986) 有限要素法とその応用. 岩波書店.
  35. ^ 菊池文雄. (1999). 有限要素法概説 [新訂版]. サイエンス社.
  36. ^ 菊池文雄. (1994). 有限要素法の数理. 培風館.
  37. ^ 有限要素法で学ぶ現象と数理―FreeFem++数理思考プログラミング―, 日本応用数理学会 監修・大塚 厚二・高石 武史著, 共立出版.
  38. ^ LeVeque, Randall (2002), Finite Volume Methods for Hyperbolic Problems, Cambridge University Press.
  39. ^ Quarteroni, A., Saleri, F., & Gervasio, P. (2006). Scientific computing with MATLAB and Octave. Berlin: Springer.
  40. ^ Gander, W., & Hrebicek, J. (Eds.). (2011). Solving problems in scientific computing using Maple and Matlab®. en:Springer Science & Business Media.
  41. ^ Barnes, B., & Fulford, G. R. (2011). Mathematical modelling with case studies: a differential equations approach using Maple and MATLAB. Chapman and Hall/CRC.
  42. ^ Khattree, R., & Naik, D. N. (2018). Applied multivariate statistics with SAS software. SAS Institute Inc..
  43. ^ Wagner III, W. E. (2019). Using IBM® SPSS® statistics for research methods and social science statistics. Sage Publications.
  44. ^ Pollock III, P. H., & Edwards, B. C. (2019). An IBM® SPSS® Companion to Political Analysis. Cq Press.
  45. ^ Babbie, E., Wagner III, W. E., & Zaino, J. (2018). Adventures in social research: Data analysis using IBM SPSS statistics. Sage Publications.
  46. ^ Aldrich, J. O. (2018). Using IBM® SPSS® Statistics: An interactive hands-on approach. Sage Publications.
  47. ^ Stehlik-Barry, K., & Babinec, A. J. (2017). Data Analysis with IBM SPSS Statistics. Packt Publishing Ltd.
  48. ^ Gumley, L. E. (2001). Practical IDL programming. Elsevier.
  49. ^ Bunks, C., Chancelier, J. P., Delebecque, F., Goursat, M., Nikoukhah, R., & Steer, S. (2012). Engineering and scientific computing with Scilab. en:Springer Science & Business Media.
  50. ^ 大野修一. (2009). Scilab 入門: フリーソフトで始める数値シミュレーション. CQ出版.
  51. ^ 上坂吉則. (2010). Scilab プログラミング入門. 牧野書店.
  52. ^ Thanki, R. M., & Kothari, A. M. (2019). Digital image processing using SCILAB. Springer International Publishing.
  53. ^ Octaveの精義 - フリーの高機能数値計算ツールを使いこなす, 松田七美男 (2011)
  54. ^ Ihaka, R., & Gentleman, R. (1996). R: a language for data analysis and graphics. Journal of computational and graphical statistics, 5(3), 299-314.
  55. ^ Yagnik, J. (2014). PSPP: a free and open source tool for data analysis (No. 2014-03-21).
  56. ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
  57. ^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
  58. ^ Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
  59. ^ Speed comparison of various number crunching packages Archived 2006年10月5日, at the Wayback Machine.
  60. ^ Maeder, R. E. (1991). Programming in mathematica. Addison-Wesley Longman Publishing Co., Inc..
  61. ^ Stephen Wolfram. (1999). The MATHEMATICA® book, version 4. en:Cambridge University Press.
  62. ^ Shaw, W. T., & Tigg, J. (1993). Applied Mathematica: getting started, getting it done. Addison-Wesley Longman Publishing Co., Inc..
  63. ^ 中村健蔵. (1998). Mathematica で絵を描こう. 東京電機大学出版局.
  64. ^ 椎原浩輔. (2000). Mathematica による金融工学. 東京電機大学出版局.
  65. ^ 吉本堅一, & 松下修己. (2004). Mathematica で学ぶ振動とダイナミクスの理論. 森北出版.
  66. ^ Beltzer, A. I. (1995). Engineering analysis with Maple/Mathematica. en:Academic Press.
  67. ^ Mathematicaによる数値計算, R.D.Skeel ・J.B.Keiper 著・玄光男・辻陽一・尾内俊夫 共訳, 共立出版, 1995.
  68. ^ Mathematica によるテンソル解析, 野村靖一 著, 共立出版, 2019.
  69. ^ Marasco, A., & Romano, A. (2001). Scientific Computing with Mathematica: Mathematical Problems for Ordinary Differential Equations; with a CD-ROM. en:Springer Science & Business Media.
  70. ^ Zimmermann, P., Casamayou, A., Cohen, N., Connan, G., Dumont, T., Fousse, L., ... & Bray, E. (2018). Computational Mathematics with SageMath. SIAM.
  71. ^ 吉村忠与志, 吉村三智頼, 佐々和洋, & 青山義弘. (2009). Excel で数値計算の解法がわかる本. 秀和システム.
  72. ^ 渋谷道雄, & 渡邊八一. (2001). Excel で学ぶ信号解析と数値シミュレーション. 株式会社 オーム社.

関連文献編集

狭義では数値解析と数値計算は異なるが、両者を区別しないことにする。

洋書編集

なるべく発行年代順に並べる。

  • J. B, Scarborough: "Numerical Mathematical Analysis", Johns Hopkins Press (1930).
  • W. E, Milne: "Numerical Calculus", Princeton Univ. Press (1949).
  • D. R, Hartree: "Numerical Analysis", Oxford Clarendon Press, (1952).
  • A. S, Householder, "Principle of Numerical Analysis", McGraw Hill (1953).
  • Hildebrand, F. B. (1974). Introduction to Numerical Analysis (2nd edition ed.). McGraw-Hill. ISBN 0-070-28761-9 
  • Gene H. Golub and Charles F. Van Loan: "Matrix Computations", 3rd Edition, The Johns Hopkins University Press, ISBN 0-8018-5413-X(hard cover), ISBN 0-8018-5414-8(pbk), (1996).
  • Kendall Atkinson and Weimin Han: "Theoretical Numerical Analysis : A Functional Analysis Framework",3rd Ed., Springer, ISBN 978-1441904577 (2001).
  • Michael L. Overton: "Numerical computing with IEEE floating point arithmetic", SIAM ,ISBN 978-0-89871-482-1(2001).
  • Nicholas J. Higham: "Accuracy and Stability of Numerical Algorithms", 2nd Ed., SIAM, ISBN 978-0898715217 (2002).
  • Leader, Jeffery J. (2004). Numerical Analysis and Scientific Computation. Addison Wesley. ISBN 0-201-73499-0 
  • Trefethen, Lloyd N. (2006). "Numerical analysis", 20 pages. To appear in: Timothy Gowers and June Barrow-Green (editors), Princeton Companion of Mathematics, Princeton University Press.
  • Michael T. Heath: "Scientific Computing: An Introductory Survey", Rev.2nd Ed., SIAM, ISBN 978-1-61197-557-4 (2018).

和書編集

主な内容が特定の応用分野や計算技法に限られるものは省いた。 発行年代順に並べる。(発行の日付は奥付のものとは異なることがある)。

  • 柴垣和三雄:「實用解析:合理的數値計算法」、河出書房(1948年2月).
  • 谷本勉之助:「実用数値計算法」、森北出版(1958)。
  • 一松信:「数値計算」、至文堂 (近代数学新書)(1963年)。
  • 山内二郎 (編)、森口繁一 (編)、一松信 (編):「電子計算機のための数値計算法 I, II, III」、培風館(1965年、1967年、1972年)。
  • 雨宮綾夫(編)、田口武夫(編):「数値解析とFORTRAN」、丸善 (1969年10月)。
  • 一松信:「数値解析」、税務経理協会 (情報科学講座) (1971年)。
  • 一松信:「電子計算機と数値計算」、朝倉書店(初等数学シリーズ7)(1973年)。
  • 森正武、名取亮、鳥居達生:「数値計算」、岩波書店(岩波講座 情報科学18)(1982年1月8日)。
  • 一松信:「数値解析」、朝倉書店(新数学講座13)、ISBN 978-4254114430(1982年10月)。
  • 森正武:「数値解析法」、朝倉書店(朝倉現代物理学講座 7)、ISBN 978-4254135671 (1984年11月)。
  • 村田健郎 (ほか著):「スーパーコンピュータ 科学技術計算への適用」、丸善、ISBN 4-621-02984-3(1985年3月)。
  • 伊理正夫、藤野和建:「数値計算の常識」、共立出版ISBN 978-4320013438(1985年6月3日)。
  • 森口繁一、伊理正夫:「算法通論」第2版、東京大学出版会ISBN 978-4130620857(1985年10月)。
  • 村田健郎: 「線形代数と線形計算法序説」、サイエンス社、ISBN:4-7819-0427-0(1986年4月)。
  • 村田健郎 (ほか編著):「工学における数値シミュレーション スーパーコンピュータの応用」、丸善、ISBN 4-621-03234-8(1988年1月)。
  • 村田健郎 (ほか著):「大型数値シミュレーション」、岩波、ISBN 4-00-005126-1(1990年2月)。
  • 大野豊、磯田和男:「新版 数値計算ハンドブック」、オーム社、ISBN 978-4274075841(1990年9月)。
  • 森口繁一(編)、伊理正夫(編)、武市正人(編):「Cによる算法通論」、東京大学出版会、ISBN 978-4130621328(1992年2月)。
  • 高橋大輔:「数値計算」、岩波書店 (理工系の基礎数学 8)、ISBN 978-4000079785(1996年2月16日)。
  • 篠原能材:「数値解析の基礎」(第5版(増補版))、日新出版、ISBN 4-8173-0097-3(1997年6月30日)。
  • 森正武:「数値解析」(第2版)、共立出版(共立数学講座)、ISBN 978-4320017016(2002年2月1日)。
  • 杉原正顯、室田一雄:「数値計算の数理」、岩波書店(2003年5月23日)。
  • 山本哲朗:「数値解析入門【増訂版】」、サイエンス社、ISBN 978-4781910383(2003年6月1日)。
  • 二宮市三、長谷川武光、秦野泰世、櫻井鉄也、杉浦洋、吉田年雄:「数値計算のつぼ」、共立出版、ISBN 978-4320120884(2004年1月1日)。
  • 長谷川武光、細田陽介、吉田俊之:「工学のための数値計算」、数理工学社、ISBN 978-4901683586(2008年8月1日)。
  • 斎藤宣一:「数値解析入門」、東京大学出版会(大学数学の入門9)、ISBN 978-4130629591(2012年10月23日)。
  • 柳田英二、三村昌泰、中木達幸:「理工系の数理 数値計算」、裳華房ISBN 978-4785315603(2014年10月28日)。
  • 菊地文雄、齊藤宣一:「数値解析の原理」、岩波書店(岩波数学叢書)、ISBN 978-4-000298230(2016年8月30日)。
  • 齊藤宣一:「数値解析」、共立出版、ISBN 978-4320111905(2017年3月23日)。
  • 大石進一(編):「精度保証付き数値計算の基礎」、コロナ社、ISBN978-4-339-02887-4 (2018年7月3日)。
  • 日本応用数理学会(編)「数値線形代数の数理とHPC」、共立出版、ISBN 978-4-320-01955-3(2018年8月31日)。
  • 張紹良(編):「計算科学のための基本数理アルゴリズム」、共立出版、ISBN 978-4-320-12266-6(2019年6月15日)。
  • 幸谷智紀:「多倍長精度数値計算」、森北出版、ISBN 978-4-627-85491-8 (2019年11月)。
  • 水島二郎、柳瀬眞一郎、石原卓:「理工学のための数値計算法」、第3版、数理工学社、ISBN 978-4864810616(2019年11月1日)。
  • 日本計算工学会(編):「固有値計算と特異値計算」、丸善、ISBN978-4-621-30473-0 (2019年12月20日)。

学術論文誌など編集

数値計算と関連性の高い学術団体・研究集会等編集

国内編集

国外編集

外部リンク編集