北航5系MATLAB编程部分练习大作业.docx
《北航5系MATLAB编程部分练习大作业.docx》由会员分享,可在线阅读,更多相关《北航5系MATLAB编程部分练习大作业.docx(8页珍藏版)》请在冰豆网上搜索。
北航5系MATLAB编程部分练习大作业
MATLAB编程部分练习大作业
班级_xxxx_姓名:
_xxx_学号:
_xxxxx_
一、判断题:
1)由矩阵a、b组成的方程组x*b=a的解,可以利用x=a/b进行求解。
(对)
2)@符号作为子函数数柄,记录了子函数的详细信息,可作为主函数的输出参数。
(对)
3)num2str函数表示将字符串或字符数组转换为数字或矩阵。
(错)
4)n=nargin(‘fun’)用于返回函数fun定义的输入参数的个数。
(对)
5)某m函数文件定义行语句为:
Functionvarargout=myfun(x,varargin),如果调用方式为myfun(a,b,c)则varargin是长度为2的单元数组。
(对)
6)Roots用于求多项式等于0的根,根用行向量表示。
(错)
7)最小二乘法拟合函数ployfit(x,y,n)中输入参数n为样本数据个数。
(错)
8)RTW(Real-TimeWorkshop)是MatLab提供的实时仿真工具,只要硬件性能允许,所有SimuLink建立的模型都可以通过RTW实现实时运行。
(错)
9)在MATLAB中函数tf2zp()可以用来求传递函数的零极点和增益。
(对)
10)MATLAB语言是由C语言开发的,执行效率高,一般能够快速实时运行。
(错)
二、选择题:
1)下列()函数可以创建一个m行、m列单位矩阵(对角线上为数值1,其它均为0):
A)eye(m);B)zeros(m);C)ones(m);D)rand(m);
2)下列变量名中()是合法的:
A)Char_1;B)x*y;C)x\y;D)end
2)定义a=['abc';'cde'],运行reshape(a,[3,2])语句产生矩阵为()
A)['ab','cd','de'];B)['ab';'cd';'de'];C)['ad';'cc';'be'];D)['ab';'cc';'de']
3)定义A=[1,2,3;4,5,6;7,8,9];运行A(1,:
)*A(:
3)语句计算结果为():
A)[30,36,42];B)36;C)30;D)42
4)下列计算表达式中()是错误的
A)y=eval(‘sin(t)’);B)y=feval(‘sin(t)’,t);C)y=feval(@sin,t);D)y=feval(‘sin’,t);
5)如果n阶方阵A可逆,则求A逆矩阵的命令是():
A)inv(A);B)det(A);C)rank(A);D)以上都不对
6)多项式x4-12x3+25x+116的系数向量为():
A)[1,-12,25,116];B)[116,25,-12,1];C)[1,-12,0,25,116];D)[116,25,0,-12,1];
7)Varagin作为函数声明语句中最后一个输入参数,用于传送不定数目的参数,其数据类型为:
A)数值数组;B)单元数组;C)结构数组;D)函数数柄
8)令y=[-1,6,15,-7,31,2,-4,-5],运行[ynew,indx]=sort(y),请问所得indx
(2)的具体数值为:
A)1;B)4;C)7;D)8
9)下列函数中,()用于绘制x,y,z三维空间曲线:
A)plot;B)plot3;C)mesh;D)peak
三、编程计算题:
1)利用结构数据类型定义变量A,用于储存某个学生以下三方面信息:
姓名——Dafei、排名——第3以及三门课的成绩:
88,99和98。
答:
>>field1='name';value1='Dafei';
>>field2='rank';value2='3';
>>field3='grades';value3='88,99,98';
A=struct(field1,value1,field2,value2,field3,value3)
A=
name:
'Dafei'
rank:
'3'
grades:
'88,99,98'
2)编程求解下列联立方程组的解:
3x+4y-7z-12w=4
5x-7y+4z+2w=-3
x+8z-5w=9
-6x+5y-2z+10w=-8
答:
>>A=[3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10];
>>B=[4;-3;9;-8];
>>C=A\B
C=
-1.4841
-0.6816
0.5337
-1.2429
即原方程组的解为:
x=-1.4841,y=-0.6816,z=0.5337,w=-1.2429
3)编程求解多项式x4-12x3+25x+116的极值
答:
symsxy;
>>y=x.^4-12*x.^3+25*x+116;
>>dy=diff(y)
dy=
4*x^3-36*x^2+25
>>A=sym2poly(dy)
A=
4-36025
>>roots(A)
ans=
8.9215
0.8772
-0.7987
>>d2y=diff(dy)
d2y=
12*x^2-72*x
>>z1=limit(d2y,x,-0.7987)
>>z2=limit(d2y,x,0.8772);
>>z3=limit(d2y,x,8.9215);
>>y1=vpa(z1)
y2=vpa(z2)
y3=vpa(z3)
y1=65.1615>0
y2=-53.9246<0
y3=312.7699>0
>>ym1=limit(y,x,-0.7987);
ym2=limit(y,x,0.8772);
ym3=limit(y,x,8.9215);
ymax=vpa(y1)
ymin1=vpa(y2)
ymin2=vpa(y3)
ymax=102.5535
ymin1=130.4222
ymin2=-1846.9758
即:
两个极小值点分别为-0.7987、8.9215,对应的极小值分别为130.4222、-1846.9758;
一个极大值点为0.8772,对应的极大值为102.5535
4)求出y=x*sin(x)在0答:
>>x=0:
0.01:
100;y=x.*sin(x);
>>m=find(diff(sign(diff(y)))~=0)+1;
>>plot(x,y,x(m),y(m),'ro')
A=[x(m),y(m)];
>>xlswrite('C:
\Users\Administrator\Desktop\大作业',A')
图像:
峰值点坐标:
x
y
2.03
1.8197
4.91
-4.8144
7.98
7.9167
11.09
-11.041
14.21
14.172
17.34
-17.307
20.47
20.445
23.6
-23.583
26.74
26.722
29.88
-29.862
33.02
33.002
36.16
-36.142
39.3
39.282
42.44
-42.423
45.58
45.564
48.72
-48.704
51.86
51.845
55
-54.987
58.14
58.128
61.28
-61.269
64.42
64.41
67.56
-67.552
70.7
70.693
73.84
-73.834
76.98
76.975
80.12
-80.116
83.26
83.257
86.41
-86.399
89.55
89.54
92.69
-92.682
95.83
95.824
98.97
-98.965
5)题目(4):
设计一个GUI包含一个开始和停止按钮,以及一个动画展示窗口,用于随机展示一下方向、大小、颜色各异的“囧”字
答:
为了使报告显得简洁,在这里只写出了三个按钮的回调函数语句。
begin按钮回调函数:
functionpushbutton1_Callback(hObject,eventdata,handles)
figure;
axisoff;
set(gcf,'menubar','none','toolbar','none');
globala;
a=0;
while(a==0)
h=text(rand,rand,...
['\fontsize{',num2str(unifrnd(20,50)),'}\fontname{隶书}囧'],...
'color',rand(1,3),'Rotation',360*rand);
pause(0.2);
end
stop按钮回调函数:
functionpushbutton2_Callback(hObject,eventdata,handles)
globala;
a=1;
close按钮回调函数:
functionpushbutton3_Callback(hObject,eventdata,handles)
close(gcf);
运行结果:
①第一步:
点击运行
②第二步:
点击begin按钮
③第三步:
点击stop按钮,停止动画
④第四步:
点击close按钮,退出GUI界面