资源描述:
《 高斯消元法MATLAB实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验内容1.编写用高斯消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证.(1)(2)MATLAB计算源程序1.用高斯消元法解线性方程组的MATLAB程序输入的量:系数矩阵和常系数向量;输出的量:系数矩阵和增广矩阵的秩RA,RB,方程组中未知量的个数n和有关方程组解及其解的信息.function[RA,RB,n,X]=gaus(A,b)B=[Ab];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;ifzhica>0,disp('请注意:因为RA~=RB,所以此方程组无解.')retu
2、rnendifRA==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(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=RB3、此方程组有无穷多解.')endend2.列主元消元法及其MATLAB程序用列主元消元法解线性方程组的MATLAB程序输入的量:系数矩阵和常系数向量;输出的量:系数矩阵和增广矩阵的秩RA,RB,方程组中未知量的个数n和有关方程组解及其解的信息.function[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=
4、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,:);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);en
5、delsedisp('请注意:因为RA=RB6、b=[8;21;1;];[RA,RB,n,X]=gaus(A,b)运行结果为:请注意:因为RA=RB=n,所以此方程组有唯一解.RA=3RB=3n=3X=12-1在MATLAB中利用逆矩阵法检验结果:(1)在commandwindows中直接运行命令:A=[0.1012.3043.555;-1.3473.7124.623;-2.8351.0725.643];b=[1.183;2.137;3.035];X=Ab运行结果为:X=-0.39820.01380.3351(2)在commandwindows中直接运行命令:A=[521;28-3;1-3-6];b=[8;21;
7、1;];X=Ab运行结果为:X=12-1两小题所得结果相同,检验通过2(1)编写列主高斯消元法MATLAB文件如下:clear;A=[0.1012.3043.555;-1.3473.7124.623;-2.8351.0725.643];b=[1.183;2.137;3.035];[RA,RB,n,X]=liezhu(A,b)运行结果:请注意:因为RA=RB=n,所以此方程组有唯一解.RA=3RB=3n=3X=-0.39820.01380.3351(2)编写列主高斯消元法的MATLAB文件如下:clear;A=[521;28-3;1-3-6];b=[