,mrmrtmAsmstm
xm1xmmsm
rm1rmmAsm,rtmrtmmATtm,如果xm1满足精度要求,则停止
(3)计算参数,与向量,mrm1rtm1rmrtm
sm1rm1msm
stm1rtm1mstm,置mm1转(2)
CG方法
CG法用来解对称且正定方程组十分有效,但若是拿来解非对称或是非正定的线性方程组则会发生中断。它是借由迭代的方式产生一序列的方向向量用来更新迭代解以及残向量,虽然产生的序列会越来越大,但是却只需要存储少数的向量。当系数矩阵A相当大而且稀疏,此时CG法几乎就是高斯消去法。CG法理论上虽然保证最多
步能解出线性方程组Axb的解,但是若系数矩阵是病态的,此时累进误差会让CG法在
步后无法求得充分精确的近似解。CG算法:
f(1)计算r0bAx0,选取s0r0,置j0
(2)计算参数jrjrjAsjsj,更新向量xj1xjjsj与残向量
rj1rjjAsj,若xj满足精度要求,则停止
(3)计算,置,转(2)j1rj1rj1rjrjsj1rj1j1sj
jj1
CG法是解正定对称线性方程组最有效的方法之一,该方法充分利
用了矩阵A的稀疏性,每次迭代的主要计算量是向量乘法。
GMRES方法
GMRES算法要求系数矩阵A是非奇异,非对称的
维方阵。GMRES
算法利用Ar
oldi变换构造一正交基Vmv1v2vm来表示Krylov子空间m。
GMRES方法把方程组的求解化为一个极小问题的求解,不去直接求
x1转而去解此极小问题,这是GMRES方法的独到之处。
z
bAz2
r0AVmym2v1AVmym2Vm1e1Hmym
2e1Hmym2
GMRES算法的收敛性完全取决于系数矩阵A的特征值的性质。
GMRES算法:
(1)计算r0bAx0,
r0r0
,1
2
v1
r0
,置
j1
(2)计算wjAvj
(3)依次对i12
,计算与j
hijwjvi
wjwjhijvi
(4)计算hj1j,若hj1j0,则置mj,转(6)
(5)计算vj1,若jm,则置jj1,转(2)
(6)求
ym
argmi
z
e1
Hmz
,计算
2
xm
x0
Vmym
求解最小二乘问题
ym
argmi
z
e1
Hmz
的算法:
2
f(1)令g1,i1
(2)计算,置
hi2i
h2i1i
12
c
hii
s
hi1i
hii
(3)置向量,计算(表示thii1m
hii1mctshi1i1mhi1i1mchi1i1mst
hii1m
矩阵第i行从i1列到m列的元素构成的列向量)
(4)置t0gi,计算gict0gi1st0(5)若im,转(2)
(6)依次对jmm11,计算gjgjhjmgm
hjj1gj1
所得到的
hjj
g1g2gm即为所求的ym
GMRES算法允许Krylov子空间维数增加到
,而且总是在最大迭
代次数
内终止运算;另一种重启型GMRES算法严格要求子空间维数
为一个定值m,r