资源描述:
《大连理工大学矩阵与数值分析上机作业代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《矩阵与数值分析》上机作业实验报告陈晓学号:21204047机械工程学院教学班号:02任课教师:金光日习题1给定n阶方程组Ax=b,其中⎛61⎞⎛7⎞⎜⎟⎜⎟86115⎜⎟⎜⎟A=⎜⋱⋱⋱⎟,b=⎜⋮⎟⎜⎟⎜⎟⎜861⎟⎜15⎟⎜⎟⎜⎟⎝86⎠⎝14⎠T则方程组有解x=(1,1,⋯,1)。对n=10和n=84,分别用Gauss消去法和列主元消去法解方程组,并比较计算结果。1.1程序(1)高斯消元法n=10时,>>[A,b]=CreateMatrix(10)A=6100000000861000000008610000000086100000000861000000008610000
2、000086100000000861000000008610000000086b=7151515151515151514>>x=GaussMethod(A,b)x=1.00001.00001.00001.00001.00001.00001.00001.00001.00001.0000n=84时,>>[A,b]=CreateMatrix(84)>>x=GaussMethod(A,b)1.0e+008*0.00000.00000.00000.00000.00000.00000.00000.0000……-0.00010.0002-0.00030.0007-0.00130.0026-0.
3、00520.0105-0.02090.0419-0.08360.1665-0.33030.6501-1.25822.3487-4.02635.3684(2)列主元消去法n=10时,>>[A,b]=CreateMatrix(10)>>x=MainElementMethod(A,b)x=1.00001.00001.00001.00001.00001.00001.00001.00001.00001.0000n=84时,>>[A,b]=CreateMatrix(84)>>x=MainElementMethod(A,b)x=1.00001.00001.00001.00001.00001.0
4、0001.00001.00001.00001.00001.0000……1.00001.00001.00001.00001.2计算结果分析对于高斯消元法,当n=10时,得到的计算结果为x=(1.0000,1.0000,1.0000,1.0000,……,1.0000)T,恰好为精确值;但当n=84时,得到的计算结果却为x=(0.0000,0.0000,0.0000,……,-0.0001,0.0002,……,2.3487,-4.0263,5.3684)T,完全偏离了精确值。对于列主元消去法,当n=10时,得到的计算结果为x=(1.0000,1.0000,1.0000,1.0000,……
5、,1.0000)T,恰好为精确值;当n=10时,得到的计算结果为x=(1.0000,1.0000,1.0000,1.0000,……,1.0000)T,恰好为精确值。由于使用高斯消元法时可能会出现小主元作除数的情况,虽然在求解系数矩阵为10阶的方程时,由于步数较少,尚能求得精确解,但在求解求解系数矩阵为84阶的巨型方程时,由于求解步数太多,使得小主元作除数的情况累加,最终导致“大数除小数”的情况发生,因而所得解严重偏离精确解。而使用列主元消去法时,由于有效地避免了这一不利情况,因而无论是在求解系数矩阵为10阶还是84阶的方程时,都能得到精确解。1.3M文件1.3.1CreateMa
6、trix.mfunction[A,b]=CreateMatrix(n)%用于存放习题1的题目信息,并建立构造题目中矩阵的函数%对矩阵A赋值A1=6*ones(1,n);A2=ones(1,n-1);A3=8*ones(1,n-1);A=diag(A1)+diag(A2,1)+diag(A3,-1);%对向量b赋值b=15*ones(n,1);b(1)=7;b(n)=14;1.3.2GaussMethod.mfunctionx=GaussMethod(A,b)%高斯消元法返回方程Ax=b的解%x是方程的解%A为方程的系数矩阵%b为方程的常数矩阵n=length(b);%定义单位下三
7、角矩阵元胞数组,并将全部数组元素赋值为n阶单位阵l=cell(1,n-1);l(:)={eye(n)};U=A;fori=1:n-1forj=i+1:nl{i}(j,i)=-U(j,i)/U(i,i);endU=l{i}*U;end%计算L和UL=inv(l{1});fori=2:n-1L=L/l{i};endx=U(Lb);1.3.3MainElementMethod.mfunctionx=MainElementMethod(A,b)%列主元消去法返回方程Ax=b的解%x是