文档详情

数值分析4..doc

发布:2017-01-10约5.06千字共11页下载文档
文本预览下载声明
2.迭代法 仔细研究迭代法就会发现在逐个求的分量时,当计算到时,实际上前面的个分量,,…,都已求得,但却被弃之不用,而仍用旧分量计算.直观上,可以想象新计算出的分量可能要比旧的要准确些,因此设想一旦新的分量已求出,马上就用新的分量替代,即在迭代中求时用,,…,分别替代,,…,,称这种方法为迭代法,简称迭代. 一般地,迭代法的具体格式如下: 其矩阵表示式为: 整理得 其中,=,,称为迭代矩阵. 注:(1)的特征方程 利用上式计算出矩阵的特征值,根据谱半径可以判别出迭代是否收敛. (2)迭代法简单且每次迭代只需作矩阵和向量的一次乘法,比较适合于“平行计算”,不足之处是需要两个向量存储空间来存储和;迭代只需一个向量存储空间,一旦计算出立即存入的位置,节省一套存储单元,这是对迭代的改进.在某些情况下它也起到加速收敛的作用.但它是一个典型的“串行算法”,每步迭代中,必须依次计算各个解分量. (3)可以证明,当系数阵是严格对角占优或为对称正定阵时,迭代是收敛的. 更一般地,我们有: 定理:设迭代矩阵为非负矩阵(即),则下列关系有且只有一个成立: ①==0 ②0<<<==1 ④1<<迭代矩阵非负时,迭代与迭代或同时收敛,或同时发散;同时收敛时,迭代比迭代快. (4)用类似的方法可以在中编制迭代程序:建立名为的文件名 %using Gauss-Seidel iterative to solve linear algebraic equations ax=b function [y,r,n]=seidel(a,b,x0,e) disp(Gauss-Seidel iteration on solving linear equations) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); G=(D-L)\U; f=(D-L)\b; y=G*x0+f; n=1; while norm(y-x0,inf)=e x0=y; y=G*x0+f; n=n+1; end y r=norm(y-x0,inf) n 给定方程组 试判别迭代和迭代的收敛性,若收敛,对初值,求满足的解. 解:A=[8 -1 1;2 10 -1;1 1 -5]; b=[1;4;3]; D=diag(diag(A)); U=-triu(A,1); L=-tril(A,-1); B=D\(L+U); G=(D-L)\U; s=eig(B); t=eig(G); p1=max(abs(s)) p1 = 0.2266 p2=max(abs(t)) p2 = 0640 可以看出,迭代和迭代的谱半径都小于1,因而两种算法都是收敛的.但迭代的谱半径更小一些,因而比迭代收敛速度要快. x0=[0;0;0]; e=1e-3; y=jacobi(A,b,x0,e) Jacobi iteration on solving linear equations y = 0.2250 0.3056 -0.4938 r = 2.8950e-004 n = 6 y=seidel(A,b,x0,e) Gauss-Seidel iteration on solving linear equations y = 0.2250 0.3056 -0.4939 r = 5.2148e-004 n = 4 3.其它迭代法简介 对于大规模的稀疏方程组,迭代和迭代是两种基本迭代方法,并且代表了两种典型的算法:平行算法和串行算法.此外,还有一些带参数的算法,如: 算法(逐次超松弛法):在迭代法基础上发展得到的,其迭代格式: 称为松弛因子(relaxation factor). 算法(同步迭代法):是在迭代基础上发展得到的,其迭代格式是: 这两种算法都牵涉到参数的选取.对方法,只有当方程组的系数阵具有一些特殊性质,如:对称正定的三角阵等才能求得最优的松弛因子 其它情况,要反复试验才能求得比较满意的,选得恰当的才能使方法起到加速作用,一般的取值在1与1.7之间.对算法,当对称正定时,可以验证当 时,收敛;当 时收敛最快.当为三对角或五对角阵时,可以解析的得到的最大、最小特征值,并且容易验证:,此时法即为方法. 4.算法: 可以证明,算法的迭代矩阵为 =, 其中,矩阵与迭代方法中相同. 根据这一公式,可以用简单的编制算法程序如下: 建立文件名,内容为: %using
显示全部
相似文档