バビロニア の粘土板 YBC 7289 (紀元前1800-1600年頃)。2の平方根 の近似値は六十進法 で4桁、十進法 では約6桁に相当する。1 + 24/60 + 51/602 + 10/603 = 1.41421296... [1] 。(Image by Bill Casselman)
数値解析 (すうちかいせき、英 : numerical analysis )は、計算機代数 (英語版 ) とは対照的に、数値計算によって解析学 の問題を近似 的に解く数学 の一分野である。
(狭義には「数値解析」とは「数値計算方法」の数学的な解析・分析(mathematical analysis of numerical methods)のことであり,広義の意味=数値を使って問題の解析・分析を行う(Analysis by numerical methods)・式でなく数値で計算を行う「数値計算」(numerical computation, numerical calculation)全般とは区別される。しかし世間一般には両者はあまり区別されていない。理学工学等の分野の応用として計算を行う場合には普通は広義の意味で「数値解析」と称している。このWikipediaでも区別がなされていない。本来この頁のタイトルは「数値解析」ではなくて「数値計算」とする方が正しい。その場合の「数値計算」とは問題を解くための計算を数式を使って行うのではなくてもっぱら数値を使って行うのだという意味合いがある。)
数値解析は自然科学および工学のあらゆる分野に応用がある。計算言語学 [ 1] や社会統計学 [ 2] のように、人文科学 や社会科学 でも重要である。
現在知られている人類史における最初期の数学的記述の一つとして、バビロニア の粘土板 YBC 7289 を挙げることができる。YBC 7289 は正方形 の対角線 の長さ を近似したものと考えられ、結果として
2
{\displaystyle {\sqrt {2}}}
の(六十進法 による)近似値を含んでいる[ 3] 。
電子計算機(コンピュータ )の発明以前、数値計算には数表 や補助的な計算機も用いられたものの、アルゴリズム の適用は人の手によるところが大きかった。
コンピュータの発明により、汎用的なプログラミング が可能になり、また人の手より速くより多くの計算を実行できるようになった。種々のアルゴリズムのプログラムが実装され、またコンピュータ自身の特性に合わせてアルゴリズムが考案されるようになった[ 4] 。
概要
数値解析の目標は、難しい問題への近似解を与える技法の設計と解析である。この考え方を具体化するため、次のような問題と手法を挙げる。
気象予報 には、高度な数値計算手法が不可欠である。
ロケットの軌道を計算するためには、常微分方程式 の高精度な数値解が必要となる。
自動車会社は自動車事故での安全性を向上させるため、衝突のコンピュータシミュレーションを行っている。そのようなシミュレーションには、偏微分方程式 の数値計算が不可欠である。
ヘッジファンド は様々な数値解析ツールを駆使し、他の市場参加者よりも正確に株やデリバティブの価値を計算しようとする。
航空会社は、チケット価格設定、航空機や乗務員のスケジュール設定、燃料補給のスケジュール設定などに洗練された最適化アルゴリズムを利用する。この分野はオペレーションズ・リサーチ とも呼ばれる。
保険会社はアクチュアリー 分析に数値解析プログラムを利用する。
歴史
数値的手段による解析のための計算は、コンピュータの発明以前から多くの国々で行われていた。線型補間 は2000年以上前から行われている。ニュートン法 、ラグランジュ補間 、ガウスの消去法 、オイラー法 などの名称からも分かるように、歴史上の偉大な数学者の多くが数値的手段による解析にも注力した[ 4] 。
計算を能率化しまた計算の誤りをなるべく減らすために、公式や数表を掲載した印刷物である数表 が作られた。例えば関数値を小数点以下16桁まで与える数表を使って、必要に応じて補間を行うことで、関数の精度の良い近似値を得ることができた。この分野での典型的な業績の例として、アブラモビッツ (英語版 ) とステガン (英語版 ) の編集したNIST の書籍などが挙げられる(通称“Abramowitz and Stegun ”。これは1000ページを超えるもので、典型的な公式、計算式、近似式や関数の数表やグラフなどを多数集めている。コンピュータが利用可能になった後には数表そのものは(関数値のルーチンを作る作業者が計算値の検証に使う場合を除けば)役に立つ機会はほとんどなくなったといえるが、数表のほかに多くの公式、計算式、近似式が集められており、今日でも数値計算の分野にとって有用である)。
機械式計算機 やリレー式のデジタル計算機も計算のツールとして開発された。そのような計算機が1940年代に電子式のコンピュータへと進化した。デジタル式のコンピュータは数値の計算以外にも使える機材であるが、例えばENIAC の開発目標は、高速な数値計算を行うための機械の実現であった。その後はさらに複雑な計算がより高速に行えるようになっている。(計算機械にはデジタル式以外にもアナログ方式のものがある。例えば計算尺は一種のアナログ式の計算デバイスであるし、機械式や電気式、電子的のアナログ方式のコンピュータもデジタル方式のコンピュータが低価格となりごく当たり前になる以前には良く用いられていた。アナログ方式の弱点は、素子の物理的な特性から決まる誤差やノイズによりある程度以上の高精度な計算を行うことが困難であることや、動作を決めるためのプログラミングは機構や回路そのもので実現するので、ストアドプログラミング方式が実現容易なデジタル方式と違って変更が素早くできないので、用途が専用機械になりがちなことである。)
直接解法と反復解法
直接解法と反復解法
次の式を x について解くことを考える。
3x 3 +4=28
直接解法
3x 3 + 4 = 28
4を引く
3x 3 = 24
3で割る
x 3 = 8
立方根を求める
x = 2
反復解法では、f (x ) = 3x 3 + 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 での評価は悪条件問題である。
良条件問題 : 対照的に関数
f
(
x
)
=
x
{\displaystyle f(x)={\sqrt {x}}}
は連続であるため、その評価は良条件である。
直接解法は、問題の解を有限回数の演算により計算する。もしも演算の精度が無限にできるならば得られる解は正確である。たとえば、線型方程式系 を解くガウスの消去法 やQR分解 、線形計画問題 のシンプレックス法 などがある。実際は有限精度の浮動小数点数 を用いて計算を行うので,得られるものは解の近似値である。
これに対して反復解法 は有限の演算回数で完了するとは限らない。ある初期予測値から開始して、計算を反復的に行うことで近似解を真の解に徐々に収束させていく。仮に計算を無限の精度で行ったとしても、収束する反復を有限回までで打ち切って得られる結果は、一般には正確な解にはならない。例として、ニュートン法 、二分法 、ヤコビ法 などがある。一般に大規模な数値線形代数 の問題では反復法による解法が要求される[ 5] [ 6] [ 7] [ 8] [ 9] [ 10] 。
数値解析では、多くの計算法は直接解法ではなくて反復法である。GMRES法 や共役勾配法 などのようないくつかの手法は,本来は有限回の繰り返しで真の解に到達できる直接解法であるが,それを反復法のように扱って計算を繰り返しの途中で打ち切ることで近似解を得るために使われるものがある。これらの手法を大規模問題に対してもしも直接法として適用すると必要な繰り返しの回数が極めて多くなるが、それを反復解法とみなして途中で計算の繰り返しを打ち切ることにより繰り返しの回数に応じた精度の近似解が得られるという性質がある。
離散化
さらに、連続問題を近似的に離散問題に置き換えて解くことが必要になる。この置き換え操作を「離散化(discretization)」という。たとえば、微分方程式 を解く場合が挙げられる。数値的に微分方程式を解くためには、データの数が有限でなければ現実には扱うことができない。そこでたとえば微分方程式の定義領域が連続なものであっても、そのなかから有限個の点を適切に代表点として選び、元の微分方程式をそれらの点での値についてだけの関係に置き換えて扱う。
誤差の発生と伝播
誤差 の研究は、数値解析の重要な一分野である。解に誤差が入り込む原因はいくつかある。
入力誤差
アルゴリズムや計算プログラムに与える入力データ自身が持つ誤差。たとえば入力するデータがそれ自身が既に丸められた値である場合。
あるいは入力する数値を指定された有限桁の浮動小数点数に丸めることでも発生する(たとえば10進数で0.1を入力してもそれをプログラムの内部で2進数にして扱うとすると、0.1は2進数で表現すれば循環小数になるから有限桁数では正確には表せず、それを内部で扱う桁数に丸めて扱うとその段階で丸め誤差が入る。2の平方根や3の自然対数、円周率などの無理数の厳密な値は10進でも2進でも無限に続く小数になるがそれらをプログラム中で有限桁数の小数として近似して扱うならその段階で既に丸め誤差が入る)。あるいは入力が測定や観測から得られるものの場合には、一般的には真の値は未知であり、データ自身が確率的な振る舞いを持った観測誤差を伴う。
丸め誤差
有限な素子から構成されているデジタルコンピューターは内部状態の数も有限であるので、無限の情報(無限の桁数)を持ちうる実数はただ1つですら一般には値を正確に表現することができない。また、数値をある決まった桁数で表す場合に、それらの数値に四則演算を行った結果は一般には同じ桁数のままでは正確に表わせない。そこで演算結果の数値を一定の桁数になるように丸めると、端数処理 にともなう誤差が発生する。この誤差を丸め誤差 という。丸め誤差の影響はより表現精度の高い倍精度 を用いて計算を行うなどのように、計算に用いる数値の表現とそれらに対する演算の精度を上げることで小さくできる。
打ち切り誤差
打ち切り誤差 とは、数学的には繰り返しを無限に続けた極限では真の解を与える計算法を、無限回の操作を行うことは現実にはできないので、繰り返しをある有限回までで打ち切って得られた近似解の真の解との差である。たとえば右の欄にある
3
x
3
+
4
=
28
{\displaystyle 3x^{3}+4=28}
を解く問題で、10回程度の反復では、解は約 1.99 となる。このとき打ち切り誤差は 0.01 である。一般には(丸め誤差の影響を無視すれば)反復回数を十分に増やせばこの誤差は減少する。またたとえば収束する無限級数の和を、最初のある項数までの有限部分和に置き換えた場合の誤差も、打ち切り誤差である。
離散化誤差
コンピュータは有限個の素子からできていて一般には無限の自由度は扱えないので、本来は連続無限の自由度を持つ問題に対して何らかの近似を導入することにより有限の自由度の問題として定式化する作業のことを問題の離散化という。
たとえば微分方程式 は独立変数も従属変数も連続量であるが、それに対して計算点として有限個の分点を代表として選び、微分方程式中の微分を差分で近似して置き換える「差分近似」を行うと、それにより元の微分方程式とは異なる有限個の自由度に対する差分方程式 が得られる。差分方程式はテイラー展開 の剰余項を微小であると仮定して無視する近似から得られるものであるから、通常その解は元の微分方程式の解には一致しない。このように離散化近似によって得られる近似解の持つ元の方程式の真の解に対する誤差のことを離散化誤差 という。この種類の誤差を減らすためには、より高次の離散化近似方法をとる、近似に用いる自由度(計算点の個数)をより多くするなどの方法がある。(なお微分方程式の離散化の方法は差分法だけではなくて、問題の性質や近似手法に応じてさまざまなものが開発・研究されている。)
モデリング誤差
上述までの誤差は、与えられたモデルを「正しく」解いているか、という観点からの誤差であるが、その対立概念として、元の基礎方程式 に関して、「正しい」式を解いているか、という問題がある。例えば非線形現象を線形近似 することなどがこれに相当する。これは数値解析というより、元の問題が属する科学分野の問題ではあるが、基礎方程式が誤っている(実現象のモデルとして不適切である)場合には上述の誤差を減らしても解が実現象を正しく表すとは限らないため、解の誤差評価をする際には必ず検討しなければならないことである。この検証過程では定式化や仮説における誤り、モデルの適用限界などに対する考察が必要になる[ 11] 。
数値的安定性と良条件性
入力や計算の途中に発生した誤差は計算の過程で後に伝播していく。実際、電卓やコンピュータでの(浮動小数点数の)加算は正確ではなく、反復計算 をすると計算はさらに不正確になっていく。このような誤差の研究から数値的安定性 の概念が生まれた[ 12] 。あるアルゴリズムが数値的に安定 であるとは、誤差が発生・伝播したときに計算が進むにつれてその誤差があまり拡大しないことを意味する[ 12] 。これは問題が良条件 の場合にのみ可能である。良条件とは、データが少しだけ変化したとき、解も少しだけ変化するような性質を持つことを意味する[ 12] 。逆に問題が悪条件であれば、データに含まれる誤差は大きく成長する。
しかし、良条件の問題であってもそれを解くアルゴリズムが数値的に安定であるとは限らない。数値解析の技術は、良条件の問題を解く安定なアルゴリズムを見つけるためにある。例えば、2の平方根 (約 1.41421)の計算は良条件問題である[要出典 ] 。この問題を解く多くのアルゴリズムは、初期近似値 x 1 から開始して
2
{\displaystyle {\sqrt {2}}}
になるべく近い値を求めようとする。つまり、x 1 =1.4 として、よりよい近似値を x 2 、x 3 、…と計算していく。有名なアルゴリズムとしてバビロニアの平方根 があり、この場合の式は x k +1 = xk /2 + 1/xk である。別の方法として、例えば、x k + 1 = (x k 2 −2)2 + x k という式を使うとする(仮に Method X とよんでおく)[ 注釈 1] 。この2つのアルゴリズムについて、x 1 = 1.4 と x 1 = 1.42 の場合の反復結果の一部を以下に示す。
バビロニア
バビロニア
Method X
Method X
x 1 = 1.4
x 1 = 1.42
x 1 = 1.4
x 1 = 1.42
x 2 = 1.4142857...
x 2 = 1.41422535...
x 2 = 1.4016
x 2 = 1.42026896
x 3 = 1.414213564...
x 3 = 1.41421356242...
x 3 = 1.4028614...
x 3 = 1.42056...
...
...
x 1000000 = 1.41421...
x 28 = 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ドルでは、1日に197杯売れる。1杯あたり1セント値段を上げると、1日に売れるレモネードは1杯減る。1杯を1.485ドルにすると売り上げが最大となるが、1セント未満を使った値段は付けられないので、1.49ドルにすると一日の最大売り上げ 220.52 ドルが得られる。
微分方程式 : ある部屋で一方からもう一方へ空気が流れるように100個の扇風機を配置し、羽根をそこに落としてみる。何が起きるだろうか? 羽根は空気の流れに従って漂うが、非常に複雑な動きになるかもしれない。その近似としては、羽根が漂っている付近の空気の速度を1秒おきに測定し、シミュレートされた羽根が1秒間は測定された方向にその速度で進むと仮定する。このような手法をオイラー法 と呼び、常微分方程式を解くのに使われる。
最も単純な問題は、関数のある点での値を求めることである[ 注釈 2] 。単純に数式に値を代入する直接的な手法は、効率的でないこともある。多項式の場合、ホーナー法 を使うことで乗算と加算の回数を減らすことができる。一般に、浮動小数点演算 を使うことで生じる丸め 誤差を予測して制御することが重要となる。
補間、補外、回帰
補間 が役立つのは、ある未知の関数のいくつかの点の値があるとき、それら以外の中間点でのその関数の値を求める場合である。単純な手法としては線型補間 があり、既知の点の間で関数が線型に変化するとみなすものである。これを一般化した多項式補間 はもっと正確となることが多いが、ルンゲ現象 に悩まされることもある。その他の補間手法としてはスプライン やウェーブレット といった局所化関数を使うものがある。
補外 は補間とよく似ているが、未知の関数の値が判っている点の外側の点について値を求めることをいう[ 20] 。
回帰 も類似した手法だが、既存のデータが不正確であることを考慮する。いくつかの点とその値があり、それらデータが誤差を含みつつ何らかの関数に従っているとして、その未知の関数を決定する。このための手法として、最小二乗法 がよく知られている。
方程式、方程式系の解
基本的な問題のひとつとして、与えられた方程式の解を計算する問題がある。その方程式が線型か否かによって手法が分類される。例えば、
2
x
+
5
=
3
{\displaystyle 2x+5=3}
は線型だが、
2
x
2
+
5
=
3
{\displaystyle 2x^{2}+5=3}
は線型ではない。
線型方程式系
線型方程式系 を解く手法については研究が進んでいる。標準的な直接解法としては何らかの行列分解を使うものがあり、ガウスの消去法 、LU分解 、対称行列 やエルミート行列 に関するコレスキー分解 、非正方行列に関するQR分解 がある。反復解法 としては、ヤコビ法 、ガウス=ザイデル法 、SOR法 、共役勾配法 [ 21] があり、大規模な方程式系でよく使われる。
非線形方程式
非線型方程式には求根アルゴリズム が用いられる(根とは、関数の値がゼロとなる変数の値を意味する)。関数が可微分 で導関数を導き出せる場合には、適切な初期値から開始してニュートン法 が利用されることが多い[ 22] [ 23] [ 24] 。他にも線型化 などの手法がある。
固有値と特異値
固有値分解 や特異値分解 も重要な問題である。例えば、Spectral Image Compression[ 25] は特異値分解 に基づいたアルゴリズムである。これに対応した統計学 のツールを主成分分析 という。例えば、World Wide Web 上での話題トップ100を自動的に抽出し、各Webページをどの話題に属するか分類するといった作業で使われる。
最適化問題
最適化問題は、与えられた関数が最大(または最小)となる点を求める問題である。解には条件として何らかの制約(等式による関係あるいは不等式による関係)を課すことがよくある。
最適化問題はさらに、関数や制約の形式によっていくつかに分類される。例えば、線形計画問題 は関数と制約条件の式が共に線型である場合を扱う。線形計画問題の解法としては、シンプレックス法 や内点法などが挙げられる。
制約条件付きの最適化問題を制約条件のない問題の形に変換するためにラグランジュの未定乗数法 が用いられる。
積分
数値積分 (数値的求積法)では、与えられた領域に於ける定積分 の値を求める[ 26] 。一般的な手法としては、ニュートン・コーツ系の公式 (中点法やシンプソンの公式 )やガウスの求積法 [ 27] 、二重指数関数型数値積分公式 [ 28] [ 29] などがある。これらは分割統治戦略 に基づいて、大きな領域についての積分を小さな領域の積分に分割して値を求める。これらの手法は領域が高次元であると計算の手間が膨大となり適用が困難になるので、高次元の場合には計算量が領域の空間次元にあまり依存しないモンテカルロ法 や準モンテカルロ法などのサンプリング平均により定積分の値を推定する手法がよく用いられる[ 30] [ 31] 。
微分方程式
数値解析では、微分方程式 (常微分方程式 や偏微分方程式 )を(近似的に)解く問題も扱う[ 32] [ 33] [ 34] 。
偏微分方程式を解くには、まずなんらかの方法に基づいて方程式の離散化近似を行い、有限次元の部分空間で計算を行う[ 32] [ 34] 。そのような手法として、有限要素法 [ 35] [ 36] [ 37] [ 38] 、差分法 、特に工学分野で使われる有限体積法 [ 39] などを挙げることができる。これらの手法は関数解析学 の定理などに基づいている。これら各種の離散化近似手法により生じた有限自由度の連立代数関係式を何らかの手段で正確にあるいは近似して解くことにより、求めたい微分方程式の近似解を得るようにする。
ソフトウェア
20世紀後半以降、多くの数値計算アルゴリズムはコンピュータ上に向けて実装され、実行されてきた[ 4] 。Netlib には数値解析用の各種ルーチンのソースコードがあり、その多くはFORTRAN とC言語 により書かれている。各種の数値解析アルゴリズムを実装した商用ライブラリ製品としては IMSL や NAG などがある。オープンな(ソースコードが開示されていて、利用や改変の際の自由度が高い)ものの例としては GNU Scientific Library を挙げることができる。
MATLAB は行列計算を中心とする数値計算用の商用プログラミング言語 として有名だが[ 40] [ 41] [ 42] 、他にも商用ではSAS (統計解析用)[ 43]
、SPSS (統計解析用)[ 44] [ 45] [ 46] [ 47] [ 48] 、S-PLUS 、IDL [ 49] などがある。
フリーソフト
フリーソフトとして、「MATLAB」と互換性の高い Scilab [ 50] [ 51] [ 52] [ 53] ・GNU Octave [ 54] ・FreeMat 、「S言語 」や「S-PLUS 」の言語仕様に準じるR言語 [ 55] 、SPSS の代替を目指す PSPP [ 56] や gretl 、そのほかIT++ (C++ライブラリ)、Python のライブラリ・パッケージである (SciPy [ 57] [ 58] [ 59] 、NumPy ) など、様々な数値解析ソフトウェア が使われている。
性能も様々で、ベクトルや行列の演算は一般に高速だが、スカラーのループは10倍以上の差があるものもある[ 60] 。
数式処理システム
Mathematica や Maple のような数式処理システム (記号処理システム)は多くの場合に浮動小数点数値の計算機能も含むので数値計算用途にも(性能や効率を問わなければ)一応は使える[ 61] [ 62] [ 63] [ 64] [ 65] [ 66] [ 67] [ 68] [ 69] [ 70] 。SageMath は数値計算と数式処理計算の両方を備えた統合システムである[ 71] 。また、簡単な問題であればMicrosoft Excel などの表計算ソフト を用いてでも扱える場合がある[ 72] [ 73] 。
脚注
注釈
^ これは
x
=
(
x
2
−
2
)
2
+
x
=
f
(
x
)
{\displaystyle x=(x^{2}-2)^{2}+x=f(x)}
という方程式についての不動点反復法 である。この方程式の解には
2
{\displaystyle {\sqrt {2}}}
もある。
f
(
x
)
≥
x
{\displaystyle f(x)\geq x}
なので、反復は常に右方向に向かう。そのため、
x
1
=
1.4
<
2
{\displaystyle x_{1}=1.4<{\sqrt {2}}}
では収束するが、
x
1
=
1.42
>
2
{\displaystyle x_{1}=1.42>{\sqrt {2}}}
では発散する。
^ 特殊関数 の値を求める方法、零点を求める方法も盛んに研究されており、[ 19] が詳しい。
出典
^ 長尾真. (1986). 計算言語学: 計算言語学の歴史と展望. 情報処理, 27(8).
^ 安田三郎. (1977). 社会統計学. 丸善.
^ Photograph, illustration, and description of the root(2) tablet from the Yale Babylonian Collection
^ a b c Brezinski, C., & Wuytack, L. (2012). Numerical analysis: Historical developments in the 20th century. Elsevier.
^ 藤野清次, 阿部邦美, 杉原正顕, 中嶋徳正, 日本計算工学会『線形方程式の反復解法』丸善出版〈計算力学レクチャーコース〉、2013年。ISBN 9784621087411 。
^ 藤野清次, 張紹良『反復法の数理』朝倉書店〈応用数値計算ライブラリ〉、1996年。ISBN 4254114044 。国立国会図書館書誌ID :000002552625 。
^ Saad, Y. (2003). "Iterative methods for sparse linear systems ". SIAM.
^ Hageman, L. A., & Young, D. M. (2012). Applied iterative methods. Courier Corporation.
^ Traub, J. F. (1982). Iterative methods for the solution of equations. American Mathematical Society.
^ Greenbaum, A. (1997). Iterative methods for solving linear systems. SIAM.
^ 峯村吉泰『JAVAによる流体・熱流動の数値シミュレーション』森北出版、2001年、4頁。ISBN 4-627-91751-1 。
^ a b c Higham, N. J. (2002). "Accuracy and stability of numerical algorithms " (Vol. 80). SIAM.
^ Nakao, Mitsuhiro T; Plum, Michael; Watanabe, Yoshitaka (2019). Numerical verification methods and computer-assisted proofs for partial differential equations . Springer. doi :10.1007/978-981-13-7669-6 . https://link.springer.com/book/10.1007/978-981-13-7669-6
^ Tucker, W. (2011). Validated numerics: a short introduction to rigorous computations. Princeton University Press.
^ 中尾充宏、山本野人:「精度保証付き数値計算―コンピュータによる無限への挑戦」、日本評論社、(1998年)
^ 大石進一:「精度保証付き数値計算」、コロナ社、(2000年)
^ 中尾充宏、渡辺善隆:「実例で学ぶ精度保証付き数値計算」、サイエンス社(2011年)
^ 大石進一編著:「精度保証付き数値計算の基礎」、コロナ社、(2018年)
^ Gil, A., Segura, J., & Temme, N. (2007). Numerical methods for special functions (Vol. 99). Siam.
^ Brezinski, C., & Zaglia, M. R. (2013). Extrapolation methods: theory and practice. Elsevier.
^ 戸川隼人. (1977). 共役勾配法. シリーズ新しい応用の数学.
^ Ezquerro Fernández, José Antonio; Hernández Verón, Miguel Ángel (2017). Newton's method : an updated approach of Kantorovich's theory . Frontiers in mathematics. Birkhäuser and Springer. doi :10.1007/978-3-319-55976-6 . https://lccn.loc.gov/2017944725
^ Peter Deuflhard, Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms, Second printed edition. Series Computational Mathematics 35, Springer (2006)
^ 小澤一文「導関数を用いない非線形スカラー方程式の高速多倍長数値解法 」『日本応用数理学会論文誌』第31巻第2号、日本応用数理学会、2021年、44-62頁、CRID 1390007005094550528 、doi :10.11540/jsiamt.31.2_44 、ISSN 2424-0982 。
^ The Singular Value Decomposition and Its Applications in Image Compression Archived 2006年10月4日, at the Wayback Machine .
^ Davis, P. J., & Rabinowitz, P. (2007). Methods of numerical integration. Courier Corporation.
^ Weisstein, Eric W. "Gaussian Quadrature." From MathWorld--A Wolfram Web Resource. mathworld .wolfram .com /GaussianQuadrature .html
^ Takahasi, Hidetosi; Mori, Masatake (1974). “Double exponential formulas for numerical indefinite integration” . Publications of the Research Institute for Mathematical Sciences (京都大学数理解析研究所) 9 (3): 721-741. CRID 1390001204957327360 . doi :10.2977/prims/1195192451 . ISSN 0034-5318 . https://doi.org/10.2977/prims/1195192451 .
^ 森正武「数値解析における二重指数関数型変換の最適性 」『数学』第50巻第3号、日本数学会、1998年、248-264頁、CRID 1390001205066239872 、doi :10.11429/sugaku1947.50.248 、ISSN 0039470X 。
^ 手塚集「数値多重積分に関する話題(<特集>数値計算) 」『応用数理』第8巻第4号、日本応用数理学会、1998年、267-276頁、CRID 1390282680742275200 、doi :10.11540/bjsiam.8.4_267 、ISSN 09172270 。
^ Geweke, John (1996). “Monte Carlo simulation and numerical integration” . Handbook of computational economics (Elsevier) 1 : 731-800. doi :10.1016/S1574-0021(96)01017-9 . https://doi.org/10.1016/S1574-0021(96)01017-9 .
^ a b 田端正久; 偏微分方程式の数値解析, 2010. 岩波書店.
^ 三井斌友 et. al. (2004). 微分方程式による計算科学入門. 共立出版.
^ a b 登坂宣好, & 大西和榮. (2003). 偏微分方程式の数値シミュレーション. 東京大学出版会.
^ 森正武. (1986) 有限要素法とその応用. 岩波書店.
^ 菊池文雄. (1999). 有限要素法概説 [新訂版]. サイエンス社.
^ 菊池文雄. (1994). 有限要素法の数理. 培風館.
^ 大塚厚二, 高石武史, 日本応用数理学会『有限要素法で学ぶ現象と数理 : FreeFem++数理思考プログラミング 』共立出版〈シリーズ応用数理〉、2014年。ISBN 9784320019539 。国立国会図書館書誌ID :025174389 。https://www.kyoritsu-pub.co.jp/book/b10005246.html 。
^ LeVeque, Randall (2002), Finite Volume Methods for Hyperbolic Problems, Cambridge University Press.
^ Quarteroni, A., Saleri, F., & Gervasio, P. (2006). Scientific computing with MATLAB and Octave. Berlin: Springer.
^ Gander, W., & Hrebicek, J. (Eds.). (2011). Solving problems in scientific computing using Maple and Matlab®. en:Springer Science & Business Media .
^ Barnes, B., & Fulford, G. R. (2011). Mathematical modelling with case studies: a differential equations approach using Maple and MATLAB. Chapman and Hall/CRC.
^ Khattree, R., & Naik, D. N. (2018). Applied multivariate statistics with SAS software. SAS Institute Inc..
^ Wagner III, W. E. (2019). Using IBM® SPSS® statistics for research methods and social science statistics. Sage Publications.
^ Pollock III, P. H., & Edwards, B. C. (2019). An IBM® SPSS® Companion to Political Analysis. Cq Press.
^ Babbie, E., Wagner III, W. E., & Zaino, J. (2018). Adventures in social research: Data analysis using IBM SPSS statistics. Sage Publications.
^ Aldrich, J. O. (2018). Using IBM® SPSS® Statistics: An interactive hands-on approach. Sage Publications.
^ Stehlik-Barry, K., & Babinec, A. J. (2017). Data Analysis with IBM SPSS Statistics. Packt Publishing Ltd.
^ Gumley, L. E. (2001). Practical IDL programming. Elsevier.
^ 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 .
^ 大野修一. (2009). Scilab 入門: フリーソフトで始める数値シミュレーション. CQ出版 .
^ 上坂吉則. (2010). Scilab プログラミング入門. 牧野書店.
^ Thanki, R. M., & Kothari, A. M. (2019). Digital image processing using SCILAB. Springer International Publishing.
^ Octaveの精義 - フリーの高機能数値計算ツールを使いこなす, 松田七美男 (2011)
^ Ihaka, R., & Gentleman, R. (1996). R: a language for data analysis and graphics. Journal of computational and graphical statistics, 5(3), 299-314.
^ Yagnik, J. (2014). PSPP: a free and open source tool for data analysis (No. 2014-03-21).
^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
^ Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
^ Speed comparison of various number crunching packages Archived 2006年10月5日, at the Wayback Machine .
^ Maeder, R. E. (1991). Programming in mathematica. Addison-Wesley Longman Publishing Co., Inc..
^ Stephen Wolfram. (1999). The MATHEMATICA® book, version 4. en:Cambridge University Press .
^ Shaw, W. T., & Tigg, J. (1993). Applied Mathematica: getting started, getting it done. Addison-Wesley Longman Publishing Co., Inc..
^ 中村健蔵. (1998). Mathematica で絵を描こう. 東京電機大学出版局.
^ 椎原浩輔. (2000). Mathematica による金融工学. 東京電機大学出版局.
^ 吉本堅一, & 松下修己. (2004). Mathematica で学ぶ振動とダイナミクスの理論. 森北出版 .
^ Beltzer, A. I. (1995). Engineering analysis with Maple/Mathematica. en:Academic Press .
^ Mathematicaによる数値計算, R.D.Skeel ・J.B.Keiper 著・玄光男・辻陽一・尾内俊夫 共訳, 共立出版 , 1995.
^ Mathematica によるテンソル 解析, 野村靖一 著, 共立出版 , 2019.
^ Marasco, A., & Romano, A. (2001). Scientific Computing with Mathematica: Mathematical Problems for Ordinary Differential Equations; with a CD-ROM. en:Springer Science & Business Media .
^ Zimmermann, P., Casamayou, A., Cohen, N., Connan, G., Dumont, T., Fousse, L., ... & Bray, E. (2018). Computational Mathematics with SageMath. SIAM.
^ 吉村忠与志, 吉村三智頼, 佐々和洋, & 青山義弘. (2009). Excel で数値計算の解法がわかる本. 秀和システム.
^ 渋谷道雄, & 渡邊八一. (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).
J.H.Wilkinson: The Algebraic Eigenvalue Problem , Oxford University Press, ISBN 0-19-853418-3 (1965).
J. H. Wilkinson and C. Reinsch: Handbook for Automatic Computation Vol. II: Linear Algebra , Springer, ISBN 0-387-05414-6 (1971). ※ 算法をALGOL言語で記述。
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 Ed., The Johns Hopkins University Press, ISBN 0-8018-5413-X (hard cover), ISBN 0-8018-5414-8 (pbk), (1996).
Anthony Ralston and Philip Rabinowitz: A First Course in Numerical Analysis , 2nd Ed., Dover, ISBN 978-0486414546 (2001).
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).
David Kincaid and Ward Cheney: Numerical Analysis : Mathematics of Scientific Computing , 3rd Ed., AMS, ISBN 978-0-8218-4788-6 (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.
Corless, Robert M., Fillion, Nicolas: A Graduate Introduction to Numerical Methods: From the Viewpoint of Backward Error Analysis , Springer, ISBN 978-1-4614-8452-3 (2013).
Michael T. Heath: Scientific Computing: An Introductory Survey , Rev.2nd Ed., SIAM, ISBN 978-1-61197-557-4 (2018).
Claude Brezinski, Gérard Meurant, Michela Redivo-Zaglia: A Journey through the History of Numerical Linear Algebra , SIAM, ISBN 978-1-611977-22-6 (2022).
Jeffrey Ovall: Numerical Mathematics , SIAM, ISBN 978-1-61197-806-3 (2024).
柴垣和三雄 :「實用解析:合理的數値計算法」、河出書房(1948年2月).
谷本勉之助:「実用数値計算法」、森北出版(1958)。
一松信 :「数値計算」、至文堂 (近代数学新書)(1963年)。
山内二郎 (編)、森口繁一 (編)、一松信 (編):「電子計算機のための数値計算法 I, II, III」、培風館 (1965年、1967年、1972年)。
雨宮綾夫 (編)、田口武夫(編):「数値解析とFORTRAN」、丸善 (1969年10月)。
一松信 :「数値解析」、税務経理協会 (情報科学講座) (1971年)。
一松信 :「電子計算機と数値計算」、朝倉書店 (初等数学シリーズ7)(1973年)。
P.ヘンリッチ(著)、一松信、平本巌、本田勝(共訳):「数値解析の基礎」、培風館 (1973年10月20日)。
牧之内三郎、鳥居達生:「数値解析」、オーム社、ISBN 978-4-27402011-7 (1975年10月25日)。
伊理正夫 :「数値計算―方程式の解法」、朝倉書店 (1981年12月)。
森正武 、名取亮、鳥居達生:「数値計算」、岩波書店 (岩波講座 情報科学18)(1982年1月8日)。
一松信 :「数値解析」、朝倉書店(新数学講座13)、ISBN 978-4-25411443-0 (1982年10月)。
森正武 :「数値解析法」、朝倉書店(朝倉現代物理学講座 7)、ISBN 978-4-25413567-1 (1984年11月)。
村田健郎 (ほか著):「スーパーコンピュータ 科学技術計算への適用」、丸善、ISBN 4-621-02984-3 (1985年3月)。
伊理正夫 、藤野和建:「数値計算の常識」、共立出版 、ISBN 978-4-32001343-8 (1985年6月3日)。
森口繁一、伊理正夫 :「算法通論」第2版、東京大学出版会 、ISBN 978-4-13062085-7 (1985年10月)。
A.ラルストン、P.ラビノヴィッツ:「電子計算機のための 数値解析の理論と応用」(上、下),ブレイン図書出版(発売元:丸善)、ISBN 4-89241-045-4 、ISBN 4-89241-046-2 (1986年3月8日)。
村田健郎 : 「線形代数と線形計算法序説」、サイエンス社、ISBN:4-7819-0427-0(1986年4月)。
村田健郎 (ほか編著):「工学における数値シミュレーション スーパーコンピュータの応用」、丸善、ISBN 4-621-03234-8 (1988年1月)。
村田健郎 (ほか著):「大型数値シミュレーション」、岩波、ISBN 4-00-005126-1 (1990年2月)。
大野豊、磯田和男:「新版 数値計算ハンドブック」、オーム社、ISBN 978-4-27407584-1 (1990年9月)。
森口繁一(編)、伊理正夫 (編)、武市正人(編):「Cによる算法通論」、東京大学出版会、ISBN 978-4-13062132-8 (1992年2月)。
William H. Press 他:「ニューメリカルレシピ・イン・シー 日本語版―C言語による数値計算のレシピ」、技術評論社、 ISBN 978-4-87408560-8 (1993年6月)。
池辺八洲彦、稲垣敏之:「数値解析入門」、昭晃堂、ISBN 4-7856-0131-0 (1994年3月10日)。
高橋大輔:「数値計算」、岩波書店 (理工系の基礎数学 8)、ISBN 978-4-00-007978-5 (1996年2月16日)。
篠原能材:「数値解析の基礎」(第5版(増補版))、日新出版、ISBN 4-8173-0097-3 (1997年6月30日)。
松本紘美:「コンピュータによる実戦数値計算法」、九州大学出版会、ISBN 978-4-87378-600-1 (1999年9月)。
森正武 :「数値解析」(第2版)、共立出版 (共立数学講座)、ISBN 978-4-320-01701-6 (2002年2月1日)。
片岡勲、安田秀幸、高野直樹、芝原正彦:「数値解析入門」、コロナ社、ISBN 978-4-339-06071-3 (2002年2月28日)。
杉原正顯 、室田一雄:「数値計算の数理」、岩波書店(2003年5月23日)。
山本哲朗:「数値解析入門【増訂版】」、サイエンス社、ISBN 978-4-78191038-3 (2003年6月1日)。
二宮市三、長谷川武光、秦野泰世、櫻井鉄也、杉浦洋、吉田年雄:「数値計算のつぼ」、共立出版、ISBN 978-4-320-12088-4 (2004年1月1日)。
田中敏幸:「数値計算法基礎」、コロナ社、ISBN 978-4-339-06078-2 (2006年4月6日)。
高倉葉子:「数値計算の基礎-解法と誤差」、コロナ社、ISBN 978-4-339-06092-8 (2007年4月20日)。
長谷川武光、細田陽介、吉田俊之:「工学のための数値計算」、数理工学社、ISBN 978-4-90168358-6 (2008年8月1日)。
杉浦洋:「数値計算の基礎と応用【新訂版】- 数値解析学への入門」、サイエンス社、ISBN 978-4-7819-1240-0 (2009年12月10日)。
斎藤宣一:「数値解析入門」、東京大学出版会(大学数学の入門9)、ISBN 978-4-13062959-1 (2012年10月23日)。
柳田英二、三村昌泰、中木達幸:「理工系の数理 数値計算」、裳華房 、ISBN 978-4-78531560-3 (2014年10月28日)。
菊地文雄、齊藤宣一:「数値解析の原理:現象の解明をめざして」、岩波書店(岩波数学叢書)、ISBN 978-4-00-029823-0 (2016年8月30日)。
下司雅章(編):「計算科学のためのHPC技術1」、大阪大学出版会、ISBN 978-4-87259-586-4 (2017年3月)。
Masaaki Geshi(Eds.):"The Art of High Performance Computing for Computational Science", Vol.1, Springer, ISBN 978-9-81136193-7 (2019).
下司雅章(編):「計算科学のためのHPC技術2」、大阪大学出版会、ISBN978-4-87259-587-1 (2017年3月)。
Masaaki Geshi(Eds.):"The Art of High Performance Computing for Computational Science", Vol.2, Springer, ISBN 978-9-81139801-8 (2019).
齊藤宣一:「数値解析」、共立出版、ISBN 978-4-320-11190-5 (2017年3月23日)。
大石進一(編):「精度保証付き数値計算の基礎」、コロナ社、ISBN 978-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-4-86481061-6 (2019年11月1日)。
日本計算工学会(編):「固有値計算と特異値計算」、丸善、ISBN 978-4-621-30473-0 (2019年12月20日)。
河村哲也、桑名杏奈:「Pythonによる数値計算入門」、朝倉書店、ISBN 978-4-25412900-7 (2021年4月5日)。
幸谷智紀:「Python 数値計算プログラミング」、講談社、ISBN 978-4-06-522735-0 (2021年3月19日)。
橋本修、毛塚敦:「Pythonによる数値計算法の基礎」、森北出版、ISBN 978-4-62774431-8 (2021年6月24日)。
張紹良(編):「20世紀のトップ10アルゴリズム」、共立出版、ISBN 978-4-320-12267-3 (2022年1月21日)。
片桐孝洋、大島聡史:「C&Fortran 演習で学ぶ数値計算」、共立出版、ISBN 978-4-320-12484-4 (2022年3月25日)。
菊地文雄:「数値計算の誤差と精度」、丸善出版、ISBN 978-4-621-30753-3 (2022年10月19日)。
田中健一郎、岡山友昭:「変数変換型数値計算法」、岩波書店、ISBN 978-4-00-029860-5 (2023年5月17日)。
横山良平:「Cによる理工系解析の数値計算―基礎からの展開―」、近代科学社、ISBN 978-4-76496060-2 (2023年6月30日)。
三井田惇郎、須田宇宙:「数値計算法(第3版)」、森北出版、ISBN 978-4-62780154-7 (2023年10月21日)。
長田直樹:「数値解析:非線形方程式と数値積分」、現代数学社、ISBN 978-4-7687-0626-8 (2024年1月19日)。
学会・論文誌
関連項目
数値解析の項目一覧 を参照。
外部リンク
ウィキメディア・コモンズには、
数値解析 に関連するカテゴリがあります。