预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《数值分析》实验报告一、实验目的与要求1.掌握高斯消去法的基本思路和迭代步骤;2.培养编程与上机调试能力。二、实验内容1.编写用高斯消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证.(1)(2)2.编写用列主元高斯消元法解线性方程组的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,所以此方程组无解.')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(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=RB<n,所以此方程组有无穷多解.')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=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);endelsedisp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')endend实验过程:1(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]=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中利用逆矩阵法检验结果:(1)在commandwindows中直接运行命令:A=[0.1012.3043.555;-1.3473.7124.623;-2.8351.0725.643];b=[1.183;2.137;3.035];X=A\b运行结果为:X=-0.39820.01380.3351(2)在commandwindows中直接运行命令:A=[521;28-3;1-3-6];b=[8;21;1;];X=A\b运行结果为: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(