数计学院实验报告
专业名称 | 信计 | 班级 | 信计2101 | 学号 | 姓名 | 成长的宁宁 | |
实验课程 | MATLAB语言基础 | 实验成绩 | |||||
实验项目 | MATLAB矩阵分析与处理 | ||||||
实验类型 | 综合性 | 指导教师 | |||||
实验日期 | 年 月 日 | ||||||
一、实验目的 1. 掌握生成特殊矩阵的方法。 2. 掌握矩阵分析的方法。 3. 用矩阵求逆法解线性方程组。 二、实验要求 1. 根据实验内容,编写相应的MATLAB程序,并将程序及结果放置于相应位置。 2. 实验内容与结果采用小四号宋体、1.5倍行距进行排版,其中图片的宽度不超过8cm。 三、实验内容与结果 代码如下: E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([1,2]); A=[E R O S] a=[E,R+R*S O,S^2] A^2-a 运行结果: A = 1.0000 0 0 0.8147 0.9134 0 1.0000 0 0.9058 0.6324 0 0 1.0000 0.1270 0.0975 0 0 0 1.0000 0 0 0 0 0 2.0000 a = 1.0000 0 0 1.6294 2.7401 0 1.0000 0 1.8116 1.8971 0 0 1.0000 0.2540 0.2926 0 0 0 1.0000 0 0 0 0 0 4.0000 ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么? 代码编译: H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) 运行结果: H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 P = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70 Hh = 3.7493e-12 Hp = 1 Th = 4.7661e+05 Tp = 8.5175e+03 因为它们的条件数Th>Tp,所以pascal矩阵性能更好 3. 建立一个5阶矩阵,求它的行列式值、迹、秩和范数。 代码编辑: A=magic(5) d=det(A)%矩阵的行列式 t=trace(A)%矩阵的迹 r=rank(A)%矩阵的秩 c1=cond(A,1)%矩阵的一范数 c2=cond(A,2)%矩阵的二范数 cinf=cond(A,inf)%矩阵的行范数 运行结果 A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 d = 5.0700e+06 t = 65 r = 5 c1 = 6.8500 c2 = 5.4618 cinf = 6.8500 代码编辑: A=[-29 6 18;20 5 12;-8 8 5] [V,D]=eig(A) %全部特征值构成对角阵D,V是特征向量作为列向量构成 运行结果: A = -29 6 18 20 5 12 -8 8 5 V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 代码编辑: A=1./[2 3 4;3 4 5;4 5 6] b=[0.95;0.67;0.52] X=inv(A)*b %(1)问的方程解 b2=[0.95;0.67;0.53] X2=inv(A)*b %(2)问改变后的方程解 C=cond(A) %(3)问矩阵A的条件数 运行结果: A = 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 0.2500 0.2000 0.1667 b = 0.9500 0.6700 0.5200 X = 1.2000 0.6000 0.6000 b2 = 0.9500 0.6700 0.5300 X2 = 1.2000 0.6000 0.6000 C = 1.3533e+03 6. 建立A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。 代码编辑: A=magic(3) b1=sqrtm(A) b2=sqrt(A) b=b1*b2 运行结果: A = 8 1 6 3 5 7 4 9 2 b1 = 2.7065 + 0.0601i 0.0185 + 0.5347i 1.1480 - 0.5948i 0.4703 + 0.0829i 2.0288 + 0.7378i 1.3739 - 0.8207i 0.6962 - 0.1430i 1.8257 - 1.2725i 1.3511 + 1.4155i b2 = 2.8284 1.0000 2.4495 1.7321 2.2361 2.6458 2.0000 3.0000 1.4142 b = 9.9831 - 0.0935i 6.1919 - 0.5287i 8.3020 + 0.7207i 7.5920 - 0.1290i 9.1285 - 0.7294i 8.4626 + 0.9944i 7.8335 + 0.2225i 8.8318 + 1.2581i 8.4464 - 1.7152i 区别:sqrtm(A)就是类似A的数值平方根,这可由b1*b2=A结果看出而sqrt(A)则是对A中每个元素开根号 四、实验心得 通过本实验,我们学习了如何利用Matlab进行曲面面积估计和长度计算,并了解了这些计算在实际应用中的意义。同时,我们也认识到在计算过程中需要考虑的因素和细节,以提高计算的准确性和可靠性。 在(1)中,我们使用了Matlab的二维插值命令,计算出所观测区域近似的地表曲面方程。具体来说,我们首先定义了一个矩形区域,然后使用Matlab的插值命令,将其转换为一个曲面方程。通过三维曲面图,我们可以直观地看到曲面的形状和细节。 在 (2)中,我们利用所计算的地表曲面方程,计算出观测区域地表表面积的近似值。具体来说,我们可以利用积分的方法,计算出曲面的面积,然后得到表面积的近似值。这个过程需要考虑到曲面的形状和细节,以及积分的方法和公式。 在(3)中,我们编写程序,实现从矩形区域一边上任意一点到其对边上任意一点沿直线走向的地表曲线的近似长度的计算。具体来说,我们首先定义了一个矩形区域和一条直线,然后计算出直线与曲面的交点。接着,我们计算出交点到矩形边缘的距离,从而得到曲线的近似长度。这个过程需要考虑到直线的斜率和曲面的形状,以及距离的计算方法。 总的来说,本实验考察了利用Matlab进行曲面面积估计和长度计算的能力,同时也认识到在计算过程中需要考虑的因素和细节,以提高计算的准确性和可靠性 |