反復法 (数値計算)

反復法(はんぷくほう、英: iterative method)とは、数値解析分野における手法のうち、反復計算を用いるものの総称。これに対し、有限回の手順で解を得る数値解法は直接法(英: direct method)と呼ばれる。反復法では、適当な初期点 x 0 {\displaystyle x_{0}} から出発して反復式 x i + 1 = x i + d i {\displaystyle x_{i+1}=x_{i}+d_{i}} によって点列 { x i } {\displaystyle \{x_{i}\}} を生成し最終的に最適解に収束させようとする。アルゴリズムが単純であるために古くから用いられ、これまで様々な関数族 { f ( X ) } {\displaystyle \{f(\mathbf {X} )\}} が提案されてきた。 与えられた関数f についてf (x) = 0 を満たす値x を得ることを目的とする。反復法の一般的なアルゴリズムは以下のようになる： 初期値x0 ∈ Rn を定める。i = 0 とおく。 漸化式 x i + 1 = g ( x i ) {\displaystyle x_{i+1}=g(x_{i})} によりxi + 1 を求める。ここでg はf より決まる関数である。 適当な判断基準 r ( x i , x i + 1 ) ≤ ϵ ( ϵ > 0 ) {\displaystyle r(x_{i},x_{i+1})\leq \epsilon \quad (\epsilon >0)} が成り立てば（このことを収束と表現する）停止し、xi を解とする。そうでなければi → i + 1 とし、ステップ2へ戻る。通常、判断基準には r ( x i , x i + 1 ) = | x i + 1 − x i | {\displaystyle r(x_{i},x_{i+1})=|x_{i+1}-x_{i}|} などが採られる。 関数g の取り方によって種々の方法がある。 関数f が適当に滑らかな関数ならば、f の零点を求めるための関数g を g ( x ) = x − f ( x ) f ′ ( x ) {\displaystyle g(x)=x-{\frac {f(x)}{f'(x)}}} ととれば、これはニュートン法となる。これは収束する場合は2次収束 (英: Quadratic convergence) となる。すなわち、根を a {\displaystyle a} 、 Δ x i ≜ x i − a {\displaystyle \Delta x_{i}\triangleq x_{i}-a} とし、 Δ x i + 1 = f ′ ′ ( a ) 2 f ′ ( a ) ( Δ x i ) 2 + O [ Δ x i ] 3 {\displaystyle \Delta x_{i+1}={\frac {f^{\prime \prime }(a)}{2f^{\prime }(a)}}(\Delta x_{i})^{2}+O[\Delta x_{i}]^{3}} ハレー法（英語版）では g ( x ) = x − f ( x ) f ′ ( x ) − f ″ ( x ) f ( x ) 2 f ′ ( x ) {\displaystyle g(x)=x-{\frac {f(x)}{f'(x)-{\frac {f''(x)f(x)}{2f'(x)}}}}} ととる。これは収束する場合は3次の収束となる。すなわち、 Δ x i + 1 = 3 ( f ′ ′ ) 2 − 2 f ′ f ′ ′ ′ 12 ( f ′ ) 2 ( Δ x i ) 3 + O [ Δ x i ] 4 {\displaystyle \Delta x_{i+1}={\frac {3(f^{\prime \prime })^{2}-2f^{\prime }f^{\prime \prime \prime }}{12(f^{\prime })^{2}}}(\Delta x_{i})^{3}+O[\Delta x_{i}]^{4}} 固有値問題に対するべき乗法 ヤコビ法 (固有値問題) 数値線形代数における共役勾配法 二分法 デュラン＝カーナー法 ブレント法 区間ニュートン法 上記アルゴリズムでは、i +1 回目の近似解 xi+1 は直前の近似解 xi のみの関数であるが、これを一般化した不動点反復法または l 点反復法は x i + 1 = g ( x i , x i − 1 , … , x i − l + 1 ) , l ≥ 1 {\displaystyle x_{i+1}=g(x_{i},x_{i-1},\ldots ,x_{i-l+1}),\qquad l\geq 1} という形で表される。ニュートン法は l = 1、割線法は l = 2 の場合である。反復関数 g は f (α) = 0 を満たす真の解 α に対し g ( α , α , … , α ) = α {\displaystyle g(\alpha ,\alpha ,\ldots ,\alpha )=\alpha } を満たす。このことから α は g の不動点 (英: Fixed point) と呼ばれる。 l = 1 の場合、この反復法の収束性についての十分条件として、次の不動点定理が成り立つ：不動点反復法 x i + 1 = g ( x i ) {\displaystyle x_{i+1}=g(x_{i})} は、反復関数 g が以下の条件を満たすとき唯一の不動点 α に収束する。 g(x) は区間 I = [a, b] で連続。 すべての x ∈ I に対して g(x) ∈ I。 すべての x, y ∈ I, x ≠ y に対して | g ( x ) − g ( y ) | < L | x − y | {\displaystyle |g(x)-g(y)|<L|x-y|} を満たす、x, y に無関係な定数 L (0 ≦ L < 1) が存在する。 不動点定理の条件が成り立つならば、適当な初期値 x0 ∈ I を選んで反復計算を行うと、xi は区間 I 内に唯一つ存在する不動点 α に収束することが示せる。 ^ a b 矢部2006、126頁。 ^ a b c d e f g h i j 山本哲朗『数値解析入門』（増訂版）サイエンス社〈サイエンスライブラリ 現代数学への入門 14〉、2003年6月。ISBN 4-7819-1038-6。  ^ a b c d 森正武. 数値解析 第2版. 共立出版. ^ 戸川隼人. (1977). 共役勾配法. シリーズ新しい応用の数学. ^ a b c 『精度保証付き数値計算の基礎』大石進一 編著、コロナ社、2018年。 ^ 小澤一文『Cで学ぶ数値計算アルゴリズム』共立出版、2008年、41頁。ISBN 978-4-320-12221-5。  矢部博『工学基礎 最適化とその応用』（初版）数理工学社、2006年3月25日。ISBN 4-901683-34-9。  藤野清次, & 張紹良. (1996). 反復法の数理. 朝倉書店. 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. Kelley, C. T. (1995). Iterative methods for linear and nonlinear equations. SIAM. Ortega, J. M., & Rheinboldt, W. C. (1970). Iterative solution of nonlinear equations in several variables. SIAM. Kelley, C. T. (1999). Iterative methods for optimization. SIAM. Samuel, J. L. S., & Pizzo, K. J. T. (1972). Iterative methods for nonlinear optimization problems. Prentice-Hall, Englewood Cliffs.