资源描述:
《利用共轭梯度法求解线性方程组》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、利用共辘梯度法求解线性方程组崔莹1012205052在自然科学和工程技术中很多问题的解决常常归结为解线性方程组,而这些方程组的系数矩阵大致可分为两种:低阶稠密炬阵和大型稀疏矩阵。而求解方程组的方法通常为直接法和迭代法。直接法用于较低阶方程组的求解,效率较高;迭代法更适用于高阶方程组的求解,常用的经典迭代法冇高斯■赛徳尔迭代法和雅各比迭代法,但收敛效率较低;共轨梯度法(CG)以较高的收敛速度而经常被采用。从理论上讲,一个n阶方程组最多迭代n步就可求出精确解。1直接法直接法就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。但实际计算中由于舍入误差的存在和影响,这种方法也只能得到线性方程
2、组的近似解,该方法是求解低阶稠密矩阵方程组的冇效方法。$11Cramer法则,Gauss消元法及其变形(LU分解法、Cholesky分解法、QR分解法)等。Matlab中,用矩阵除法“/”或直接求解线性方程组(见附录一),它是一个内部包含着许许多多的自适应算法,对超定方程用最小二乘法求解;对欠定方程因为它的解不唯一,Matlab给出所有解中范数最小的一个特解;对于三对角阵方程组,采用追赶法求解。2迭代法迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法。该方法具有对计算机的存贮单元需求少,程序设计简单、原始系数矩阵在让算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法。迭代法不是用有
3、限步运算求精确解,而是通过迭代产生近似解逼近精确解。如Jacobi迭代、Gauss-Seidel迭代、SOR迭代法等。在科学研究和大型工程设计中捉岀的求解问题,经离散后,常常归结为求解形如Ax二b的大型线性方程组,此时系数矩阵A和b是通过测量或其它方法得到的,但是在多数情况卜.方程可能是病态的,即A的条件数非常大。此时,我们仍然用Matlab中的常规算法,得到的解则可能不是真解。通常情况下,对系数矩阵A和方程的右端b作微小的扰动,再用上述方法求解,扰动后方程组的解与原方程组的解相差甚远。因此,从解决实际问题的角度出发,此时就不能用上述的普通求解法。如果用MATLAB屮线性方程组的非定常迭代法进
4、行求解,可能得到非常好的结果。求解大型线性方程组是科学计算中的热点Z-,已经有非常多的非定常迭代算法,其中有广义极小残余算法、拟最小残量法、共轨梯度法以及其它各种基于共轨梯度法设计的算法(有PCG、CGS、BICG、LSQR等)。在MATLAB中有gmres,bicg,qmr,cgs等适合求解大型线性方程组的算法函数,它们最基木的调用格式是X二函数名(A")。下面以共辘梯度法为例,解低阶线性方程组。3经典的共扼梯度标准算法一般的共扼梯度标准算法是考虑线性方程组Ax=h(1)的求解问题,其屮A为系数矩阵;兀为解向量;b为数据向量。具体地说,在应力应变问题的求解中,A表示为刚度矩阵,兀一般为结构的
5、应变位移;而b则表示结构的应力。定义1:设AeRfiXfi为对称正定矩阵,若向量p,qwR”满足(如,q)=qTAp=p1'Aq=0则称A-共辘(有时也称A■止交)。定义2:若{p⑴,p⑵,…,理}满足(如",沪))=0,jj=l,2,…,且Zh/。则称{"⑴丿⑵,…,/?)}为非零的不共辘向量组。下面结论显然成立:推论1:若{"/⑴,…,严”}为非零的久共轨向量组,贝U它构成疋中的一组基。推论2:若{理,卩⑴,…,$1}为非零的A•共辘向量组11(勿,沪))=0,心0,1,2,・・异-1,则—0o设x为线性代数方程组Ax=b的解,由推论2,如果{严,〃⑴,…,d'T}为非零的久共轨向量组,贝
6、吸可由{/艸丿⑴,…,,1}线性表示,即存在如tp…,tn_!使得x=tQp(0)+r,p(l)+...+p(M_1)于是心勿⑼+人勿⑴"=b可以将上面的结果写成如下的迭代格式:(2)兀的)二兀⑷+“/」*),兀"))=0,k=0,1,•••共辄梯度法实际上提供了一个构造A■共轨的基{严丿⑴,・・・,/尸)}的方法。它可以看成是由剩余向量(也即目标函数的负梯度向量)r{k}=b-AxW共轨正交化的结果。迭代终止的条件为口卅)^b-AxwQv10"o在共辘梯度法中,取初始向量兀⑼,并令〃⑼=严"-Ar叭设在迭代过程中已经产生了屮)及p⑴。在下一步的计算中,令x{k+i]=xw+tkpw其中-为优
7、化问题的解,即min/(*)+泸)/>0(心))"=(期巴册))构造严),使得(勿啊,严)二0,其中d")取如下严I)和理的线性组合形式#(如)=严
8、)+乞册)不难算出,(4)综上所述,可得到共轨梯度法算法如下:第一步:任取初始向量x(0),计算剩余向量rw=b-Ax{{并令p(0)=r(0),k=0o第二步:若严二°,贝IJ令兀=*'),算法终止。否则计算⑷⑺严)”))(勿化产)其屮-由式(3