欢迎来到天天文库
浏览记录
ID:52925716
大小:122.10 KB
页数:5页
时间:2020-04-01
《数值分析实验报告4.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数值分析实验报告1问题叙述:线性方程组应用与工程和科学领域中的很多问题,并且社会科学,商业及经济问题的定量研究有很大的关系,求解线性方程组的问题,不仅需要在工程技术中应用,而且在计算方法其他分支的研究中,比如之前学习的样条插值,最佳平方逼近,微分方程数值解等,求解线性方程组非常重要。解线性方程组的常用方法有雅各比迭代,高斯迭代和松弛迭代法等等。对于同一个问题,可以比较下各种方法的优劣。2问题分析:用雅各比迭代法,高斯迭代法,松弛因子迭代法求解方程组410100x10141010x52014101x2
2、3101410x54010141x25001014x66的收敛性,误差<0.0001的近似解及相应的迭代次数,迭代初始向量为零向量。3实验结果:雅各比迭代算法:>>x2=1.00002.00001.00002.00001.00002.0000k=28高斯迭代法:>>x2=1.00002.00001.00002.00001.00002.0000k=15松弛迭代法(松弛因子取1.334):>>x2=1.00002.00001.00002.00001.00002.0000k=
3、13结论:因为系数矩阵严格对角占优,用雅各比迭代与高斯迭代法求解均收敛。但是高斯迭代的速度明显比雅各比迭代法快。又因为系数矩阵对称正定,故当04、求A的下三角阵U=-triu(A,1);%求A的上三角阵B=D(L+U);f=Db;x=B*x0+f;n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend高斯-赛德尔迭代法:function[x,n]=gauseidel(A,b,x0,eps,M)ifnargin==3eps=1.0e-6;M=200;elseifnargin==4M=200;elseifnargin<3errorreturn;endD=diag5、(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵G=(D-L)U;f=(D-L)b;x=G*x0+f;n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=G*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend松弛迭代法:function[x,n]=SOR(A,b,x0,w,eps,M)ifnargin==4eps=1.0e-6;M=200;elseifnargin<4errorreturnel6、seifnargin==5M=200;endif(w<=07、8、w>=2)error;return;endD=diag(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵B=inv(D-L*w)*((1-w)*D+w*U);f=w*inv((D-L*w))*b;x=B*x0+f;n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend
4、求A的下三角阵U=-triu(A,1);%求A的上三角阵B=D(L+U);f=Db;x=B*x0+f;n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend高斯-赛德尔迭代法:function[x,n]=gauseidel(A,b,x0,eps,M)ifnargin==3eps=1.0e-6;M=200;elseifnargin==4M=200;elseifnargin<3errorreturn;endD=diag
5、(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵G=(D-L)U;f=(D-L)b;x=G*x0+f;n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=G*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend松弛迭代法:function[x,n]=SOR(A,b,x0,w,eps,M)ifnargin==4eps=1.0e-6;M=200;elseifnargin<4errorreturnel
6、seifnargin==5M=200;endif(w<=0
7、
8、w>=2)error;return;endD=diag(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵B=inv(D-L*w)*((1-w)*D+w*U);f=w*inv((D-L*w))*b;x=B*x0+f;n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend
此文档下载收益归作者所有