[[1 線形方程式の解法の選択]]&br; [[2 参考文献および参考書の記述]]&br; 線形方程式, &math(Ax=b); >>> 実非対称/複素非エルミート, &math(A\not=A^H); >>> 安定性重視 >>> リスタート版: >>> GCR(m) 法 #contents --------------------------------------------- *概要 [#q400e116] -GCR(m)法は1983年にEisenstat, Elman, Schultzよって提案された非エルミート線形方程式向けのKrylov部分空間法である. -GCR(m)法は1983年にEisenstat, Elman, Schultzによって提案された非エルミート線形方程式向けのKrylov部分空間法である. -リスタート版[[GCR 法]]. :リスタート|アルゴリズムの反復を所定のリスタート周期&math(m);で停止し, 得られた近似解を初期近似解として再びアルゴリズムを適用する. -リスタートを適用することで, Arnoldi原理の長い漸化式に由来するGCR法の問題点を解決出来る. 一方で, 収束性は悪化する. -GCR法と同様残差ノルム&math(\|\vec{r}_k\|_2);の単調減少性は保証される. //--------------------------------------------- *導出 [#y765dbc2] 準備中 //--------------------------------------------- *アルゴリズム [#g3c09fe9] **GCR(m)法 [#x87397e4] +Set an initial guess &math(\vec{x}_0); +Compute &math(\vec{r}_0=\vec{b}-A\vec{x}_0, \vec{p}_0 = \vec{r}_0); +For &math(k = 0, 1, 2, \ldots, m-1); + &math(\quad \alpha_k = (A\vec{p}_k, \vec{r}_k)/ (A\vec{p}_k, A\vec{p}_k)); + &math(\quad \vec{x}_{k+1} = \vec{x}_k + \alpha_k \vec{p}_k); + &math(\quad \vec{r}_{k+1} = \vec{r}_k - \alpha_k A \vec{p}_k); + &math(\quad \beta_{i,k} = -(A\vec{p}_i,A\vec{r}_{k+1})/(A\vec{p}_i,A\vec{p}_i), \quad i = 1, 2, \ldots, k); + &math(\quad \vec{p}_{k+1} = \vec{r}_{k+1} + \sum_{i=0}^k \beta_{i,k} \vec{p}_i); + &math(\quad A\vec{p}_{k+1} = A\vec{r}_{k+1} + \sum_{i=0}^k \beta_{i,k} A\vec{p}_i); +End For +Set &math(\vec{x}_0=\vec{x}_m); and go to 2 **前処理付きGCR(m)法 [#da0d7d55] +Set an initial guess &math(\vec{x}_0); +Compute &math(\vec{r}_0=\vec{b}-A\vec{x}_0, \vec{p}_0 = K^{-1}\vec{r}_0); +For &math(k = 0, 1, 2, \ldots, m-1); + &math(\quad \alpha_k = (A\vec{p}_k, \vec{r}_k)/ (A\vec{p}_k, A\vec{p}_k)); + &math(\quad \vec{x}_{k+1} = \vec{x}_k + \alpha_k \vec{p}_k); + &math(\quad \vec{r}_{k+1} = \vec{r}_k - \alpha_k A \vec{p}_k); + &math(\quad \beta_{i,k} = -(A\vec{p}_i,AK^{-1}\vec{r}_{k+1})/(A\vec{p}_i,A\vec{p}_i), \quad i = 1, 2, \ldots, k); + &math(\quad \vec{p}_{k+1} = K^{-1}\vec{r}_{k+1} + \sum_{i=0}^k \beta_{i,k} \vec{p}_i); + &math(\quad A\vec{p}_{k+1} = AK^{-1}\vec{r}_{k+1} + \sum_{i=0}^k \beta_{i,k} A\vec{p}_i); +End For +Set &math(\vec{x}_0=\vec{x}_m); and go to 2 //--------------------------------------------- *サンプルプログラム [#z4fb948d] 準備中 //--------------------------------------------- *適用事例 [#xb92758f] 準備中 *参考文献および参考書 [#y80eb057] **原著論文 [#t30bb800] [5] Stanley C. Eisenstat, Howard C. Elman and Martin H. Schultz, Variational iterative methods for nonsymmetric systems of linear equations, SIAM Journal on Numerical Analysis 1983; 20(2):345–357. **教科書 [#i8e4b4af] [14] Yousef Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., SIAM: Philadelphia, PA, 2003.&br; P194–196 [23] Masaaki Sugihara and Kazuo Murota, Theoretical Numerical Linear Algebra, Iwanami Press: Tokyo, 2009, (in Japanese).&br; P164–173 [29] 藤野 清次, 張 紹良, 反復法の数理 (応用数値計算ライブラリ) 朝倉書店, 1996.&br; P63–70