Matlab上机实验答案(共37页)_第1页
Matlab上机实验答案(共37页)_第2页
Matlab上机实验答案(共37页)_第3页
Matlab上机实验答案(共37页)_第4页
Matlab上机实验答案(共37页)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab上机实验答案实验一 MATLAB运算基础1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。(1) z1=2*sin(85*pi/180)/(1+exp(2)z1 = 0.2375(2) ,其中 x=2 1+2i;-0.45 5; z2=1/2*log(x+sqrt(1+x2)z2 = 0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i(3) a=-3.0:0.1:3.0; z3=(exp(0.3.*a)-exp(-0.3.*a)./2.*sin(a+0.3)+log(0

2、.3+a)./2)( z33=(exp(0.3*a)-exp(-0.3*a)/2.*sin(a+0.3)+log(0.3+a)/2)可以验证z3=z33,是否都为1)z3 = Columns 1 through 5 0.7388 + 3.1416i 0.7696 + 3.1416i 0.7871 + 3.1416i 0.7913 + 3.1416i 0.7822 + 3.1416i Columns 6 through 10 0.7602 + 3.1416i 0.7254 + 3.1416i 0.6784 + 3.1416i 0.6196 + 3.1416i 0.5496 + 3.1416i C

3、olumns 11 through 15 0.4688 + 3.1416i 0.3780 + 3.1416i 0.2775 + 3.1416i 0.1680 + 3.1416i 0.0497 + 3.1416i Columns 16 through 20 -0.0771 + 3.1416i -0.2124 + 3.1416i -0.3566 + 3.1416i -0.5104 + 3.1416i -0.6752 + 3.1416i Columns 21 through 25 -0.8536 + 3.1416i -1.0497 + 3.1416i -1.2701 + 3.1416i -1.527

4、1 + 3.1416i -1.8436 + 3.1416i Columns 26 through 30 -2.2727 + 3.1416i -2.9837 + 3.1416i -37.0245 + 0.0000i -3.0017 + 0.0000i -2.3085 + 0.0000i Columns 31 through 35 -1.8971 + 0.0000i -1.5978 + 0.0000i -1.3575 + 0.0000i -1.1531 + 0.0000i -0.9723 + 0.0000i Columns 36 through 40 -0.8083 + 0.0000i -0.65

5、67 + 0.0000i -0.5151 + 0.0000i -0.3819 + 0.0000i -0.2561 + 0.0000i Columns 41 through 45 -0.1374 + 0.0000i -0.0255 + 0.0000i 0.0792 + 0.0000i 0.1766 + 0.0000i 0.2663 + 0.0000i Columns 46 through 50 0.3478 + 0.0000i 0.4206 + 0.0000i 0.4841 + 0.0000i 0.5379 + 0.0000i 0.5815 + 0.0000i Columns 51 throug

6、h 55 0.6145 + 0.0000i 0.6366 + 0.0000i 0.6474 + 0.0000i 0.6470 + 0.0000i 0.6351 + 0.0000i Columns 56 through 60 0.6119 + 0.0000i 0.5777 + 0.0000i 0.5327 + 0.0000i 0.4774 + 0.0000i 0.4126 + 0.0000i Column 61 0.3388 + 0.0000i(4) ,其中t=0:0.5:2.5 t=0:0.5:2.5; z4=(t=0&t=1&t=2&t A=12 34 -4;34 7 87;3 65 7;

7、B=1 3 -1; 2 0 3;3 -2 7; A+6*Bans = 18 52 -10 46 7 105 21 53 49 I=eye(3); A-B+Ians = 12 31 -3 32 8 84 0 67 1(2) A*Bans = 68 44 62 309 -72 596 154 -5 241 A.*Bans = 12 102 4 68 0 261 9 -130 49(3) A3ans = 37226 233824 48604 247370 149188 600766 78688 454142 118820 A.3ans = 1728 39304 -64 39304 343 65850

8、3 27 274625 343(4) A/Bans = 16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68.0000 BAans = 109.4000 -131.2000 322.8000 -53.0000 85.0000 -171.0000 -61.6000 89.8000 -186.2000(5) A,Bans = 12 34 -4 1 3 -1 34 7 87 2 0 3 3 65 7 3 -2 7 A(1,3,:);B2ans = 12 34 -4 3 65 7 4 5 1 11 0 19 20 -

9、5 403. 设有矩阵A和B(1) 求它们的乘积C。(2) 将矩阵C的右下角32子矩阵赋给D。(3) 查看MATLAB工作空间的使用情况。 A=(reshape(1:25,5,5); B=3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11; C=A*BC = 93 150 77 258 335 237 423 520 397 588 705 557 753 890 717 D=C(3:5,2:3)D = 520 397 705 557 890 717 whos Name Size Bytes Class Attributes A 5x5 200 double B 5x3

10、120 double C 5x3 120 double D 3x2 48 double 4. 完成下列操作:(1) 求100,999之间能被21整除的数的个数。(2) 建立一个字符串向量,删除其中的大写字母。 n=100:999; l=find(rem(n,21)=0); length(l)ans =43 ch=aegbBOIEG0je23RGnc; wz=find(ch=A&ch ch(wz)=ch =aegb0je23nc实验二 MATLAB矩阵分析与处理1. 设有分块矩阵,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证。 E=eye(3); R=rand(

11、3,2); O=zeros(2,3); S=diag(1:2); A=E,R;O,SA = 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 A2ans = 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 E,R+R*S;O,S2ans = 1.0000 0 0 1.6294

12、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 A2=E,R+R*S;O,S2ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1通过验证,矩阵成立。2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么? H=hilb(5)H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.25

13、00 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=pascal(5)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=det(H)Hh = 3.7493e-12 Hp=det(P)Hp = 1 Th=cond(H)Th = 4.7661e+05 Tp=cond(P)Tp = 8.5175e+03答:5阶帕斯卡矩阵P的性能

14、好。矩阵的性能是由条件数决定的,条件数越接近于1其性能就越好。由上机操作求得Th=4.7661e+005,Tp=8.5175e+003。Tp的值更接近于1则其性能要好。所以5阶帕斯卡矩阵P的性能好。3. 建立一个55矩阵,求它的行列式值、迹、秩和范数。 A=rand(5)A = 0.2785 0.9706 0.4218 0.0357 0.7431 0.5469 0.9572 0.9157 0.8491 0.3922 0.9575 0.4854 0.7922 0.9340 0.6555 0.9649 0.8003 0.9595 0.6787 0.1712 0.1576 0.1419 0.6557

15、 0.7577 0.7060 det(A)ans = -0.1322 trace(A)ans = 3.4127 rank(A)ans = 5 norm(A)ans = 3.27594. 已知求A的特征值及特征向量,并分析其数学意义。 A=-29,6,18;20,5,12;-8,8,5A = -29 6 18 20 5 12 -8 8 5 V,D=eig(A)V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351在上,特别是中,对于一

16、个给定的,它的特征向量(本征向量或称正规正交向量)是这样一个v:当v 经过这个线性变换的作用之后,得到的新向量(也许改变)仍然与原来的v 保持在同一条上。一个特征向量的长度在该线性变换下缩放的比例称为其特征值(本征值)。如果特征值为正,则表示v 在经过线性变换的作用后方向也不变;如果特征值为负,说明方向会反转;如果特征值为0,则是表示缩回零点。但无论怎样,仍在同一条直线上。5. 下面是一个线性方程组:(1) 求方程的解。(2) 将方程右边向量元素b3改为0.53再求解,并比较b3的变化和解的相对变化。(3) 计算系数矩阵A的条件数并分析结论。 format rat %用分数格式显示 A=1/2

17、,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6A = 1/2 1/3 1/4 1/3 1/4 1/5 1/4 1/5 1/6 format %恢复默认格式 b=0.95;0.67;0.52b = 0.9500 0.6700 0.5200 X=AbX = 1.2000 0.6000 0.6000 b2=0.95;0.67;0.53b2 = 0.9500 0.6700 0.5300 X2=Ab2X2 = 3.0000 -6.6000 6.6000 D=cond(A)D = 1.3533e+03矩阵的条件数决定矩阵的性能,条件数越接近于1其性能越好,系数矩阵A的条件数为1.3533

18、e+003,和1相差很大,则其性能不好。因此b矩阵个别元素的微小变动,对方程的解(X值)影响很大。6. 建立A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。实验三 选择结构程序设计1. 求分段函数的值。用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。程序设计:clear;x=-5.0 -3.0 1.0 2.0 2.5 3.0 5.0;if x=0&x=90&score=80&score=70&score=60&score=0&score=100 %判断成绩合理性 switch fix(score/10) case 9,10 gra

19、de=A; case 8 grade=B; case 7 grade=C; case 6 grade=D; otherwise grade=E; end gradeelse disp(error) %成绩不合理时输出出错信息end3. 硅谷公司员工的工资计算方法如下:(1) 工作时数超过120小时者,超过部分加发15%。(2) 工作时数低于60小时者,扣发700元。(3) 其余按每小时84元计发。试编程按输入的工号和该号员工的工时数,计算应发工资。程序设计:clear;num=input(请输入员工工号:);time=input(请输入员工工时数:);if time120 wages=84*1

20、20+(time-120)*84*(1+0.15);else wages=time*84;enddisp=(员工工号: num2str(num) 应发工资: num2str(wages)运行结果:请输入员工工号:4请输入员工工时数:35disp =员工工号:4 应发工资:22404. 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。解:程序设计:clear;a=floor(rand(1)*90+10)b=floor(rand(1)*90+10)c=input(请输入运算符号:,s);if c=+ s=a+belseif

21、c=- s=a-belseif c=* s=a*belseif c= s=abelse disp(error)end运行结果:a = 30b = 77请输入运算符号:-s = -475. 建立56矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。程序设计:clear;A=rand(5,6)n=input(n=?)if n=1&n=5 B=A(n,1:6);else disp(erro!) B=A(5,1:6);endB运行结果:A = 0.7792 0.0119 0.5285 0.6892 0.9133 0.0782 0.9340 0.3371

22、 0.1656 0.7482 0.1524 0.4427 0.1299 0.1622 0.6020 0.4505 0.8258 0.1067 0.5688 0.7943 0.2630 0.0838 0.5383 0.9619 0.4694 0.3112 0.6541 0.2290 0.9961 0.0046n=?3n = 3B = 0.1299 0.1622 0.6020 0.4505 0.8258 0.1067实验四 循环结构程序设计1. 根据,求的近似值。当n分别取100、1000、10000时,结果是多少?要求:分别用循环结构和向量运算(使用sum函数)来实现。程序设计(一):clear

23、;for n=100,1000,10000 sum=0; for x=1:n sum=sum+1/(x.2); end result=sqrt(6*sum)end运行结果:result = 3.1321result = 3.1406result = 3.1415程序设计(二):clear;for n=100,1000,10000 x=1:n; result=sqrt(6*sum(1./x./x)end运行结果:result = 3.1321result = 3.1406result =3.14152. 根据,求:(1) y3时的最大n值。(2) 与(1)的n值对应的y值。程序设计:y=0;n=

24、1;while y10(-5)&n0)negtivenum=length(find(f fushu2请输入任意一个复数A:4ia = -0.6536 - 0.7568ib = 1.3863 + 1.5708ic = 0.0000 +27.2899id = 27.30822. 一物理系统可用下列方程组来表示:从键盘输入m1、m2和的值,求a1、a2、N1和N2的值。其中g取9.8,输入时以角度为单位。要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。建立函数文件xxfcz.mfunction a1,a2,N1,N2=xxfcz(m1,m2,t)t=t*pi/180;

25、A=m1*cos(t) -m1 -sin(t) 0; m1*sin(t) 0 cos(t) 0; 0 m2 -sin(t) 0; 0 0 -cos(t) 1;g=9.8;B=0;m1*g;0;m2*g;X=inv(A)*B;a1=X(1);a2=X(2);N1=X(3);N2=X(4);建立命令文件xxfcz2.mclearm1=input(请输入m1:);m2=input(请输入m2:);t=input(请输入角度t:);a1,a2,N1,N2=xxfcz(m1,m2,t);a1a2N1N2运行结果: xxfcz2请输入m1:5请输入m2:3请输入角度t:90a1 = 9.8000a2 =

26、3.7505e-16N1 = 1.1251e-15N2 = 29.40003. 一个自然数是素数,且它的数字位置经过任意对换后仍为素数。例如13是绝对素数。试求所有两位绝对素数。要求:定义一个判断素数的函数文件。建立判断素数的函数文件sushu.mfunction x=sushu(m)%判断数m是否为素数for M=2:(m/2) if rem(m,M)=0 b=0; break else b=1; endendif b=1 x=m; %判断数m为素数,并返回else x=; %数m不为素数endend建立命令文件sushu2.mclear;js=; %初始绝对素数for m=10:99 x=

27、sushu(m); if x x=fix(x/10)+rem(x,10)*10; y=sushu(x); js=js,y; %绝对素数 else continue endendjs执行命令文件sushu2.m sushu2js = 11 31 71 13 73 17 37 97 79法二:建立函数文件sushu3.mfunction p=sushu3(m)b=m(end); p=m;for i=2:sqrt(b) n=find(rem(p,i)=0&p=i);%将m中能被i整除,且不等于i的元素的下标找出,即n p(n)=; %将下标为n的元素剔除,其余的即为素数end建立命令文件sushu4

28、.mclear;m=10:99;p=sushu3(m); %找出10到99内所有素数p=10*rem(p,10)+(p-rem(p,10)/10; %将p素数矩阵每个元素个位十位调换顺序p=sushu3(p) %再对调换顺序后的素数矩阵找出其中的素数执行命令文件sushu4.m sushu4p = 11 31 71 13 73 17 37 97 794. 设,编写一个MATLAB函数文件fx.m,使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。建立函数文件fx.mfunction f=fx(x)f=1./(x-2).2+0.1)+1./(x-3).4+0.01);end5. 已知

29、(1) 当f(n)=n+10ln(n2+5)时,求y的值。(2) 当f(n)=12+23+34+.+n(n+1)时,求y的值。建立函数文件fn1.mfunction fn=fn1(n)fn=n+10*log(n.2+5);end建立函数文件fn2.mfunction fn=fn2(n)fn=0;for x=1:n fn=fn+x*(x+1); end求(1)(2)中y的值:y1=fn1(40)/(fn1(30)+fn1(20);y2=fn2(40)/(fn2(30)+fn2(20);运行结果: yfny1 = 0.6390y2 =1.7662实验六 高层绘图操作1. 设,在x=02区间取101

30、点,绘制函数的曲线。 x=linspace(0,2*pi,101); y=(0.5+3.*sin(x)./(1+x.2).*cos(x); plot(x,y);2. 已知y1=x2,y2=cos(2x),y3=y1y2,完成下列操作:(1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 x=linspace(0,2*pi,101); y1=x.2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,k:,x,y2,b-,x,y3,m-.);(2) 以子图形式绘制三条曲线。x=linspace(0,2*pi,101);y1=x.2;y2=cos(2*x);y3=y1.*y2;

31、subplot(3,1,1); plot(x,y1); title(y1); subplot(3,1,2); plot(x,y2); title(y2); subplot(3,1,3); plot(x,y3); title(y3);(3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。subplot(3,4,1);bar(x,y1,y);title(bar(x,y1,y); subplot(3,4,2);stairs(x,y1,m);title(stairs(x,y1,m); subplot(3,4,3);stem(x,y1,g);title(stem(x,y1,g); subplot(3,4,4);fill(x,y1,c);title(fill(x,y1,c); subplot(3,4,5);ba

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论