MATLAB与科学计算实验报告1Gauss列主元消去法学号班级姓名指导教师易昆南实验题目Gauss列主元消去法评分1、设计(实习)目的运用高斯列主元消去法解线性方程组2、实验要求学会用高斯列主元消去法验证线性方程组的值的准确性,并能够掌握高斯列主元消去法所使用的情况(即在特定条件下如何选择高斯列主元消去法来尽可能的减小误差以提高值的精确性)3、实验原理高斯列主元消去法4、实验内容clc;clear;formatshortdisp('请输入未知数系数矩阵A:');A=input('A=');disp('请输入常数项列向量B:');B=input('B=');C=[A,B];[m,n]=size(A);s=1;answer=1;P=zeros(1,n);L=zeros(n);I=eye(n);whiles=nmax=abs(C(s,s));big=0;ifdet(C(s:n,s:n))==0disp('此方程无解');answer=0;break;endfori=s:nifmaxabs(C(i,s))max=abs(C(i,s));k=i;big=1;elsecontinueendendCifbig==1D=C(s,:);C(s,:)=C(k,:);C(k,:)=D;endCforp=n:(-1):(s+1)f=C(p,s)/C(s,s);forq=s:(n+1)C(p,q)=C(p,q)-f*C(s,q);endends=s+1;endE=C(:,1:n);ifanswer~=0fori=n:(-1):1X(i,1)=C(i,n+1);forj=(i+1):nX(i,1)=X(i,1)-E(i,j)*X(j,1);endX(i,1)=X(i,1)/E(i,i);enddisp('此方程的解为:')Xend5、实验结果请输入未知数系数矩阵A:A=[2,-1,3;4,2,5;1,2,0]请输入常数项列向量B:B=[1;4;7]运行结果:C=2-13142541207C=42542-1311207C=4.00002.00005.00004.00000-2.00000.5000-1.000001.5000-1.25006.0000C=4.00002.00005.00004.00000-2.00000.5000-1.000001.5000-1.25006.0000C=4.00002.00005.00004.00000-2.00000.5000-1.000000-0.87505.2500C=4.00002.00005.00004.00000-2.00000.5000-1.000000-0.87505.2500此方程的解为:X=2Gauss消去法9-1-6姓名指导教师实验题目Gauss消去法评分1、设计(实习)目的:求解下面的方程组2、实验内容:学会用高斯消去法验证线性方程组的值的准确性,并能够掌握高斯消去法和高斯列主元消去法所使用的情况(即在特定条件下如何选择高斯消去法来尽可能的减小误差以提高值的精确性)3、详细设计functionx=gauss(A,b)%高斯求解方程组%x=gauss(A,b)n=length(A);a=[A,b];fork=1:n-1maxa=max(abs(a(k:n,k)));ifmaxa==0return;endfori=k:nifabs(a(i,k))==maxay=a(i,k:n+1);a(i,k:n+1)=a(k,k:n+1);a(k,k:n+1)=y;break;endendfori=k+1:nl(i,k)=a(i,k)/a(k,k);a(i,k+1:n+1)=a(i,k+1:n+1)-l(i,k).*a(k,k+1:n+1);endend%回代ifa(n,n)==0returnendx(n)=a(n,n+1)/a(n,n);fori=n-1:-1:1x(i)=(a(i,n+1)-sum(a(i,i+1:n).*x(i+1:n)))/a(i,i);end4.实验结果:调用示例如下:A=[2,-1,3;4,2,5;1,2,0];b=[1;4;7];x=gauss(A,b)x=9-1-65.实验总结:实验分析:分别用直接三角分解法(Doolittle法)、高斯消去法、求解所导致的大误差,究其原因有以下两个方面:①在编写的函数代码中,消元过程的某一步找不到非零的对角线元素,最终导致计算中断;②虽然消元过程能够进行到底,但是有对角线元素为零,导致在回代求解过程无法进行下去,因此最终导致高误差的产生或是产生不确定的值。