资源描述:
《数值设计方法课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、设计成绩:重庆邮电大学信息与计算科学专业《数值计算方法》课程设计线性方程组的求解方法姓名:班级:学号:设计时间:2012.6.3——2012.6.11指导教师:罗燕17一、课程设计目的1.在误差允许的范围内(计算精度为),在,在循环次数较少的情况下,雅可比迭代法、高斯-塞德尔迭代法以及选择适当的松弛因子用SOR迭代法编程求解方程组.2.进一步加深对Matlab的学习。3.通过上机操作,更好地锻炼实践动手能力。二、课程设计内容题目:取计算精度为,用雅可比迭代法、高斯-塞德尔迭代法以及选择适当的松弛因子用SOR迭代法编程求
2、解方程组:三、问题的分析(含涉及的理论知识、算法等)3.1雅可比迭代法3.1.1理论知识设有n元线性方程组AX=b,其中系数矩阵A的对角元素0(i=1,2,3,…,n)从方程组的第i个方程中可以解出,可得到以下等价方程组(1.1)17记,其中,D为A的对角线矩阵,L为A的下三角阵,U为A的上三角阵.即则式(1.1)可用矩阵形式写为:令于是(1)式又可写为(1.2)迭代计算的过程为:首先取:X(0)=(x10,x20,…,xn0)T将其代入(1.1)右端得:即X(1)=BX(0)+d再将X(1)代入式(1)右端得,求的X
3、(2)=BX(1)+d如此反复进行迭代,一般地X(k+1)=BX(k)+d,k=0,1,2,⋯(1.3)即:(1.4)由此即得到一个向量序列X(k),若X(k)k→∞X*,则X*就是方程组AX=b的解,这种求解线性方程组(1.1)解的方法称为雅克比迭代法,矩阵B称为迭代矩阵.为了便于编制程序,可将(1.3)改写成如下形式:17,当,则输出,结束。否则,执行下一步。最大迭代次数(max_iter)设定,当max_iter>=50,可认为该迭代法不收敛,终止程序。3.2高斯赛德尔迭代法3.2.1理论知识仔细研究雅克比迭代法
4、我们不难发现,在逐个求的分量时,分量,,…,都已求得,但却未被利用,而是仍用旧分量,,…,进行计算。事实上,最新计算出来的分量更比旧的分量接近方程新的分量求得后,组的准确解。因此,设想当新的分量求得后,马上用它来代替旧的分量,则可能会更快的接近方程组的准确解。基于这种设想构造的迭代公式就称为高斯—赛德尔迭代法。其具体迭代过程如下:任取X(0)=(x10,x20,…,xn0)T,第一次迭代为反复迭代,便得到下面的迭代公式:17(2.1)类似地,(1)式可用矩阵形式表示为:上式两端左乘D得移项得因为(i=1,2,…,n),
5、所以行列式,故将上式两端左乘得令则(2.2)迭代公式(1)或(2)称为解线性方程组AX=b的高斯—赛德尔迭代法,矩阵G称为迭代矩阵。为了便于编制程序,可将(1)式改写为如下形式:(2.3)由于当新的分量求得后,便马上用它来代替旧的分量。因此高斯—赛德尔迭代法与雅克比迭代法相比有一个明显的优点,就是上机计算时已不需要两组工作单元存放和,而仅需一组工作单元用来存的分量。当计算出就冲掉旧分量17,其计算量与雅克比迭代法相比,但计算速度加快且储量又小,故高斯—赛德尔迭代法可看做是雅克比迭代法的一种修正。3.3SOR迭代法3.3
6、.1理论知识松弛迭代法是高斯-赛德尔迭代法的一种加速方法,其基本思想是将高斯-赛德尔迭代法得到的第k+1次近似解向量X(k+1)与第k次近似解向量X(k)作加权平均,当权因子(松弛因子)ω选取适当时,加速效果很显著。因此,这一方法的关键是如何选取最佳松弛因子,现具体介绍如下:设有线性方程组AX=b将矩阵A分解为A=I-B,则该方程组等价于:X=BX+d(3.1)于是迭代公式为:X(k+1)=BX(k)+d(3.2)由于第k次近似解X(k)并非AX=B的解,故b-AX(k)≠0.令r(k)=b-AXk其中r(k)成为剩余
7、向量。于是(3.2)可改写为:X(k+1)=I-AXk+b=X(k)+b=X(k)+b-AX(k)=X(k)+r(k)(k=0,1,2……)上式说明,应用迭代法实际上是用剩余向量r(k)来改进解的第k次近似,也就是说,第k+1次近似是由第k次近似加上剩余向量r(k)而得到的。为了加速X(k+1)的收敛速度,可考虑给r(k)乘上一个适当因子ω,从而得到一个加速迭代公式:X(k+1)=X(k)+ω(b-AX(k))(3.3)其中ω成为松弛因子。式的分量形式为:Xi(k+1)=Xi(k)+ω(bi-j=1naijxj(k))
8、(3.4)i=1,2,…n;k=0,1,2,…只要松弛因子ω选择得当,由上式算出的第k+1次近似就会更快地接近方程组AX=b的解,从而可以达到加快收敛速度的目的。考虑到高斯-赛德尔迭代法的程序设计简单,且已充分利用了最新计算出来的分量的信息,故依上述加速收敛思想,对高斯-赛德尔迭代法加以修正,便得到下面的逐次超松弛迭代法,简称SO