您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数值分析实验五(金)
实验名称:实验五线性方程组的数值解法指导教师:数值分析实验组实验时数:2实验设备:安装了Matlab、C++、VF软件的计算机实验日期:2014年月日实验地点:第五教学楼北802或902实验目的:1.掌握线性方程组的迭代法和直接法的基本思想和基本步骤。2.理解各类数值解法的优缺点,并能自行编程求解。3.认识迭代法收敛的含义以及迭代法初值和方程组系数矩阵性质对收敛速度的影响,了解求解病态线性方程组的方法。实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2.需要一台准备安装WindowsXPProfessional操作系统和装有数学软件的计算机。实验内容及要求A题考虑方程组bHx的求解,其中系数矩阵H为Hilbert阵,njijihhHjinnji,,2,1,,11,)(,,这是一个著名的病态问题。通过首先给定解(例如取各个分量均为1)再计算出右端的办法给出确定的问题。(1)选择问题的维数为6,分别用列主元Gauss消去法、Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?(2)逐步增大问题的维数,仍然用上述方法来解它们,计算的结果如何?计算的结果说明了什么?分析产生结果的原因。B题用迭代法求解bAx,其中2020RA为五对角矩阵2020113241113224111134224111134224111342211342A(1)选取不同的初始向量(0)X及右端向量b,给定迭代误差要求,用Jacobi迭代法和Gauss-Seidel迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。(2)用SOR迭代法求上述方程组的解,松驰系数取21的不同值,在5)1()(10kkXX时停止迭代,记录迭代次数,分析计算结果与松驰系数的关系并得出你的结论。(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令()*xinvAb,即可求出上述各个方程组的解,并与上述方法求出的解进行比较。C题求解线性方程组11134.981.4987.023.116.427.199.103.601.3321xxx(1)用列主元高斯消去法求解上述方程组。(2)将方程组(1)中系数3.01改为3.00,0.987改为0.990,用列主元高斯消去法求解变换后的方程组,输出列主元行交换次序,解向量x及detA,并与(1)中结果比较。(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令()*xinvAb,即可求出上述各个方程组的解,并与列主元高斯消去法求出的解进行比较,体会选主元的方法具有良好的数值稳定性。D题任选一种你熟悉的方法解下列方程组1230.7290.810.90.68671110.83381.3311.211.11.000xxx说明:实验过程应包括对问题的简要分析、求解方法、求解步骤、程序及其必要的图表等内容。D题问题分析:由题可知,这是一个三阶线性方程组,对于求解这样的一个方程组,我认为运用高斯消去法求解较为简便。求解方法:这里我选择的是高斯列主元消去法求解,为此,需要编写两组程序,一组上三角系数矩阵的线性方程组程序,一组是高斯列主元消去法程序。求解步奏:首先,编写“上三角系数矩阵的线性方程组”程序:functionx=Uptriangle(A,b)%A表示线性方程组的系数矩阵%b表示的是线性方程组的常数向量N=size(A);n=N(1);fori=n:-1:1if(in)s=A(i,(i+1):n)*x((i+1):n,1);elses=0;endx(i,1)=(b(i)-s)/A(i,i);end然后,在编写“高斯列主元消去法”程序:function[x,XA]=GaussMain(A,b)%A表示线性方程组的系数矩阵%b表示线性方程组的常数向量%XA表示消元后的系数矩阵N=size(A);n=N(1);index=0;fori=1:(n-1)me=max(abs(A(1:n,i)));%选取列主元fork=i:nif(abs(A(k,i))==me)index=k;%保存列主元所在的行break;endendtemp=A(i,1:n);A(i,1:n)=A(index,1:n);A(index,1:n)=temp;bb=b(index);b(index)=b(i);b(i)=bb;%交换主行forj=(i+1):nif(A(i,i)==0)disp('对角元素为0!');return;endI=A(j,i);m=A(i,i);A(j,1:n)=A(j,1:n)-I*A(i,1:n)/m;b(j)=b(j)-I*b(i)/m;%消元endendx=Uptriangle(A,b)XA=A保存上面两个程序,然后在MATLAB命令窗口输入以下命令:A=[0.7290.810.9;111;1.3311.211.1];b=[1;1;1];[x,XA]=GaussMain(A,b)求解的结果为:x=1.0101-3.03033.0202XA=1.33101.21001.100000.14730.297500-0.0101由计算结果可知,方程组的一个近似解为1231.01013.03033.0202xxx,,。实验总结(由学生填写):高斯列主元消去法求解方程组是要利用矩阵的初等变换,将系数矩阵化为上三角矩阵。该方程的方法比较好
本文标题:数值分析实验五(金)
链接地址:https://www.777doc.com/doc-2387475 .html