计算方法 A 上机大作业张晓璐硕 4011 班学号: 3114009097 1
共轭梯度法求解线性方程组算法原理: 由定理 3
1 可知系数矩阵 A是对称正定矩阵的线性方程组Ax=b的解与求解二次函数1( )2TTf xx Axb x 极小点具有等价性,所以可以利用共轭梯度法求解1( )2TTf xx Axb x的极小点来达到求解Ax=b的目的
共轭梯度法在形式上具有迭代法的特征,在给定初始值情况下,根据迭代公式:(1)()( )kkkkxxd产生的迭代序列(1)(2)(3)xxx,,,
在无舍入误差假定下,最多经过n 次迭代,就可求得( )f x的最小值,也就是方程Ax=b的解
首先导出最佳步长k 的计算式
假设迭代点()kx和搜索方向()kd已经给定,便可以通过( )( )( )()kkf xd的极小化( )()min( )()kkf xd来求得,根据多元复合函数的求导法则得: ()()( )'( )()kkTkf xdd令'( )0 ,得到 : ( )( )( )( )k Tkkk TkrddAd,其中( )( )kkrbAx然后确定搜索方向( )kd
给定初始向量(0)x后,由于负梯度方向是函数下降最快的方向,故第一次迭代取搜索方向(0)(0)(0)(0)()drf xbAx
令(1)(0)00xxd其中(0)(0)0(0)(0)TTrddAd
第二次迭代时,从(1)x出发的搜索方向不再取(1)r,而是选取(1)(1)(0)0drd,使得(1)d与(0)d是关于矩阵 A 的共轭向量, 由此可求得参数0 : (1)(0)0(0)(0)TTrAddAd然后从(1)x出发,沿(1)d进行搜索得到(2)(1)(1)1xxd设已经求出(1)( )( )kkkkxxd,计算(1)(1)kkrbAx
令(1)(1)( )kkkkdrd,选取k ,使得