资源描述:
《数值分析实验报告6》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验名称:线性方程组迭代解法1)实验目的:1.熟悉Matlab编程。2.学习线性方程组迭代解法的程序设计算法。2)实验题目:第一题:研究解线性方程组Ax=b迭代法收敛速度。A为20阶五对角距阵要求:(1)选取不同的初始向量x0及右端向量b,给定迭代误差要求,用雅可比迭代和高斯-赛德尔迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。(2)用SOR迭代法求解上述方程组,松弛系数ω取1<ω<2的不同值,在时停止迭代.记录迭代次数,分析计算结果并得出你的结论。第二题:给出线性方程组其中系数矩阵
2、为希尔伯矩阵:,,i=1,2……n.假设,,若取n=6,8,10,分别用雅克比迭代及SOR迭代(w=1,1.25,1.5)求解.比较计算结果3)实验原理与理论基础:第一题:(一)雅克比(Jacobi)迭代法算法设计:①输入矩阵a与右端向量b及初值x(1,i);②按公式计算得(二)高斯――赛得尔迭代法算法设计:1.输入矩阵a与右端向量b及初值x(1,i).2.(i=1,2,…,n)(三)超松驰法算法设计:①输入矩阵a与右端向量b及初值x(1,i)。②,4)实验内容:第一题:代码:①雅克比(Jacobi)迭代法function
3、[]=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: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
4、=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);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、0a(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>=1fori=1:np=0;q=0;forj=1:(i-1)p=p+a(i,j
6、)*x(k+1,j);endforj=(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));endifl7、;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
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);end
10、forj=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