资源描述:
《用jacobi迭代法,gauss-seidol迭代法求解线性方程组,讨论收敛性》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验六解线性方程组的迭代法一、实验目标1、理解求解线性方程组的两种迭代法的求解思想:Jacobi迭代法和Gauss-Seidel迭代法。2、掌握迭代法收敛的条件,并会判断Jacobi迭代法和Gauss-Seidel迭代法的收敛性。3、学会编程实现Jacobi迭代法和Gauss-Seidel迭代法,掌握终止迭代的技术(
2、X(Z_X⑷卜£或£>(予给的迭代次数))与发散性判断的方法。4、体会初始解X(0),松弛因子的选取,对计算结果的影响。二、实验问题42-386-542-20-21-42686-802-11610-1146200-1精确解:X*=(1,-1,0,-12100
3、0-365010-132-1035-13-119-167-332571726-33-42530—917342-12-713920128-3-24-8631,2,0,3,1,-1,2)丁•0''5_01213423,b=3546113238419-1-21解线性方程组AX=b.Q-5-1、'-8、(1)A=41-1,b=13,2-1一6‘「2丿(-215、<15、(2)A=4-81,b=—21;<4-1T丿<7丿42-40222-1-21-4-1141-80-216-1A=21-8-12243-3-44025-3-100063-3精确解:*X(1,-1,0,2,1,(5)三
4、对角形系数矩阵~4-10000—14-10000-14-10000-14-10000-14-1A=0000-1400000-1000000000000000000精确解:X*二(2,1,30,1,・2,(4)对称正定阵系数阵400_■0■320-6-35620-4-3323,b=4-10-39111-4-221142-15-4219_45_-1,0,2)10000__7_000050000-13000020000,b=6-1000-124-10014-14-10-40-14-1500-14__-5_3,0,1,-1)7'.三、实验要求1、试用Jacobi迭代法,Gauss
5、-Seidol迭代法求解线性方程组(1),(2),讨论收敛性。2、编写Jacobi迭代法,Gauss-Seidol迭代法解线性方程组的一般程序,对不同精度要求,如£=10一3,10二10一5,求解线性方程组(1),(2),由迭代次数体会该迭代法的收敛快慢。3、使用SOR方法求解方程组(3),(4),(5),选取松弛因子69=0.8,0.9,1,1.1,1.2等,观察松弛因子的不同取法对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者。附录一:《数值分析》实验报告(模板)【实验课题】用Jacobi迭代法,Gauss・Seidol迭代法求解线性方程组,讨论收敛性【实验目标
6、】1、理解求解线性方程组的Jacobi迭代法,Gauss-Seidel迭代法的求解思想。2、了解迭代法收敛的条件,会判断Jacobi迭代法和Gauss-Seidel迭代法的收敛性。学会编程实现Jacobi迭代法和Gauss-Seidel迭代法,掌握终止迭代的技术(x(z-X。)或k>(予给的迭代次数))与发散性判断的方法。【理论概述与算法描述】1・雅可比迭代法对于矩阵A,A=D-L-U,令M=D,贝!)A=D-N,则雅克比迭代法其中B-I-1/DA=DA-1(L+U)=J„由雅可比迭代法得分量计算公式。计鼻时・・・X);所以aiiXi=一XaijXj—YaijXj+2冃>
7、=-,因此雅可比迭代法得计算公式x°=(X;,X;•…•••邓HXf+i=(b-^a..x^)/a,i=l,2,3・・・・・・・,k=0,l,22•高斯塞德尔迭代法令M=D-L,A=M-N,得B=(D-L)A-1U=G,G为高斯塞德尔迭代法的迭代aiiXi+l=知兀「-XaiJX,J+9矩阵,得到闫円,所以高斯塞德尔计算公式为兀°=(X:,X;xi+l=(-工aijxlj+l~£ayxlj+勺)/陽冃ei=l,2,3・・・・・・・,k=0,l,2・・・・・【实验问题】用Jacobi迭代法,Gauss-Seidol迭代法求解线性方程组,判断收敛性【实验过程与结果】1.理解两
8、种迭代法的计算思想,掌握方法推到计算公式2•用matlab编程实现3.对实验结果进行分析,比较两种方法,并判断收敛性【结果分析、讨论与结论】两种方法得到的结果一样,雅可比k=17x=-0.1348-1.08293.92032•高斯塞德尔k=17x=-0.1348-1.08293.9203【附程序】1.雅可比程序算法functionx=jacobi(A,b,xO,toI)n=length(b);x=zeros(n,l);x=xO+l;k=0;whilenorm(x-xO)>toldisp(fjacobifails*)break;