哈工大matlab.docx
《哈工大matlab.docx》由会员分享,可在线阅读,更多相关《哈工大matlab.docx(17页珍藏版)》请在冰豆网上搜索。
哈工大matlab
2012年春季学期
MATLAB课程考查题
姓名:
学号:
学院:
专业:
一、必答题:
1,简述MATLAB组成部分?
答:
MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。
2,说明使用M文件编辑/调试器的方法和优点?
答:
具有强大的功能,使用方便,输入便捷,库函数丰富,开放性强。
3,存储在工作空间中的数组能编辑吗?
如何操作?
答:
存储在工作空间的数组可以通过数组编辑器进行编辑:
在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
4,在MATLAB中有几种获得帮助的途径?
答:
在MATLAB中有多种获得帮助的途径:
(1)帮助浏览器:
选择view菜单中的Help菜单项或选择Help菜单中的MATLABHelp菜单项可以打开帮助浏览器;
(2)help命令:
在命令窗口键入“help”命令可以列出帮助主题,键入“help函数名”可以得到指定函数的在线帮助信息;
(3)lookfor命令:
在命令窗口键入“lookfor关键词”可以搜索出一系列与给定关键词相关的命令和函数
(4)模糊查询:
输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。
注意:
lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。
5,在进行算术运算时,数组运算和矩阵运算各有什么特点,如何区分两种运算?
左除与右除有什么区别?
答:
在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。
在通常情况下,左除x=a\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\bb/a。
6,命令文件与函数文件的主要区别是什么?
答:
(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;
(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。
命令文件没有函数定义行,且一般没有注释信息,当然也可以添加注释信息,即以%开头的内容。
在使用方法变量生存周期中也存在差异。
7,GUI开发环境中提供了哪些方便的工具?
各有什么用途?
答:
在GUI开发环境中提供了下列五个方便的工具:
(1)布局编辑器(LayoutEditor)—在图形窗口中创建及布置图形对象
(2)几何排列工具(AlignmentTool)—调整各对象之间的相互几何关系和位置
(3)属性编辑器(PropertyInspector)—查询并设置对象的属性值
(4)对象浏览器(ObjectBrowser)—获得当前MATLAB窗口中图形对象句柄的分级排列
(5)菜单编辑器(MenuEditor)—建立和编辑主菜单和图形对象的鼠标右键菜单
8,if语句有几种表现形式?
答:
(1)if表达式
语句体
end
(2)if表达式
语句体1
else
语句体2
end
(3)if表达式1
语句体1
elseif表达式2
语句体2
end
(4)if表达式1
语句体1
elseif表达式2
语句体2
else
语句体3
end
9,轴对象是使用的最多的图形对象之一,那么轴对象是哪个对象的子对象,又是那些对象的父对象?
答:
轴对象是图形窗口对象的子对象,是图像、灯光、线、块、矩形、表面、字的父对象。
10,什么是图形句柄?
图形句柄有什么用途?
答:
图形句柄是每个图形对象从产生时起就被赋予的一个唯一的标识。
利用图形句柄既可以操纵一个已经存在的图形对象的属性,也可以在建立图形对象时指定属性的值,特别是对指定对象句柄的操作不会影响同时存在的其他对象,这是非常有用的。
11,已知三维图形视角的缺省值是方位角为-37.5°,仰角为30°,写出将方位角顺时针旋转20角的命令。
答:
>>view(-57.5°,30°)
12,什么是Simulink?
简述Simulink的步骤。
答:
SIMULINK是实现动态系统建模、仿真的一个集成环境,它支持线性和非线性系统、连续时间系统、离散时间系统等,而且系统可以是多进程的。
(1)根据要仿真的系统框图,在SIMULINK窗口的仿真平台上构建仿真模型。
(2)设计模块参数。
(3)设计仿真参数。
(4)启动仿真。
(5)观测仿真结果。
13,计算
与
的数组乘积。
答:
>>a=[693;275];
>>b=[241;468];
>>a.*b
ans=
12363
84240
14,对于
,如果
,
,求解X。
答:
>>A=[492;764;357];
>>B=[372628];
>>X=A\B
X=
-0.5118
4.0427
1.3318
15,求解多项式x3-7x2+2x+40的根。
答:
>>solve('x^3+7*x^2+2*x+40=exp(x)')
ans=
-7.4519193726119900192234671421412
16,求解在x=8时多项式(x-1)(x-2)(x-3)(x-4)的值。
答:
>>p=poly([1,2,3,4]);
>>polyvalm(p,8)
ans=
840
17,计算多项式除法(3x3+13x2+6x+8)/(x+4)。
答:
>>d=deconv([31368],[14])
d=
312
18,计算多项式
的微分和积分。
答:
求微分:
>>diff(4*x^4-12*x^3-14*x^2+5*x+9,x)
ans=
16*x^3-36*x^2-28*x+5
求积分:
>>int(4*x^4-12*x^3-14*x^2+5*x+9,x)
ans=
(4*x^5)/5-3*x^4-(14*x^3)/3+(5*x^2)/2+9*x
19,有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:
pi/5:
4*pi,用三次样条法进行插值。
答:
>>x0=0:
pi/5:
4*pi;
>>y0=sin(x0).*exp(-x0/10);
>>x=0:
pi/20:
4*pi;
>>y=spline(x0,y0,x);
>>plot(x0,y0,'or',x,y,'b')
20,符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2]。
答:
>>symst
>>ezpolt(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])
21,有一组测量数据满足
,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并添加标题
,用箭头线标识出各曲线a的取值,添加标题
和图例框。
答:
>>t=0:
0.5:
10
>>y1=exp(-0.1*t+1)
>>y2=exp(-0.2*t+1)
>>y3=exp(-0.5*t+1)
>>plot(t,y1,’-ob’,t,y2,’:
*r’,t,y3,’-.^g’)
>>title('\ity\rm=e^{-\itat}')
>>title('\ity\rm=e^{-\itat}','FontSize',12)
>>text(t(6),y1(6),'\leftarrow\ita\rm=0.1','FontSize',11)
>>text(t(6),y2(6),'\leftarrow\ita\rm=0.2','FontSize',11)
>>text(t(6),y3(6),'\leftarrow\ita\rm=0.5','FontSize',11)
>>title('\ity\rm=e^{-\itat}','FontSize',12)
>>legend('a=0.1','a=0.2','a=0.5')
22,建立一个简单模型,用信号发生器产生一个幅度为2V、频率为0.5Hz的正弦波,并叠加一个0.1V的噪声信号,将叠加后的信号显示在示波器上并传送到工作空间。
23,编制一个解数论问题的函数文件:
取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
答:
functionc=collatz(n)
%collatz
%Classic“3n+1”Ploblemfromnumbertheory
c=n;
whilen>1
ifrem(n,2)==0
n=n/2;
else
n=3*n+1;
end
c=[cn];
end
24,矩阵
,计算a的行列式和逆矩阵。
答:
求行列式:
>>a=[4,2,-6;7,5,4;3,4,9];
>>det(a)
ans=
-64
求逆矩阵:
>>a=[4,2,-6;7,5,4;3,4,9];
>>inv(a)
ans=
-0.45310.6562-0.5937
0.7969-0.84370.9062
-0.20310.1562-0.0937
25,用符号函数法求解方程at2+b*t+c=0。
答:
>>r=solve(‘a*t^2+b*t+c=0’,t)
r=
1/2/a*(-b+(b^2-4*a*c)^(1/2))
1/2/a*(-b-(b^2-4*a*c)^(1/2))
二、选答题(在下列题中选答5题):
1.有一组测量数据如下表所示,数据具有y=x2的变化趋势,用最小二乘法求
解y。
答:
>>x=[11.522.533.544.55]'
>>y=[-1.42.735.98.412.216.618.826.2]'
>>e=[ones(size(x))x.^2]
>>c=e\y
>>x1=[1:
0.1:
5]';
>>y1=[ones(size(x1)),x1.^2]*c;
>>plot(x,y,'ro',x1,y1,'k')
2.
,用符号微分求df/dx。
答:
>>symsax;
>>f=[a,x^2,1/x;exp(a*x),log(x),sin(x)];
>>df=diff(f)
df=
[0,2*x,-1/x^2]
[a*exp(a*x),1/x,cos(x)]
3.
,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同
一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。
答:
x=-2:
0.1:
2;
y=x;
z=x.*exp(-x.^2-y.^2);
figure
(1)
subplot(2,2,1);plot3(x,y,z);%三维线图、
[x,y]=meshgrid(x,y);
z=x*exp(-x^2-y^2);
subplot(2,2,2);mesh(x,y,z);%网线图
subplot(2,2,3);surf(x,y,z);%表面图
subplot(2,2,4);
surf(x,y,z,'FaceColor','green','EdgeColor','none');%表面图
camlightleft;lightingphong
alpha(.5)
4.用subplot语句在一个图形窗口上开多个大小不等的子窗口进行绘图并添加注
释,见图。
图形具体内容及各图所占位置可自选。
答:
>>subplot('position',[0.1,0.15,0.3,0.65])
>>hist(randn(1,1000),20);
>>xlabel('直方图')
>>subplot('position',[0.45,0.52,0.25,0.28])
>>[xp,yp,zp]=peaks;
>>contour(xp,yp,zp,15,'k')
>>holdon
>>pcolor(xp,yp,zp)
>>shadinginterp
>>holdoff
>>axisoff
>>text(-1.2,-4,'伪彩色图')
>>subplot('position',[0.72,0.5,0.25,0.3])
>>sphere(25);
>>axisequal,axis([-0.75,0.75,-0.75,0.75,-0.75,0.75])
>>light('Position',[132]);
>>light('Position',[-3-13]);
>>materialshiny
>>axisoff
>>text(-0.8,-0.7,-1,'三维图')
>>subplot('position',[0.45,0.15,0.5,0.25])
>>t=0:
pi/15:
pi;
>>y=sin(4*t).*sin(t)/2;
>>plot(t,y,'-bs','LineWidth',2,...%设置线型
'MarkerEdgeColor','k',...%设置标记点边缘颜色
'MarkerFaceColor','y',...%设置标记点填充颜色
'MarkerSize',5)
>>axis([0,3.14,-0.5,0.5])
>>xlabel('带标记点的线图')
>>subplot('position',[0.1,0.9,0.8,0.1])
>>text(0.25,0.2,'多窗口绘图示例',...
>>'fontsize',25,'fontname','隶书','color','b')
>>axisoff
5.用单选框做一个如图所示的界面,通过选择不同的单选框来决定使用不同的色彩图。
提示:
(1)建立坐标轴对象,用于显示图形;
(2)建立建立五个单选框,用于选择不同的色图;
(3)callback函数的内容为:
functionvarargout=radiobutton1_Callback(h,eventdata,handles,varargin)
set(handles.radiobutton1,'value',1)
set(handles.radiobutton2,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton4,'value',0)
set(handles.radiobutton5,'value',0)
colormap(jet)
%--------------------------------------------------------------------
functionvarargout=radiobutton2_Callback(h,eventdata,handles,varargin)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton2,'value',1)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton4,'value',0)
set(handles.radiobutton5,'value',0)
colormap(hsv)
%--------------------------------------------------------------------
functionvarargout=radiobutton3_Callback(h,eventdata,handles,varargin)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton2,'value',0)
set(handles.radiobutton3,'value',1)
set(handles.radiobutton4,'value',0)
set(handles.radiobutton5,'value',0)
colormap(hot)
%--------------------------------------------------------------------
functionvarargout=radiobutton4_Callback(h,eventdata,handles,varargin)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton2,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton4,'value',1)
set(handles.radiobutton5,'value',0)
colormap(pink)
%--------------------------------------------------------------------
functionvarargout=radiobutton5_Callback(h,eventdata,handles,varargin)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton2,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton4,'value',0)
set(handles.radiobutton5,'value',1)
colormap(copper)
6.建立一个简单模型,产生一组常数(1×5),再将该常数与其5倍的结果合成
一个二维数组,用数字显示器显示出来。
7.用Matlab编制一个解决你所在学科内某小问题的应用程序。
答:
解决微积分问题,先定义下列三个方程式,接著再演算其微分项:
>>S1='6*x^3-4*x^2+b*x-5';
>>S2='sin(a)';
>>S3='(1-t^3)/(1+t^4)';
>>diff(S1)
ans=18*x^2-8*x+b
>>diff(S1,2)
ans=36*x-8
>>diff(S1,'b')
ans=x
>>diff(S2)
ans=
cos(a)
>>diff(S3)
ans=-3*t^2/(1+t^4)-4*(1-t^3)/(1+t^4)^2*t^3
>>simplify(diff(S3))
ans=t^2*(-3+t^4-4*t)/(1+t^4)^2