matlAB实验答案.docx
- 文档编号:17643856
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:35
- 大小:635.43KB
matlAB实验答案.docx
《matlAB实验答案.docx》由会员分享,可在线阅读,更多相关《matlAB实验答案.docx(35页珍藏版)》请在冰豆网上搜索。
matlAB实验答案
MATLAB程序设计教程
上机实验报告
专业:
机械设计制造及其自动化
班级:
2011级机械4班
姓名:
李衍丹
学号:
20111292
指导老师:
辜良瑶
机电工程学院
2013年1月5日
第一次上机作业
1、求下列表达式的值,显示MATLAB工作空间的使用情况并保存全部变量,变量保存的文件名必须包含自己的学号后四位数:
(1)
(2)
其中a=3.5,b=5,c=9.8。
(3)
,其中
,
(4)
,其中
程序代码及结果:
(1)>>w=sqrt
(2)*(1+0.34245e-6)
w=
1.4142
(2)>>x=(2*pi*a+((b+c)/(pi+a*b*c))-exp
(2))/(tan(b+c)+a)
x=
6.6186
(3)>>y=2*pi*d*d*((1-pi/4)*e-(0.8333-pi/4)*d)
y=
-128.4271
(4)>>t=[2,1-3i;5,-0.65]
>>z=(1/2)*exp(2*t)*log(t+sqrt(1+t*t))
z=
1.0e+004*
0.0057-0.0007i0.0049-0.0027i
1.9884-0.3696i1.7706-1.0539i
2.已知
,
,求下列表达式的值:
(1)
、
(其中I为单位阵);
(2)A*B、A.*B、B*A、B.*A;
(3)A/B、B\A;
(4)[A,B]、[A([13],:
);B^2]。
程序代码及结果:
(1)>>A=[-1,5,-4;0,7,8;3,61,7],B=[8,3,-1;2,5,3;-3,2,0]
>>A+6*B
ans=
4723-10
123726
-15737
>>I=eye(3)
I=
100
010
001
>>A*A-B+I
ans=
-18-21717
22533109
21867526
(2)>>A*B
ans=
141416
-105121
125328180
>>A.*B
ans=
-8154
03524
-91220
>>B*A
ans=
-110-15
722853
3-128
>>B.*A
ans=
-8154
03524
-91220
(3)>>A/B
ans=
1.2234-0.92552.9787
-0.94682.3511-0.9574
4.61703.872313.8936
>>B\A
ans=
-0.5106-8.6170-1.1277
0.734017.57451.8085
-0.8830-21.21280.4043
(4)>>[A,B]
ans=
-15-483-1
078253
3617-320
>>[A([13],:
);B^2]
ans=
-15-4
3617
73371
173713
-2019
3.已知
(1)、取出A的前三行构成矩阵B,其前两列构成矩阵C,其右下角3×2子矩阵构成的矩阵D,B与C的乘积构成矩阵E。
(2)、分别求E 程序代码及结果: (1)>>B=A(1: 3,1: 4) B= 23.000010.0000-0.77800 41.0000-45.000065.00005.0000 32.00005.0000032.0000 >>C=A(1: 4,1: 2) C= 23.000010.0000 41.0000-45.0000 32.00005.0000 6.0000-9.5400 >>D=A(2: 4,3: 4) D= 65.00005.0000 032.0000 54.00003.1400 >>E=B*C E= 1.0e+003* 0.9141-0.2239 1.20802.7123 1.1330-0.2103 (2)>>E ans= 01 00 01 >>E&D ans= 11 01 11 >>E|D ans= 11 11 11 >>~E|~D ans= 00 10 00 4.产生均值为3,方差为1的5阶正态分布的随机方阵。 程序代码及结果: >>A=3+randn(5) A= 1.33444.18923.72584.06681.6638 3.12532.96242.41173.05933.7143 3.28773.32735.18322.90444.6236 1.85353.17462.86362.16772.3082 4.19092.81333.11393.29443.8580 5.使用函数,实现方阵A左旋 、右旋 的功能, 。 程序代码及结果: >>A=[14710;25811;36912;471013] A= 14710 25811 36912 471013 >>rot90(A) ans= 10111213 78910 4567 1234 >>rot90(A,-3) ans= 10111213 78910 4567 1234 6.建立一个字符串向量(要求字符串向量必须包含自己的姓名,大小写均可),删除其中的大写字母。 程序代码及结果: xm='MynameisLiyandan' xm= MynameisLiyandan >>xm='MynameisLiyandan xm= MynameisLiyandan >>k=find(xm>='A'&xm<='Z'); >>xm(k)=[]; >>char(xm) ans= MynameisLiyandan 7.分别建立一个结构矩阵和一个单元矩阵来存储自己班上5名同学的基本情况数据(其中1名同学必须是自己,另外一名必须是女生),每名学生的数据包括学好、姓名、专业和6门课程的成绩。 并查询自己的所有信息以及女生的成绩。 程序代码及结果: >>a.xuehao=20111409;a.name='欧阳冬枚';a.major='机械4班';a.grade=[879892919496] a= xuehao: 20111409 name: '欧阳冬枚' major: '机械4班' grade: [879892919496] >>b.xuehao=20111292;b.name='李衍丹';b.major='机械4班';b.grade=[918581889790] b= xuehao: 20111292 name: '李衍丹' major: '机械4班' grade: [918581889790] >>c.xuehao=20111291;c.name='李翔宇';c.major='机械4班';c.grade=[878791959393] c= xuehao: 2011191 name: '李翔宇' major: '机械4班' grade: [878791959393] >>d.xuehao=20111302;d.name='王伟';d.major='机械4班';d.grade=[848792918594] d= xuehao: 20111302 name: '王伟'' major: '机械4班' grade: [848792918594] >>e.xuehao=20111311;e.name='尹章良';e.major='机械4班';e.grade=[889387918496] e= xuehao: 20111311 name: '尹章良' major: '机械4班' grade: [889387918496] >>z={20111409,'欧阳冬枚','机械4班',[879892919496];20111292,'李衍丹','机械4班',[918581889790];20111291,'李翔宇,'机械4班',[878791959393];20111302,'王伟','机械4班',[848792918594];20111311,'尹章良','机械4班',[889387918496]} z= [20111409]‘欧阳冬枚''机械4班'[1x6double] [20111292]'李衍丹''机械4班'[1x6double] [20111291]'李翔宇''机械4班'[1x6double] [20111302]'王伟''机械4班'[1x6double] [20111311]'尹章良''机械4班'[1x6double] 第二次上机作业 1.分析脚本M文件与函数M文件的区别。 区别: 1)、脚本M文件没有输入参数,也不返回输出参数,而函数M文件可以带参数,也可以返回输出参数; 2)、脚本M文件对MATLAB工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数M文件中定义的变量为局部变量,当函数M文件执行完毕时,这些变量被消除; 3)、脚本M文件可以直接运行,在MATLAB命令窗口中输入命令文件的名字,就会顺序执行命令文件中的命令,而函数M文件不能直接运行,而要用函数调用的方式运行。 2.分别编写脚本文件,实现以下要求: 1)求[100,999]之间能被21整除的个数。 2)用magic(6)产生一矩阵,用至少两种方法求解其所有元素的和。 (提示: 1、for循环;2、sum函数) 程序代码及结果: (1).sum=0; forn=100: 999; ifrem(n,21)==0; sum=sum+1; end end sum sum= 43 (2).A=magic(6) sum=0; forn=1: 36; sum=sum+A(n); end sum A= 3516261924 3327212325 3192222720 82833171015 30534121416 43629131811 sum= 666 A=magic(6) sum=6*(A(1,1)+A(1,2)+A(1,3)+A(1,4)+A(1,5)+A(1,6)) A= 3516261924 3327212325 3192222720 82833171015 30534121416 43629131811 sum= 666 3.编写函数文件,实现从键盘输入一个3位整数,将它反向输出。 如639,输出为936。 并调用该函数,输入自己的学号后三位数,输出结果。 程序代码及结果: functiond=fad(f) a=fix(f/100); b=fix(f/10)-10*fix(f/100); c=rem(f,10); d=a+10*b+100*c y=input('inputanumber: ');x=fad(y) inputanumber: 292 d= 292 x= 292 4.定义一个函数文件,求 ,要求在函数文件中包含能够通过help查询到的说明,说明里面必须有自己的名字学号。 然后调用该函数文件求 的值。 程序代码及结果: function[count]=asd(n,m) %姓名: 李衍丹 %学号: 20111292 count=0; fori=1: n count=count+i^m; end count=asd(100,1)+asd(50,2)+asd(10,-1) count=4.7978e+004 5.已知 ,当x取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时, 1)、求各点的函数值; 2)、求这些数据的平均值; 程序代码及结果: (1).functiona=diwuti(n,m) forx=(n: 0.1: m) a=sin(x+1.7)*log((pi+x)/2)/(1+cos(x+1.7)) end a >>y=diwuti(-3,3) a=2.0130 a=1.4460 a=1.0835 a=0.8252 a=0.6311 a=0.4807 a=0.3621 a=0.2678 a=0.1924 a=0.1322 a=0.0847 a=0.0478 a=0.0200 a=0 a=-0.0130 a=-0.0198 a=-0.0209 a=-0.0167 a=-0.0076 a=0.0064 a=0.0250 a=0.0482 a=0.0762 a=0.1090 a=0.1469 a=0.1904 a=0.2398 a=0.2958 a=0.3594 a=0.4317 a=0.5141 a=0.6086 a=0.7178 a=0.8453 a=0.9962 a=1.1774 a=1.3996 a=1.6789 a=2.0418 a=2.5340 a=3.2431 a=4.3588 a=6.3853 a=11.2510 a=39.4306 a=-28.8207 a=-10.8760 a=-6.8045 a=-4.9934 a=-3.9630 a=-3.2935 a=-2.8202 a=-2.4653 a=-2.1871 a=-1.9614 a=-1.7731 a=-1.6124 a=-1.4725 a=-1.3487 a=-1.2373 a=-1.1359 a=-1.1359 y=-1.1359 (2).functiona=diwuti(n,m) a=0; forx=(n: 0.1: m) a=sin(x+1.7)*log((pi+x)/2)/(1+cos(x+1.7))+a; a=10*a/(m-n); end a >>y=diwuti(-3,3) a= 1.2269e+014 y= 1.2269e+014 6.求分段函数的值。 用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5时的值。 程序代码及结果: x=input('inputx: '); ifx<0&x~=-3 y=x^2+x-6; else ifx>=0&x<5&x~=2&x~=3 y=x^2-5*x+6; else y=x^2-x-1; end end Y inputx: -5 y= 14 inputx: -3 y= 11 inputx: 1 y= 2 inputx: 2 y= 1 inputx: 2.5 y= -0.2500 7.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。 其中90分~100分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。 程序代码及结果: (1).x=input('pleaseinputyourgrade: ') ifx>=90&x<=100 disp('A') elseifx>=80&x<=89 disp('B') elseifx>=70&x<=79 disp('C') elseifx>=60&x<=69 disp('D') else disp('E') end pleaseinputyourgrade: 68 x= 68 D pleaseinputyourgrade: 96 x= 96 A pleaseinputyourgrade: 85 x= 85 B pleaseinputyourgrade: 76 x= 76 C pleaseinputyourgrade: 56 x= 56 E (2).grade=input('pleaseinputyourgrade: ') switchfix(grade/10) case{0,5} disp('E') case{6} disp('D') case{7} disp('C') case{8} disp('B') otherwise disp('A') end pleaseinputyourgrade: 59 grade= 59 E pleaseinputyourgrade: 68 grade= 68 D pleaseinputyourgrade: 79 grade= 79 C pleaseinputyourgrade: 83 grade= 83 B pleaseinputyourgrade: 96 grade= 96 A 8.根据 的近似值。 当n分别取100、1000、10000时,结果是多少? (要求: 分别用循环结构和向量运算来实现). 程序代码及结果: (1)、functionp=dibati(n) p=0; fori=1: 1: n p=p+1/(i^2); end p=sqrt(6*p); >>y=dibati(100) y= 3.1321 >>y=dibati(1000) y= 3.1406 >>y=dibati(10000) y= 3.1415 (2)、functionp=dibati(n) i=1: 1: n; p=sum(1./i./i); p=sqrt(6*p); >>y=dibati(100) y= 3.1321 >>y=dibati(1000) y= 3.1406 >>y=dibati(10000) y= 3.1415 9.已知n=1时,f1=1;n=2时,f2=0;n=3时,f3=1;n>3时,fn=fn-1-2fn-2+fn—3; 求f1~f100中,最大值、最小值以及各数之和。 程序代码及结果: f (1)=1; f (2)=0; f(3)=1; forn=4: 100 f(n)=f(n-1)-2*f(n-2)+f(n-3); end MAX=max(f) MIN=min(f) SUM=sum(f) MAX= 4.3776e+011 MIN= -8.9941e+011 SUM= -7.4275e+011 10.某公司员工的工资计算方法如下: 1)工作时数超过120小时者,超过部分加发15%; 2)工作时数低于60小时者,扣发700元; 3)其余按每小时84元计发。 试编程按输入的工号和该号员工的工时数,计算应发工资。 程序代码及结果: hours=input('ÇëÊäÈ빤×÷ʱÊý£º'); s=90;%¶¨ÒåÿСʱ¹¤×ÊΪ90Ôª ifhours<60 salary=hours*s-700; elseifhours>120 salary=120*s+(hours-120)*s*(1+0.15); elsesalary=84*hours; end salary 请输入工作时数: 100 salary= 8400 请输入工作时数: 130 salary= 11835 请输入工作时数: 40 salary= 2900 第三次上机作业 1、运行课本第四章及课堂上讲过的例子. (1)、x=[0: 0.1: 1]; y=[2.3,4.3,2.5,6,4.9,1.5,1,4.6,5,6.7,0]; plot(x,y) (2)、t=linspace(0,2*pi,100); x=[t;t]'; y=[sin(t);cos(t)]'; plot(x,y) (3)、x=0: 0.1: 3*pi; y1=sin(x); y2=cos(x); plot(x,y1,'--g',x,y2,': bo'); patch(x,y1,'r') 2、设 区间取101点,绘制函数的曲线。 程序代码及结果: x=0: 2*pi/101: 2*pi; y=(0.5+3.*sin(x)/(1+x.*x)).*cos(x); plot(x,y) 3、已知 ,完成下列操作: (1)在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2)在不同的窗口用不同的颜色和线型绘制三条曲线。 (3)以子图形式用不同的颜色和线型制三条曲线。 (4)为(3)所有子图添加标题、坐标轴说明及适当的文本标注。 程序代码及结果: (1)、x=0: pi/100: 2*pi; y1=x.*x; y2=cos(2.*x); y3=y1.*y2; plot(x,y1,'g-',x,y2,'b-.',x,y3,'r: ') (2)、x=0: pi/100: 2*pi; y1=x.*x; y2=cos(2.*x); y3=y1.*y2; figure (1) plot(x,y1,'g-') figure (2) plot(x,y2,'b-.') figure(3) plot(x,y3,'r: ') (3)、x=0: pi/100: 2*pi; y1=x.*x; y2=cos(2.*x); y3=y1.*y2; subplot(2,2,1) plot(x,y1,'g-') subplot(2,2,2) plot(x,y2,'b-.') subplot(2,2,3) plot(x,y3,'r: ') (4)、x=0: pi/100: 2*pi; y1=x.*x; y2=cos(2.*x); y3=y1.*y2; subplot(2,2,1) plot(x,y1,'g-') title('ÇúÏßy1=x^2'); xlabel('VariableX'); ylabel('VariableY'); text(2,30,'y1=x^2') s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlAB 实验 答案