精度保証付き数値計算

精度保証付き数値計算（せいどほしょうつきすうちけいさん、Validated Numerics, Rigorous Computation, Reliable Computation, Verified Computation, Numerical Verification, 独: Zuverlässiges Rechnen）とは数学的に厳密な誤差（前進誤差、後退誤差、丸め誤差、打切り誤差、離散化誤差）の評価を伴う数値計算のことであり、数値解析の一分野である。演算では区間演算を使用し、結果はすべて区間で出力する。精度保証付き数値計算はウォリック・タッカーによって14番目のスメイルの問題を解くのにも活用されており（Tucker (1999)を参照）、力学系の研究では重要なツールとして位置づけられている。 精度保証付き数値計算ではない通常の数値計算だと誤差によって不都合な事象が生じてしまう。いくつかのその例を挙げる。 1980年代にRumpは次のような例を提示した（Rump (1988)を参照）。 f ( a , b ) = 333.75 b 6 + a 2 ( 11 a 2 b 2 − b 6 − 121 b 4 − 2 ) + 5.5 b 8 + a 2 b {\displaystyle f(a,b)=333.75b^{6}+a^{2}(11a^{2}b^{2}-b^{6}-121b^{4}-2)+5.5b^{8}+{\frac {a}{2b}}} という関数を考え、この関数に a = 77617.0 , b = 33096.0 {\displaystyle a=77617.0,b=33096.0} という値を与えて数値計算をしたときにどういう結果が得られるか実験した。計算機はIBMのメインフレームS/370を使用して、単精度、倍精度、拡張精度で実験を行い、それぞれ 単精度（10進約8桁）: f ( a , b ) ∼ 1.172603... {\displaystyle f(a,b)\sim 1.172603...} 倍精度（10進約17桁）: f ( a , b ) ∼ 1.1726039400531... {\displaystyle f(a,b)\sim 1.1726039400531...} 拡張精度（10進約34桁）: f ( a , b ) ∼ 1.172603940053178... {\displaystyle f(a,b)\sim 1.172603940053178...} の結果を得た。この結果を見ると、それぞれの精度に応じて途中の桁まで正しい値が得られているように思えたが、実は真の値は f ( a , b ) = − 0.82739605... {\displaystyle f(a,b)=-0.82739605...} であり、真の値とは符号さえ合わないような結果が得られていた。これは、「ある演算精度で計算してそれよりも高い演算精度で計算したときに双方の結果が近ければある程度は結果の正しさを確認できる」とは限らないことを示す例である。 Breuer-Plum-McKennaはEmden方程式の境界値問題をスペクトル法によって離散化して解き、非対称な近似解が得られると報告した。しかしGidas-Ni-Nirenbergの理論的な解析手法によって非対称な解が存在しないことが証明されていた。つまりBreuer-Plum-McKennaが得た近似解は離散化誤差による幻影解だったのだ。これは珍しい例だが、微分方程式の解の存在を厳密に検討するには数値解法によって得られた近似解を検証しなければいけないことが分かる。 ローレンツ方程式を精度保証付き数値計算とMATLABのode45（ODEソルバ）において最高精度を指定した場合で比較を行うと、ある程度時刻が進むと得られる解が違ってくるという実験例がある。 数値計算の誤差によって生じた事故として次の3つが挙げられる。 湾岸戦争でのミサイル迎撃失敗（1991年） アリアン5ロケットの発射失敗（1996年） 選挙結果の間違い 精度保証付き数値計算は主に以下の分野に分かれて研究がなされている。 数値線形代数 (en) における精度保証（行列積、連立一次方程式、固有値問題を扱う） 初等関数、特殊関数の精度保証 ガンマ関数 ベッセル関数 楕円関数 超幾何級数 フルヴィッツのゼータ函数 数値積分の精度保証 （ガウス求積、二重指数関数型数値積分公式などの数値積分公式の誤差評価を行う） 非線形方程式の精度保証付き数値解法（Newton-Kantorovichの定理、Krawczyk法、区間ニュートン法、Durand-Kerner-Aberth法に関する研究が含まれる） ODE・PDEの精度保証付き数値解法（PDEでは有限要素法、関数解析の知識を駆使する） 積分方程式の精度保証付き数値解法 線形計画法の精度保証 計算幾何学における精度保証 HPC環境における精度保証 INTLAB: MATLAB/GNU Octaveを使用するライブラリである。 VERSOFT (MATLAB/INTLABで開発されたライブラリ) INTSOLVER (大域最適化問題を解くためのライブラリ、INTLABを使用して開発された) kv (C++によるライブラリである) kv - GitHub Arb C言語によるライブラリであり、様々な特殊関数の精度保証に対応している。 arb - GitHub JuliaIntervals - GitHub (Juliaによるライブラリ) その他、様々なライブラリが開発されている。 日本数学会・応用数学分科会 日本応用数理学会・計算の品質研究部会 日本シミュレーション学会・精度保証付シミュレーション技術研究委員会 数値解析シンポジウム (NAS) International Symposium on Scientific Computing, Computer Arithmetics and Validated Numerics (SCAN) 浮動小数点数 数値計算における誤差解析 誤差#計算誤差の種類 任意精度演算 計算機援用証明 区間演算 アフィン演算 自動微分 数値積分 数値線形代数 占部実 (ニュートン法に対する収束定理・誤差評価で知られる) 伊理正夫（日本応用数理学会・計算の品質研究部会の初代主査） 大石進一（精度保証付き数値計算の研究者） ゲッツ・アールフェルト ウルリヒ・クリッシュ ウォリック・タッカー(精度保証付き数値計算について著書がある) en:Vladik Kreinovich ニュートン＝カントロビッチの定理 ゲルシュゴリンの定理 ^ 山本哲朗によって発案された用語である ^ a b c 大石、他 (2018) ^ 荒井迅「精度保証付き数値計算の力学系への応用について (力学系の研究 : トポロジーと計算機による新展開 RIMS研究集会報告集)」『数理解析研究所講究録』第1485号、京都大学数理解析研究所、2006年4月、1-13頁、CRID 1050001202109463040、hdl:2433/58149、ISSN 18802818、NAID 110004541092。  ^ 荒井迅「精度保証付き数値計算の応用 : カオス : 渾沌を殺さず七竅を鑿つために」『数学セミナー』第47巻第11号、日本評論社、2008年11月、31-35頁、CRID 1050001339005746048、hdl:2115/42701、ISSN 03864960、NAID 120001909638。  ^ D. Michelucci (2000), "Reliable computations for dynamic systems". Proc. SCAN 2000 / Interval 2000 — 9th GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic, and Validated Numerics ^ Kühn, Wolfgang (1998). “Rigorously computed orbits of dynamical systems without the wrapping effect”. Computing (Springer) 61: 47-67. doi:10.1007/BF02684450. https://doi.org/10.1007/BF02684450.  ^ Loh, E., & Walster, G. W. (2002). Rump's example revisited. Reliable Computing, 8(3), 245-248. ^ 精度保証付き数値計算の必要性 ^ “スカッドミサイルの追撃・阻止の失敗による兵舎の被爆”. 失敗知識データベース. 特定非営利活動法人 失敗学会 (2018年1月30日). 2019年4月20日閲覧。 ^ “アリアン5型ロケットが制御不能で４０秒後に爆発”. 失敗知識データベース. 特定非営利活動法人 失敗学会 (2018年1月30日). 2019年4月20日閲覧。 ^ Rounding error changes Parliament makeup ^ 大石進一：「精度保証付き数値計算」、コロナ社、（1999年） ^ a b c 山本哲朗『数値解析入門』（増訂版）サイエンス社〈サイエンスライブラリ 現代数学への入門 14〉、2003年6月。ISBN 4-7819-1038-6。  ^ ガンマ関数の精度保証付き計算メモ (PDF) ^ Yamanaka, N., Okayama, T., & Oishi, S. I. (2015, November). Verified Error Bounds for the Real Gamma Function Using Double Exponential Formula over Semi-infinite Interval. In International Conference on Mathematical Aspects of Computer and Information Sciences (pp. 224-228). Springer, Cham. ^ Rump, S. M. (2014). Verified sharp bounds for the real gamma function over the entire floating-point range. Nonlinear Theory and Its Applications, IEICE, 5(3), 339-348. ^ 大石進一(2008): 電子情報通信学会技術研究報告. NLP, 非線形問題, 108, 55-57. ^ N. Yamamoto and N. Matsuda (2005): Trans. Jap. Soc. Indust. Appl. Math., 15, 347-359. ^ Johansson, F. (2019). Numerical Evaluation of Elliptic Functions, Elliptic Integrals and Modular Forms. In Elliptic Integrals, Elliptic Functions and Modular Forms in Quantum Field Theory (pp. 269-293). Springer, Cham. ^ Johansson, F. (2019). Computing Hypergeometric Functions Rigorously. ACM Transactions on Mathematical Software (TOMS), 45(3), 30. ^ Johansson, F. (2015). Rigorous high-precision computation of the Hurwitz zeta function and its derivatives. Numerical Algorithms, 69(2), 253-270. ^ Johansson, F. (2017). Arb: efficient arbitrary-precision midpoint-radius interval arithmetic. IEEE Transactions on Computers, 66(8), 1281-1292. ^ Johansson, F. (2018, July). Numerical integration in arbitrary-precision ball arithmetic. In International Congress on Mathematical Software (pp. 255-263). Springer, Cham. ^ Johansson, F., & Mezzarobba, M. (2018). Fast and Rigorous Arbitrary-Precision Computation of Gauss--Legendre Quadrature Nodes and Weights. en:SIAM Journal on Scientific Computing, 40(6), C726-C747. ^ a b Zeidler, E., Nonlinear Functional Analysis and Its Applications I-V. en:Springer Science & Business Media. ^ a b c 杉原正顯, & 室田一雄. (1994). 数値計算法の数理. 岩波書店. ^ a b c 非線形方程式に対する解の精度保証付き数値計算 (PDF) ^ 中尾充宏, & 山本野人. (1998). 精度保証付き数値計算 チュートリアル: 応用数理最前線. 中尾充宏, & 渡部善隆. (2011). 実例で学ぶ精度保証付き数値計算, サイエンス社. 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  ^ Oishi, S., & Tanabe, K. (2009). Numerical Inclusion of Optimum Point for Linear Programming. JSIAM Letters, 1, 5-8. ^ 尾崎克久「誤らない計算幾何学アルゴリズム」『数学セミナー』第47巻第11号、東京 : 日本評論社、2008年11月、36-39頁、CRID 1523951030398658176、ISSN 03864960。  ^ S.M. Rump: INTLAB - INTerval LABoratory. In Tibor Csendes, editor, Developments in Reliable Computing, pages 77-104. Kluwer Academic Publishers, Dordrecht, 1999. ^ Rohn, J. (2009). VERSOFT: verification software in MATLAB/INTLAB. ^ Montanher, T. M. (2009). Intsolver: An interval based toolbox for global optimization. Version 1.0. ^ Overview of kv – a C++ library for verified numerical computation, Masahide Kashiwagi, SCAN 2018. ^ Johansson, F. (2013). Arb: a C library for ball arithmetic. ACM Comm. Computer Algebra, 47(3/4), 166-169. ^ Sanders, D. P., Benet, L., & Kryukov, N. (2016). The julia package ValidatedNumerics. jl and its application to the rigorous characterization of open billiard models. SCAN 2016, 124. ^ ValidatedNumerics.jl: a new framework in Julia, David P. Sanders and Luis Benet, SCAN 2018. ^ Interval and Verified Software ^ 松田望『中心値・半径方式による精度保証付き多倍長区間演算ライブラリの開発』電気通信大学〈博士（工学） 甲第851号〉、2016年。 NAID 500000971971。https://uec.repo.nii.ac.jp/records/1291。  『精度保証付き数値計算の基礎』大石進一 編著、コロナ社、2018年。http://www.coronasha.co.jp/np/download/6965501695.pdf。2019年4月19日閲覧。  Warwick Tucker (1999). “The Lorenz attractor exists”. Comptes Rendus de l'Académie des Sciences - Series I - Mathematics 328 (12): 1197-1202. doi:10.1016/S0764-4442(99)80439-X. https://doi.org/10.1016/S0764-4442(99)80439-X 2019年4月20日閲覧。.  Tucker, W. (2011). Validated Numerics: A Short Introduction to Rigorous Computations. en:Princeton University Press. Moore, R. E., Kearfott, R. B., & Cloud, M. J. (2009). Introduction to Interval Analysis. SIAM. （区間演算に詳しい） Siegfried M. Rump (1988), “Algorithms for Verified Inclusions: Theory and Practice,”, in R. E. Moore, Reliability in Computing: The Role of Interval Methods in Scientific Computing, Boston: Academic Press, pp. 109-126., doi:10.15480/882.316, https://doi.org/10.15480/882.316 2019年4月20日閲覧。  Rump, S. M. (2010). Verification methods: Rigorous results using floating-point arithmetic. en:Acta Numerica, 19, 287-449. 大石進一 (1997), 非線形解析入門, コロナ社. （PDEの精度保証付き数値解法で用いる関数解析の知識を詳述している） 中尾充宏，渡部善隆：「実例で学ぶ精度保証付き数値計算」、サイエンス社（SGCライブラリ 85）、（2011年10月25日）。 プロジェクト 数学 ポータル 数学 INTLAB 応用数学分科会 精度保証付き数値計算の研究及びその偏微分方程式への応用、2012年度日本数学会秋季賞 精度保証付き数値計算学の確立 無限次元精度保証付き数値計算の新展開に向けての基礎的研究 精度保証ノート 計算機援用証明と精度保証付き数値計算 (PDF) 精度保証付き数値計算概論 (PDF) 精度保証付き数値計算のアイディアお教えします (PDF) Introduction to verified computation (PDF) Reproducing Rump's example