16. 共役勾配法
2015/10/14GPGPU講習会16
連立一次方程式を解くためのアルゴリズム
係数行列が対称・正定値である連立一次方程式が対象
Hestenes and Stiefel(1952)によって提案
反復解法の性質を持ちながら,直接解法のように有限回の計
算で解が得られる
「世紀の大解法」ともてはやされた
丸め誤差に弱く,有限回の計算で終わらないこともある
Hestenes, Magnus R., Stiefel, Eduard (December, 1952). "Methods of Conjugate Gradients for
Solving Linear Systems". Journal of Research of the National Bureau of Standards 49 (6).
17. 共役勾配法のアルゴリズム
2015/10/14GPGPU講習会17
連立一次方程式Ax=bに対する共役勾配法
Ap 係数行列Aと
ベクトルpの積
( , ) ベクトル同士の
内積
Compute r(0)=b−Ax(0). Set p(0)=0,c2
(0)=0.
For k=1,…, until ||r||/||b|| < , Do
p(k) = r(k)+c2
(k−1)p(k−1)
c1
(k) = (r(k), r(k))/(p(k), Ap(k))
x(k+1) = x(k)+c1
(k)p(k)
r(k+1) = r(k)−c1
(k)Ap(k)
c2
(k) = (r(k+1), r(k+1))/{c1
(k)(p(k), Ap(k))}
EndDo
A 係数行列
x 解ベクトル
b 右辺ベクトル
r 残差ベクトル
p 補助ベクトル
||・|| l2−ノルム