数値解析 誤差の発生と伝播

数値解析

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/11/09 03:28 UTC 版)

誤差の発生と伝播

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

丸め誤差

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

打ち切り誤差

打ち切り誤差とは、数学的には繰り返しを無限に続けた極限では真の解を与える計算法を、無限回の操作を行うことは現実にはできないので、繰り返しをある有限回までで打ち切って得られた近似解の真の解との差である。たとえば右の欄にある を解く問題で、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. ^ ピタゴラスの定理によれば、各辺が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. ^ 小澤一文:「導関数を用いない非線形スカラー方程式の高速多倍長数値解法」、日本応用数理学会論文誌、31巻(2021)2号、pp.44-62。url="https://doi.org/10.11540/jsiamt.31.2_44"
  25. ^ The Singular Value Decomposition and Its Applications in Image Compression Archived 2006年10月4日, at the Wayback Machine.
  26. ^ Davis, P. J., & Rabinowitz, P. (2007). Methods of numerical integration. Courier Corporation.
  27. ^ Weisstein, Eric W. "Gaussian Quadrature." From MathWorld--A Wolfram Web Resource. mathworld.wolfram.com/GaussianQuadrature.html
  28. ^ 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.
  29. ^ 森正武:数値解析における二重指数関数型変換の最適性, 数学(日本数学会), Vol. 50, No. 3 (1998), pp. 248–264.
  30. ^ 手塚集、「数値多重積分に関する話題(<特集>数値計算)」 『応用数理』 1998年 8巻 4号 p.267-276, doi:10.11540/bjsiam.8.4_267, 日本応用数理学会
  31. ^ Geweke, J. (1995). Monte Carlo simulation and numerical integration. Federal Reserve Bank of Minneapolis, Research Department.
  32. ^ a b 田端正久; 偏微分方程式の数値解析, 2010. 岩波書店.
  33. ^ 三井斌友 et. al. (2004). 微分方程式による計算科学入門. 共立出版.
  34. ^ a b 登坂宣好, & 大西和榮. (2003). 偏微分方程式の数値シミュレーション. 東京大学出版会.
  35. ^ 森正武. (1986) 有限要素法とその応用. 岩波書店.
  36. ^ 菊池文雄. (1999). 有限要素法概説 [新訂版]. サイエンス社.
  37. ^ 菊池文雄. (1994). 有限要素法の数理. 培風館.
  38. ^ 有限要素法で学ぶ現象と数理―FreeFem++数理思考プログラミング―, 日本応用数理学会 監修・大塚 厚二・高石 武史著, 共立出版.
  39. ^ LeVeque, Randall (2002), Finite Volume Methods for Hyperbolic Problems, Cambridge University Press.
  40. ^ Quarteroni, A., Saleri, F., & Gervasio, P. (2006). Scientific computing with MATLAB and Octave. Berlin: Springer.
  41. ^ Gander, W., & Hrebicek, J. (Eds.). (2011). Solving problems in scientific computing using Maple and Matlab®. en:Springer Science & Business Media.
  42. ^ Barnes, B., & Fulford, G. R. (2011). Mathematical modelling with case studies: a differential equations approach using Maple and MATLAB. Chapman and Hall/CRC.
  43. ^ Khattree, R., & Naik, D. N. (2018). Applied multivariate statistics with SAS software. SAS Institute Inc..
  44. ^ Wagner III, W. E. (2019). Using IBM® SPSS® statistics for research methods and social science statistics. Sage Publications.
  45. ^ Pollock III, P. H., & Edwards, B. C. (2019). An IBM® SPSS® Companion to Political Analysis. Cq Press.
  46. ^ Babbie, E., Wagner III, W. E., & Zaino, J. (2018). Adventures in social research: Data analysis using IBM SPSS statistics. Sage Publications.
  47. ^ Aldrich, J. O. (2018). Using IBM® SPSS® Statistics: An interactive hands-on approach. Sage Publications.
  48. ^ Stehlik-Barry, K., & Babinec, A. J. (2017). Data Analysis with IBM SPSS Statistics. Packt Publishing Ltd.
  49. ^ Gumley, L. E. (2001). Practical IDL programming. Elsevier.
  50. ^ 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.
  51. ^ 大野修一. (2009). Scilab 入門: フリーソフトで始める数値シミュレーション. CQ出版.
  52. ^ 上坂吉則. (2010). Scilab プログラミング入門. 牧野書店.
  53. ^ Thanki, R. M., & Kothari, A. M. (2019). Digital image processing using SCILAB. Springer International Publishing.
  54. ^ Octaveの精義 - フリーの高機能数値計算ツールを使いこなす, 松田七美男 (2011)
  55. ^ Ihaka, R., & Gentleman, R. (1996). R: a language for data analysis and graphics. Journal of computational and graphical statistics, 5(3), 299-314.
  56. ^ Yagnik, J. (2014). PSPP: a free and open source tool for data analysis (No. 2014-03-21).
  57. ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
  58. ^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
  59. ^ Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
  60. ^ Speed comparison of various number crunching packages Archived 2006年10月5日, at the Wayback Machine.
  61. ^ Maeder, R. E. (1991). Programming in mathematica. Addison-Wesley Longman Publishing Co., Inc..
  62. ^ Stephen Wolfram. (1999). The MATHEMATICA® book, version 4. en:Cambridge University Press.
  63. ^ Shaw, W. T., & Tigg, J. (1993). Applied Mathematica: getting started, getting it done. Addison-Wesley Longman Publishing Co., Inc..
  64. ^ 中村健蔵. (1998). Mathematica で絵を描こう. 東京電機大学出版局.
  65. ^ 椎原浩輔. (2000). Mathematica による金融工学. 東京電機大学出版局.
  66. ^ 吉本堅一, & 松下修己. (2004). Mathematica で学ぶ振動とダイナミクスの理論. 森北出版.
  67. ^ Beltzer, A. I. (1995). Engineering analysis with Maple/Mathematica. en:Academic Press.
  68. ^ Mathematicaによる数値計算, R.D.Skeel ・J.B.Keiper 著・玄光男・辻陽一・尾内俊夫 共訳, 共立出版, 1995.
  69. ^ Mathematica によるテンソル解析, 野村靖一 著, 共立出版, 2019.
  70. ^ Marasco, A., & Romano, A. (2001). Scientific Computing with Mathematica: Mathematical Problems for Ordinary Differential Equations; with a CD-ROM. en:Springer Science & Business Media.
  71. ^ Zimmermann, P., Casamayou, A., Cohen, N., Connan, G., Dumont, T., Fousse, L., ... & Bray, E. (2018). Computational Mathematics with SageMath. SIAM.
  72. ^ 吉村忠与志, 吉村三智頼, 佐々和洋, & 青山義弘. (2009). Excel で数値計算の解法がわかる本. 秀和システム.
  73. ^ 渋谷道雄, & 渡邊八一. (2001). Excel で学ぶ信号解析と数値シミュレーション. 株式会社 オーム社.






数値解析と同じ種類の言葉


固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「数値解析」の関連用語

数値解析のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



数値解析のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの数値解析 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2022 GRAS Group, Inc.RSS