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