迭代法实验报告_米瑞琪_图文

迭代法实验报告_米瑞琪_图文

ID:42127485

大小:251.97 KB

页数:8页

时间:2019-09-08

迭代法实验报告_米瑞琪_图文_第1页
迭代法实验报告_米瑞琪_图文_第2页
迭代法实验报告_米瑞琪_图文_第3页
迭代法实验报告_米瑞琪_图文_第4页
迭代法实验报告_米瑞琪_图文_第5页
资源描述:

《迭代法实验报告_米瑞琪_图文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数值实验报告II实验名称迭代法求解Poisson方程实验时间2016年4月10日姓名米瑞琪班级信息1303学号1309010304成绩一、实验目的,内容1、理解并掌握二类迭代方法(Jacobi,Gauss-Siedel,SOR)迭代方法的构造原理;2、了解矩阵在matlab中不同的存储方式会导致不同的计算效率,学会采用最高效的方式存储矩阵;3、学会在计算机上实现迭代法,并比较不同方法的效率与误差;二、算法描述(―)Jacobi迭代对于线性方程组:Au=b(1)为了构造迭代格式,可将上式改写为:u=Tu+d(2)假定A的对角元均不为0,将A分裂为:A=D-B(3)其

2、中D为:D=diag(i4llzA2zrA33,…,^nn)⑷则(1)式可写为:Du=Bu+b(5)形成Jacobi迭代:酬+1=o^B^+D^b(6)为了在迭代格式中不出现B,将B=D-A代入⑹式有:i?+i=(I-+D~xb(7)为了保证迭代格式的收敛,需要使迭代矩阵的谱半径p(T)Vl・(二)SOR迭代对于(1)式中的线性方程组,将A分裂为:A=D-L-U(8)其中L,U分别为A对应的上三角与下三角矩阵的负值。由Gauss-Siedel迭代格式的中间步骤:=Luk+1+Ruk+f(9)引入非零参数3作为松弛因子,则有:uk+i=uk+a)(uk+1—(10)

3、将(9)式代入(10)式,整理之后可以得到SOR迭代格式:(11)uk+1=(D-讥)一开(1一a))D+a)R]uk+(D-心一®计算可得最佳松弛因子为:21+V1-M2(12)其中“=cosnh(13)(三)Gauss-Siedel迭代(14)在SOR方法中令松弛因子3=1,则有ufe+1=则有迭代格式:Duk+1=Luk+1+Ruk+f(15)可见Jacobi迭代与Gauss-Siedel迭代的区别在于Jacobi迭代麻A分解为D,L+R,Gauss-Siedel迭代将A分解为D-L,Ro三.程序代码按照上述三种格式分别在matlab中实现,代码如下:(一)

4、Jacobi迭代说明:u为最终的运算结果,A为系数矩阵,tol为允许的最大迭代步数,steps记录当前已经经过的迭代步数,eps为规定的计算精度,uO为初值function[u.steps]=Jacobian_Iteration(A,uO,b,eps,tol)%uisthefinalresult,Aistheiterationmatrix,tolisthepermittedbiggeststep,%stepsshowshowmanystepsoftheiteration,epsistheprecisionofthe%result%u0为初值ifnargin<5to

5、l=100000;endifnargin<4eps=le-5;endsteps=0;[m,n]=size(A);ifm〜=nfprintfC^thenumberofcolumnsandrowsareunequal1);returnend%生成对角矩阵D,采用稀疏存储spdiags而不是diag可以大大节省内存空间并提高计算效率d二diag(A);el=ones(n,l);e2=zeros(nj);D=spdiags([e2de2],[-l0l],n,n);I=spdiags([e2ele2],[-l0l],n,n);%生成迭代矩阵M=I-(DA);%{[vecv

6、al]=eig(M);spec_r=max(max(abs(val)));%检矗迭代法是否收敛的话需要添加此段代码if(spec_r>=1)fprintfClnvaliditeration:thespectralradiusislargerthanV);u=u0;k=0;return;end%}d=Db;en-A^u0-b;%误差的计算采用前后两步迭代之间向量的差,提高计算效率whilemax(abs(eiT))>eps&&steps=tol)fpri

7、ntfCIterationexceedslimitJacobian);stepsu=u0;return;endu=uO;end(二)SOR迭代function[u,steps]=SOR_Iteration(A,uO,b,eps,tol)ifnargin<5tol=10000;endifnargin<4eps=le-5;end%检查矩阵是否是方阵[m,n]=size(A);ifm〜fprintfC^nvalidA:matrixdimentionsshouldagree1);endsteps=0;%生成迭代矩阵d=diag(A);el=zeros(nj);e2=one

8、s(n,l

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。