资源描述:
《jacobi迭代法 实验 matlab程序 数值分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、例1.求线性方程组得近似解。精确解为x*=[3,2,1]’。解:对方程进行移项就得记为Ax=b,或写为x=B0x+f,其中取初始值,代入原方程组可得再将把它代入可得.反复利用这个计算过程,得到一向量序列和一般的计算公式(迭代公式)简写为迭代到第10次有从此例看出,由迭代法产生的向量序列x(k)逐步逼近方程组的精确解x*.6.1常用迭代法定义1(ⅰ)对于给定的方程组x=Bx+f,用公式逐步代入求近似解的方法称为迭代法(或称为一阶定常迭代法,这里B与k无关).(ⅱ)如果存在(记为x*),称此迭代法收敛,显然x*就是方程组的解,否则称此迭代法发散.迭代法的流程图为:①为初始向量,②是判断
2、条件,即时停止运行③k是循环次数。④中带入初始值,然后赋给①Jacobi迭代法对一般方程组从第一个方程解出x1,第二个方程解出x2,…,记成用矩阵写法即x=Bx+g,B的对角元皆零,可拆成B=L+UL是B下三角部分,U是B上三角部分Jacobi迭代法如下述.任取初始近似x(0),对k=1,2,…计算直至║x(k+1)-x(k)║≤ε,预定的精度.用矩阵记号,即任取初始近似x(0),对k=1,2,…计算x(k+1)=Bx(k)+g,直至║x(k+1)-x(k)║≤ε(通常对迭代法限定最大迭代次数也是必要的).Jacobi迭代法的流程图为:在以上的流程图中,先读入数据,即先输入系数矩阵
3、A,常数向量b,初始值,停止条件和最大循环次数。图中是,在我们迭代公式中的。k是循环次数,N是最大循环次数。例2. 利用Jacobi方法求方程组的近似解。解把原方程改为任取初始近似x(0),对k=1,2,…计算直至║x(k+1)-x(k)║≤ε,预定的精度.此即Jacobi迭代法.计算结果如下表.kx1(k)x2(k)x3(k)000010.7200000000000.8300000000000.84000000000020.9710000000001.0700000000001.15000000000031.0570000000001.1571000000
4、001.24820000000041.0853500000001.1853400000001.28282000000051.0950980000001.1950990000001.29413800000061.0983375000001.1983374000001.29803940000071.0994416200001.1994416300001.29933498000081.0998111590001.1998111580001.29977665000091.0999364458001.1999364459001.299924463400101.0999785372701.19
5、99785372601.299974578340111.0999927693941.1999927693951.299991414906二实验部分本章实验内容:实验题目:Jacobi迭代法,Gauss-Saidel迭代法,SOR迭代法。实验内容:利用MATLAB,编制求Ax=b的各迭代计算方法的程序。实验目的:了解迭代法的运用性,进行各迭代法数值结果的比较,并找出一个计算量小的,使迭代法加速收敛的迭代方法。编程要求:①利用迭代法,初始向量为x(0)②同时利用Jacobi法和Gauss-Seidel法来进行对比。③利用SOR迭代法来进行对比。计算算法:①Jacobi迭代法的算法为:②
6、Gauss-Saidel迭代法的算法为:③SOR迭代法的算法为:实验例题⑴:条件:取实验例题⑵:条件:取选择适当的松弛因子。程序①:function[X,Y]=JacobiGS(A,b,p,p1,del,max)%A为线性方程组的系数矩阵,b为自由项,p和p1为两种迭代法的初始解,del为限制数,max为循环的限制次数。n=length(b);fork1=1:maxforj=1:nY(j)=(b(j)-A(j,[1:j-1])*p1(1:j-1)-A(j,[j+1:n])*p1(j+1:n))/A(j,j);ifj==1X(1)=(b(1)-A(1,[2:n])*p(2:n))/A
7、(1,1);elseifj==nX(n)=(b(n)-A(n,[1:n-1])*(X(1:n-1))')/A(n,n);elseX(j)=(b(j)-A(j,[1:j-1])*(X(1:j-1))'-A(j,[j+1:n])*p(j+1:n))/A(j,j);enderr=abs(norm(X'-p));reerr=err/(norm(X)+eps);p=X';if(err8、(reerr