共轭梯度法预处理18页PPT
- 格式:ppt
- 大小:1.92 MB
- 文档页数:18
预处理共轭梯度预处理共轭梯度是一种用于解决线性方程组问题的迭代算法,它在解决大规模问题时具有极高的效率和可靠性。
本文将介绍预处理共轭梯度算法的原理、基本步骤和优点等内容。
一、预处理共轭梯度算法的原理预处理共轭梯度算法是一种求解线性方程组Ax=b的迭代算法。
它是共轭梯度算法的一种改进,利用预处理矩阵M-1将原矩阵A进行预处理,使得求解线性方程组的收敛速度更快。
预处理矩阵M-1的选取通常需要满足两个条件:M-1必须易于求解,并且M-1与A的条件数应该较小,以保证算法的稳定性。
二、预处理共轭梯度算法的基本步骤预处理共轭梯度算法的基本步骤如下:1. 给定线性方程组Ax=b,设初值x0,残量r0=b-Ax0,设P0=M-1r0,初始共轭方向为d0=P0。
2. 循环执行以下步骤:(1)计算Adi,计算当前步长αi=rTi di/ diT Adi,更新解向量x=x+αi di。
(2)计算残量ri+1=ri-αi Adi,如果ri+1尺度小于某个精度要求,则跳转到第5步。
(3)利用预处理矩阵M-1,计算Pi+1=M-1 ri+1。
(4)计算βi+1=ri+1Ti+1 Pi+1/ riTi,更新共轭方向di+1=Pi+1+βi+1di。
(5)如果达到精度要求或迭代次数到达预设值,则停止迭代。
三、预处理共轭梯度算法的优点预处理共轭梯度算法相比于共轭梯度算法有如下优点:1. 收敛速度更快:预处理共轭梯度算法通常只需要很少的迭代次数即可达到预设的精度要求。
2. 内存占用低:预处理共轭梯度算法只需要存储一些预处理矩阵的信息,内存占用相比于直接求解矩阵A要少得多。
3. 适用于大规模问题:由于预处理矩阵通常是稀疏矩阵,而且其尺寸相对于矩阵A要小得多,因此预处理共轭梯度算法适用于解决大规模问题。
四、总结预处理共轭梯度算法是解决线性方程组问题的一种高效迭代算法,它在解决大规模问题时具有明显的优势。
在实际应用中,预处理共轭梯度算法和其他一些线性方程组求解算法通常结合使用,以达到更好的效果。
4.3共轭梯度法4.3.1共轭方向法定义4.3.1设A 是n ×n 对称正定矩阵,d 1,d 2,是n 维非零矢量,如果d 1T Ad 2=0则称d 1和d 2是A-共轭的,简称共轭的设d 1,d 2,...,d m 是R n 中一组非零向量,如果d i T Ad j =0,i ≠j ,j,i=1,2,...,k则d 1,d 2,...,d m 是A-共轭的,简称共轭的,也称它们是一组A 共个方向定理4.3.3设x 0∈Rn 是任意初始点,对于极小化二次函数min f(x)=1/2 x T Ax-b T x 共轭方向法至多经n 步精确线性搜索终止;且每一x i+1都是f(x)在x 0和方向d 1,d 2,....,di, 所张成的线性流形{|x x=x 0+,0j i j j da ∑=j a ∀}中的极小点。
4.3.4共轭梯度法共轭梯度法是一个典型的共轭方向法,他的每一个搜索方向是相互共轭的,而这些搜索方向d k 仅仅是负梯度方向-g k 与上一次迭代的搜索方向d k-1组合。
因此,存储量小,计算方便。
定理4.3.6对于正定二次函数,采用精确线性搜索的共轭梯度法在m ≦n 步后终止,且对1≦i≦n成立下列关系式:d i T Ad j=0,j=0,1,...,i-1,g i T Ag j=0,j=0,1-1,d i T Ag i= - g i T g I[g0,g1,...,g i]=[g0,Ag0,,...,A i g0][d0,d1,...,d i]=[g0,Ag0,,...,A i g0]其中[g0,g1,...,g i]和[d0,d1,...,d i]分别表示g0,g1,...,g i及d0,d1,...,d i张成的子空间,[g0,Ag0,,...,A i g0]表示g0的i阶Krylov子空间。
定理4.3.9(FR共轭梯度法的总体收敛性定理)假定f R n R在有界水平集L={x R n|f(x)≦f(x0)}上连续可微,且有下界,那么采用精确线性搜索的F-R共轭梯度法产生的序列{x k}至少有一个聚点是驻点,即1当{x k}是有穷数列时,其最后一个点是f(x)的驻点;2当{x k}是无穷数列时,它必有聚点,且任一聚点都是f(x)的驻点。