资源描述:
《高斯消元法matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数值分析》实验报告实验五班级:姓名:学号:成绩:一、实验目的与要求1.掌握高斯消去法的基本思路和迭代步骤;2.培养编程与上机调试能力。二、实验内容1.编写用高斯消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证.(1)(2)2.编写用列主元高斯消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证.(1)(2)三.MATLAB计算源程序1.用高斯消元法解线性方程组的MATLAB程序输入的量:系数矩阵和常系数向量;输出的量:系数矩阵和增广矩阵的秩RA,RB,方程组中未知量
2、的个数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,所以此方程组无解.')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:
3、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=RB4、tion[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,:);B(j+p-1,:)=
5、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=RB6、.7124.623;-2.8351.0725.643];b=[1.183;2.137;3.035];[RA,RB,n,X]=gaus(A,b)运行结果为:请注意:因为RA=RB=n,所以此方程组有唯一解.RA=3RB=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,所以此方程组有唯一解.RA=3RB=3n=3X=12-1在MATLAB中利用逆矩阵法检验结
7、果:(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;1;];X=Ab运行结果为:X=12-1两小题所得结果相同,检验通过2(1)编写列组高斯消元法MATLAB文件如下:clear;A=[0.1012.3043.555;-1.34
8、73.7124.623;-2.8351.0725.643];b=[1.183;2.137;3.035];[R