使用CG series method求解大型线性方程组:
AX = b
要求:A必须为对称正定
Gradient的意思是: 假设g(x) = AX - b, 她是f(x) = 1/2 transpose(X) A X - bX 的倒数,也就是梯度。
要使X=U使得 g(u) = 0, 那么就是求f(x)的最小值。
首先,假设一个初始点 X0, 从这个点出发,假定一个方向 P, 得到f(x)和这根直线相交的一个最小点
X1 = X0 + tP。
要保证这个点X1是最小点,f(X0 + tp) - f(X0) = 0,求出t的表达式。
接下来,我们需要确定的是P值。
不同的P值,需要不同的方法。
1)最快数法:
P= -r = AX0 - b
2)双共轭法
P0 = AX0 - b, P1需要与P0共轭,正交。
同时,为了更快的求解大型的线性方程组,Preconditioner 是必须的, 这样的方法叫做预优条件共轭梯度法。
通常的,有Jacobi 和SOR方法
A = Q - R
Q = CC
Jacobi和SOR选择不同的Q
Jacobi 的Q为 A中的对角线矩阵
SOR的Q = (D/w + L)Inverse(Q)/w (D/W + U)
((D/w + L)和D/W + U 比较容易求其Inverse)
本文介绍使用CG系列方法求解大型线性方程组的过程。强调了A必须是对称正定矩阵,并详细解释了梯度的概念及其在求解过程中的作用。文章还探讨了几种不同的求解方法,包括最快数法和双共轭法,并提到了预优条件共轭梯度法的重要性及两种常用的预处理方法:Jacobi和SOR。
946

被折叠的 条评论
为什么被折叠?



