资源描述:
《线性方程组迭代解法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.实验六:线性方程组迭代解法1)实验目的•熟悉Matlab编程;•学习线性方程组迭代解法的程序设计算法2)实验题目1.研究解线性方程组Ax=b迭代法收敛速度。A为20阶五对角距阵要求:(1)选取不同的初始向量x0及右端向量b,给定迭代误差要求,用雅可比迭代和高斯-赛德尔迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。(2)用SOR迭代法求解上述方程组,松弛系数ω取1<ω<2的不同值,在时停止迭代.记录迭代次数,分析计算结果并得出你的结论。2.给出线性方程组,其中系数矩阵为希尔伯特矩阵:,假设若取分别用雅可比迭代法及SOR迭代()求解,比
2、较计算结果。3)实验原理与理论基础1.雅克比(Jacobi)迭代法算法设计:①输入矩阵a与右端向量b及初值x(1,i);②按公式计算得2.高斯――赛得尔迭代法算法设计:1.输入矩阵a与右端向量b及初值x(1,i).范文..2.(i=1,2,…,n)3.超松驰法算法设计:①输入矩阵a与右端向量b及初值x(1,i)。②,4)实验内容第一题实验程序:1.雅克比迭代法:function[]=yakebi(e)%输入矩阵a与右端向量b。fori=1:20a(i,i)=3;endfori=3:20forj=i-2a(i,j)=-1/4;a(j,i)=-1/4;endendfori=2:
3、20forj=i-1a(i,j)=-1/2;a(j,i)=-1/2;endendb=[2.21.71.51.51.51.51.51.51.51.51.51.51.51.51.51.51.51.51.72.2];k=1;n=length(a);fori=1:nx(1,i)=1;%数组中没有第0行。endwhilek>=1fori=1:nm=0;%此步也可以用ifj~=i条件判定一下。forj=1:(i-1)m=m+a(i,j)*x(k,j);endforj=(i+1):nm=m+a(i,j)*x(k,j);end范文..x(k+1,i)=(b(i)-m)/a(i,i);end
4、l=0;%判定满足条件使循环停止迭代。fori=1:nl=l+abs(x(k+1,i)-x(k,i));endifl5、.51.51.51.51.51.51.72.2];k=1;n=length(a);fori=1:nx(1,i)=0;%数组中没有第0行。endwhilek>=1fori=1:np=0;q=0;forj=1:(i-1)p=p+a(i,j)*x(k+1,j);end范文..forj=(i+1):nq=q+a(i,j)*x(k,j);endx(k+1,i)=(b(i)-q-p)/a(i,i);endl=0;%判定满足条件使循环停止迭代。fori=1:nl=l+abs(x(k+1,i)-x(k,i));endifl6、,:)k3.SOR迭代法程序:function[]=caosongci(e,w)fori=1:20a(i,i)=3;endfori=3:20forj=i-2a(i,j)=-1/4;a(j,i)=-1/4;endendfori=2:20forj=i-1a(i,j)=-1/2;a(j,i)=-1/2;endendb=[2.21.71.51.51.51.51.51.51.51.51.51.51.51.51.51.51.51.51.72.2];k=1;n=length(a);fori=1:nx(1,i)=0;%数组中没有第0行。endwhilek>=1ifw>=2
7、
8、w<=1'请重
9、新输入w的值,w在1与2之间';范文..breakendfori=1:np=0;q=0;forj=1:(i-1)p=p+a(i,j)*x(k+1,j);endforj=i:nq=q+a(i,j)*x(k,j);endx(k+1,i)=x(k,i)+w*(b(i)-q-p)/a(i,i);endl=0;%判定满足条件使循环停止迭代。fori=1:nl=l+abs(x(k+1,i)-x(k,i));endifl