[[1 線形方程式の解法の選択]]&br; [[2 参考文献および参考書の記述]]&br; 線形方程式, &math(Ax=b); >>> 実対称/複素エルミート, &math(A=A^H); >>> 不定値 >>> CR 法 #contents --------------------------------------------- *概要 [#y944675d] -CR法(共役残差法)は1952年にStiefelによって提案されたエルミート線形方程式向けのKrylov部分空間法である. -初期近似解を&math(\vec{x}_0);, 対応する初期残差を&math(\vec{r}_0:=\vec{b}-A\vec{x}_0);と置く. この時, CR法の&math(k);反復目の近似解&math(\vec{x}_k);は, #br CENTER:&math(\vec{x}_k \in \vec{x}_0 + {\mathcal K}_k(A,\vec{r}_0), \quad {\mathcal K}_k(A,\vec{r}_0) := {\bf span}\{\vec{r}_0, A\vec{r}_0, \ldots, A^{k-1}\vec{r}_0 \}); #br のように, 初期近似解&math(\vec{x}_0);とクリロフ部分空間&math({\mathcal K}_k(A,\vec{r}_0));で張るアフィン空間に含まれ, 残差ベクトル&math(\vec{r}_k=\vec{b}-A\vec{x}_k);が #br CENTER:&math(\vec{r}_k \bot A{\mathcal K}_k(A,\vec{r}_0)); #br の直交条件(Petrov-Galerkin条件)を満たすように設定される. -CR法の残差ベクトル&math(\vec{r}_k=\vec{b}-A\vec{x}_k);は, 最小残差条件 #br CENTER:&math(\min \| \vec{r}_k \|_2); #br を満たし, 残差ノルム&math(\| \vec{r}_k \|_2);の単調減少性が保証される. -[[MINRES 法]]と数学的に同値である. -[[CG 法]]と異なり, 不定値な行列に対しても適用可能である. //--------------------------------------------- *導出 [#y765dbc2] 準備中 //--------------------------------------------- *アルゴリズム [#g3c09fe9] **CR法 [#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); + &math(\quad \alpha_k = (A\vec{r}_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_k = (A\vec{r}_{k+1},\vec{r}_{k+1})/(A\vec{r}_k,\vec{r}_k)); + &math(\quad \vec{p}_{k+1} = \vec{r}_{k+1} + \beta_k \vec{p}_k); + &math(\quad A\vec{p}_{k+1} = A\vec{r}_{k+1} + \beta_k A\vec{p}_k); +End For **前処理付きCR法 [#da0d7d55] +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); +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); + &math(\quad \alpha_k = (AK^{-1} \vec{r}_k, K^{-1}\vec{r}_k)/ (K^{-1}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 K^{-1}\vec{r}_{k+1} = K^{-1}\vec{r}_k - \alpha_k K^{-1}A \vec{p}_k); + &math(\quad \beta_k = (AK^{-1} \vec{r}_{k+1},K^{-1}\vec{r}_{k+1})/(AK^{-1} \vec{r}_k,K^{-1}\vec{r}_k)); + &math(\quad \vec{p}_{k+1} = K^{-1} \vec{r}_{k+1} + \beta_k \vec{p}_k); + &math(\quad A\vec{p}_{k+1} = AK^{-1} \vec{r}_{k+1} + \beta_k A\vec{p}_k); +End For //--------------------------------------------- *サンプルプログラム [#z4fb948d] 準備中 //--------------------------------------------- *適用事例 [#xb92758f] 準備中 *参考文献および参考書 [#t1b3c233] **原著論文 [#r3a47c2b] [22] Eduard Stiefel, Relaxationsmethoden bester strategie zur l¨osung linearer gleichungssysteme, Commentarii Mathematici Helvetici 1952; 29(1):157–179. **教科書 [#o9b766b8] [14] Yousef Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., SIAM: Philadelphia, PA, 2003.&br; P194