资源描述:
《高斯消元法MATLAB实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高斯消元法MATLAB实现《数值分析》实验报告一、实验目的与要求1.掌握高斯消去法的基本思路与迭代步骤;2.培养编程与上机调试能力。二、实验内容1.编写用高斯消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证、0.101x12.304x23.555x31.1835x12x2x38(1)1.347x13.712x24.623x32.137(2)2x18x23x3212.835x11.072x25.643x33.035x13x26x312.编写用列主元高斯消元法解线性方程组的MATLAB程序,
2、并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证、0.101x12.304x23.555x31.1835x12x2x38(1)1.347x13.712x24.623x32.137(2)2x18x23x3212.835x11.072x25.643x33.035x13x26x31三.MATLAB计算源程序1、用高斯消元法解线性方程组AXb的MATLAB程序输入的量:系数矩阵A与常系数向量b;输出的量:系数矩阵A与增广矩阵B的秩RA,RB,方程组中未知量的个数n与有关方程组解X及其解的信息、function[RA,RB,n,X]=
3、gaus(A,b)B=[Ab];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;ifzhica>0,disp('请注意:因为RA~=RB,所以此方程组无解、')returnendifRA==RBifRA==ndisp('请注意:因为RA=RB=n,所以此方程组有唯一解、')X=zeros(n,1);C=zeros(1,n+1);forp=1:n-1fork=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endendb=B(
4、1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);forq=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);高斯消元法MATLAB实现endelsedisp('请注意:因为RA=RB5、unction[RA,RB,n,X]=liezhu(A,b)B=[Ab];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;ifzhica>0,disp('请注意:因为RA~=RB,所以此方程组无解、')returnendifRA==RBifRA==ndisp('请注意:因为RA=RB=n,所以此方程组有唯一解、')X=zeros(n,1);C=zeros(1,n+1);forp=1:n-1[Y,j]=max(abs(B(p:n,p)));C=B(p,:);B(p,:)=B(j+p-1,:
6、);B(j+p-1,:)=C;fork=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);forq=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);endelsedisp('请注意:因为RA=RB7、0、1012、3043、555;-1、3473、7124、623;-2、8351、0725、643];b=[1、183;2、137;3、035];[RA,RB,n,X]=gaus(A,b)运行结果为:请注意:因为RA=RB=n,所以此方程组有唯一解、RA=3高斯消元法MATLAB实现RB=3n=3X=-0、39820、01380、3351(2)编写高斯消元法MATLAB文件如下:clear;A=[521;28-3;1-3-6];b=[8;21;1;];[RA,RB,n,X]=gaus(A,b)运行结果为:请注意:因为RA=RB=n
8、,所以此方程组有唯一解、RA=3RB=3n=3X=12-1在MATLAB中利用逆矩阵法检验结果:(1)在commandwindows中直接运行命令:A=[0、1012、3043、555;-1、3473、7124、623;-2、8351、0725、6