湖南大学电气与信息工程学院《数值计算》课程上机实验报告姓名:班级:学号:日期:指导老师:本次实验题号:第2次实验一.实验目的:了解gauss消去法和迭代法matlab算法实现求任意方程组的根。二.实验内容:用gauss消去法和迭代法求解下列线性方程组:263234323923321321321xxxxxxxxx1.求出gauss消去法的上三角矩阵和方程组的解321,,xxx,并在命令窗口显示;2.显示迭代法求解过程中所有结果(,,,,,,,,,321131211030201NNNxxxxxxxxx)要求求解精度达到10^-5.三.算法介绍或方法基础1)消去法:消元过程:设0)0(11a,令乘数)0(11)0(11/aamii,做(消去第i个方程组的ix)操作1im×第1个方程+第i个方程(i=2,3,.....n)则第i个方程变为1)1(2)1(2...ininibxaxa这样消去第2,3,。。。,n个方程的变元ix后。原线性方程组变为:)1()1(2)1(2)1(2)1(22)1(22)0(1)0(11)0(11...........nnnnnnnnnbxaxabxaxabxaxa这样就完成了第1步消元。回代过程:在最后的一方程中解出nx,得:)1()1(/nnnnnnabx再将nx的值代入倒数第二个方程,解出1nx,依次往上反推,即可求出方程组的解:其通项为3,...1-n2,-nk/)()1(1)1()1(kkknkjjkkjkkkaxabx高斯赛德尔迭代法:由雅可比迭代公式可知,在迭代的每一步计算过程中是用kx的全部分量来计算1kx的所有分量,显然在计算第i个分量1kix时,已经计算出的最新分量1111kikx,...,x没有被利用,从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第1k次近似1kx的分量1kjx加以利用,就得到所谓解方程组的高斯—塞德(Gauss-Seidel)迭代法.把矩阵A分解成ULDA(6)其中nna,...,a,adiagD2211,U,L分别为A的主对角元除外的下三角和上三角部分,于是,方程组(1)便可以写成bUxxLD即22fxBx其中bLDf,ULDB1212(7)以2B为迭代矩阵构成的迭代法(公式)221fxBxkk(8)称为高斯—塞德尔迭代法(公式),用量表示的形式为,...,,k,n,,ixaxabaxijnij)k(jij)k(jijiii)k(i21021111111(9)由此看出,高斯—塞德尔迭代法的一个明显的优点是,在电算时,只需一组存储单元(计算出1kix后kix不再使用,所以用1kix冲掉kix,以便存放近似解.四.程序1)消去法:functionx=gauss(A,b)n=length(b);A=[A,b];fork=1:(n-1)A((k+1):n,(k+1):(n+1))=A((k+1):n,(k+1):(n+1))...-A((k+1):n,k)/A(k,k)*A(k,(k+1):(n+1));A((k+1):n,k)=zeros(n-k,1);Aendx=zeros(n,1);x(n)=A(n,n+1)/A(n,n);fork=n-1:-1:1x(k,:)=(A(k,n+1)-A(k,(k+1):n)*x((k+1):n))/A(k,k);end2)迭代法:functionEX()a=input('请输入系数矩阵a:');b=input('请输入矩阵b:');N=input('请输入最大迭代次数N:');esp=input('请输入近似解的误差限:');ifany(diag(a))==0error('系数矩阵错误,迭代终止!')endD=diag(diag(a));X0=zeros(size(b));x1=0;x2=0;x3=0;X1=[x1;x2;x3];h=inv(D)*b;B=inv(D)*(D-a);B1=triu(B);B2=tril(B);k=1;fprintf('高斯-赛德尔迭代法');fprintf('第0次迭代得:')disp(X1');whilek=Nx1=h(1,1)+B1(1,:)*X0;X1=[x1;x2;x3];x2=h(2,1)+B1(2,:)*X0+B2(2,:)*X1;X1=[x1;x2;x3];x3=h(3,1)+B2(3,:)*X1;X1=[x1;x2;x3];ifnorm(X1-X0,inf)espfprintf('已满足误差限。')break;endX0=X1;fprintf('第%2d次迭代得:',k)disp(X1');k=k+1;endfprintf('满足误差限的高斯-赛德尔迭代近似解为:')disp(X1');fprintf('用高斯-赛德尔迭代法迭代次数为%d次',k-1)end五.实验结果迭代法:消去法:六.结果分析与解释①Gauss-Seidel迭代法收敛条件:迭代矩阵的普半径小于1;迭代矩阵的范数小于1;系数矩阵是占优矩阵。②Gauss消元法:在消元过程中可能出现主元为零的情形,使得消元过程无法继续下去。或者主元的绝对值很小,用作除数,可导致其他元数量级的严重增长和舍入误差的扩散,是计算结果不可靠。