学习中心/函授站_姓名学号西安电子科技大学网络与继续教育学院2015学年上学期《MATLAB与系统仿真》期末考试试题(综合大作业)考试说明:1、大作业于2015年4月3日公布,2015年5月9日前在线提交;2、考试必须独立完成,如发现抄袭、雷同、拷贝均按零分计。
3、程序设计题(三(8,10))要求写出完整的程序代码,并在matlab软件环境调试并运行通过,连同运行结果一并附上。
一、填空题(1’ ×25=25’)1、Matlab的全称为MATrix LABoratory 。
2、在Matlab编辑器中运行程序的快捷键是:F5 。
3、Matlab的工作界面主要由以下五个部分组成,它们分别是:Command window(指令窗口、Current directory(当前路径浏览器)、Workspace(工作台窗口) 、Command history (指令历史窗口)和Launch pad(发布平台)。
4、在Matlab中inf表示:无穷大;clc表示:清除当前Command window区域内容;more表示:显示命令窗口输出一个整个萤幕的时间;who表示:返回当前工作空间中所有变量名;whos表示:返回当前工作空间中所有变量,以及它们的名字、尺寸、所占字节数、属性等信息。
5、在Matlab命令窗口中运行命令Simulink 可以打开Simulink模块库浏览器窗口。
6、求矩阵行列式的函数:det ;求矩阵特征值和特征向量的函数eig 。
7、Matlab预定义变量ans表示:当前未定义变量和变量名的答案;eps表示:浮点相对精度(其值是从1.0到下一个最大浮点数之间的差值);nargin表示:函9、建立结构数组或转换结构数组的函数为:struct实现Fourier变换在Matlab中的对应函数为:fft ;Laplace变换的函数:laplace 。
10、MATLAB编写的程序文件称为M文件,M文件有脚本文件和函数文件两种。
二、简答题(3’×4=12’)1、简述MATLAB命令窗的主要作用?答:MA TLAB的命令窗口(Command Window)用于输入命令并显示除图形以外的所有执行结果,是MA TLAB 的主要交互窗口。
2、描述在Matlab中矩阵运算的含义,如A*B,A.*B表示什么运算过程?答:MATLAB中矩阵算术运算包括基本算术运算和点运算。
基本算数运算是在矩阵意义下进行的(当个数据的算术运算只是一种特例),如矩阵m*n维矩阵A和n*m维矩阵B 相乘A*B得到一个m*m维矩阵。
矩阵点运算是指他们对应元素进行相关运算,要求两矩阵的维数相同,如m*n维矩阵A和m*n维矩阵B点乘A.*B得到一个m*n为矩阵。
3、分析以下函数执行过程,回答问题:function c = testarg1(a, b)if (nargin == 1)c = a .^ 2;elseif (nargin == 2)c = a + b;end如果用户使用一个参数调用函数testarg1,函数执行什么功能?如果使用两个参数调用函数testarg1,函数又执行什么?答:题干程序中nargin是判断输入参数个数,根据不同输入参数执行不同操作。
如果用户使用一个参数(a)调用函数testarg1,函数执行c=a.^2。
如果使用两个参数(a,b)调用函数testarg1,函数执行c=a+b。
4、新建Simulink仿真模型文件的方法是什么?答:(1)、首先打开SIMULINK模块库:在MATLAB工作界面的工具条单击SIMULINK 图标,或在MA TLAB指令窗口中运行simulink,就可引出SIMULINK模块浏览器。
(2)、新建模型窗:单击SIMULINK模块库浏览器工具条上的新建图标,引出空白模型窗。
(3)、添加元器件并保存:从模块库中找到所要的元器件,拖到模型窗中,连线并保存文件即可。
5、简述绘制二维图形的一般步骤?答:首先定义自变量x的范围及步长;然后需要或者按一定的函数关系求得第二维变量的值y;最后利用绘制二维图形函数如:plot(x, y)即可绘制出x与y的二位图形。
6、简述脚本M文件和函数M文件的区别?答:(1)、M函数文件一般都要带参数 , 都要有返回结果 , 而M脚本文件文件没有参数与返回结果(2)、M函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而命令文件的变量是全局变量 , 执行完毕后仍被保存在内存中(3)、M函数文件要定义函数名 , 且保存该函数文件的文件名必须是函数名 .m 。
M 函数文件可以有多个因变量和多个自变量 , 当有多个因变量时用[ ] 括起来。
三、程序设计及分析(1-2每题4’,3-9每题5’,10题20’,共63’)1、将下列字符矩阵S转换为数字矩阵('1''2''3''4'S⎡⎤=⎢⎥⎣⎦)?>>S=[' 1 ' ' 2 ';' 3 ' ' 4 '] %输入字符矩阵S =1 23 4>>N=str2num(S) %将字符矩阵转换为数字矩阵N =1 23 42、把矩阵A,B分别在垂直方向,水平方向连接,A=[1 2 3],B=[4 5 6]?>>A=[1 2 3];>>B=[4 5 6];>> H=[A,B] %将A,B在水平方向连接H =1 2 3 4 5 6>> V=[A';B'] %将A,B在垂直方向连接V =1234563、编程实现函数3()25f x x x =--的根?>>p=[1 0 -2 -5 ]; >> x=roots(p) x =2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i4、编程实现一元二次方程20ax bx c ++=?程序如下:clear clcdisp('求方程:a*x^2+b*x+c=0的解'); disp('请输入a,b,c 的值: '); a=input('a='); b=input('b='); c=input('c='); deta=b*b-4*a*c; if deta>0disp('该方程有两个不相等的实数根'); elseif deta==0disp('该方程有两个相等的实数根'); elsedisp('该方程有两个共轭复根');endx=[(-b+sqrt(deta))/2/a;(-b-sqrt(deta))/2/a]运行结果如下:求方程:a*x^2+b*x+c=0的解 请输入a,b,c 的值: a=1 b=4 c=1该方程有两个不相等的实数根 x =-0.2679 -3.73215、求()1020xf x x =-+=在00.5x =附近的根?%牛顿迭代法 解方程y=x-10^x+2在x0=0.5附近的根 x0=0.5;format long ;x=x0-f(x0)/f_(x0); if (abs(x)<0.5) delt=abs(x-x0); elsedelt=abs((x-x0)/x); endwhile (delt>1e-6|abs(f(x0))>1e-6) x0=x;x=x0-f(x0)/f_(x0); if (abs(x)<0.5) delt=abs(x-x0); elsedelt=abs((x-x0)/x); endif f(x)==0 break end enddisp('解方程y=x-10^x+2,牛顿迭代法结果') xfunction y=func1_1(x) y=x-10.^x+2;运行结果如下:解方程y=x-10^x+2,牛顿迭代法结果 x =0.3758120875934266、绘制函数图形:1sin(),2cos()y x y x ==。
要求: (1)[]0,2x π∈; (2)数据采样间隔/50π? (3)设置网格; (4)添加图形标注;(5)两幅图叠加在一张图中。
程序如下:clear clcx=0:pi/50:2*pi; y1=sin(x); y2=cos(x);plot(x,y1,'r'); hold onplot(x,y2,'b'); grid onlegend('y1=sin(x)','y2=cos(x)');运行结果如下:1234567-1-0.8-0.6-0.4-0.200.20.40.60.817、分析以下程序执行后的效果?x=-2:0.2:2; y=x;[x,y]=meshgrid(x,y); z=x.*exp(-x.^2-x.^2); mesh(x,y,z);题干可能有误:如果z=x.*exp(-x.^2-x .^2);结果如下:如果z=x.*exp(-x.^2-y.^2);结果如下:分析:该程序的作用是以x,y为自变量,z为因变量,画出3维曲面8、在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及标注图例。
(要求附上运行结果)clear clcx=0:pi/100:4*pi; y1=sin(x); y2=cos(x);plot(x,y1,'r-'); hold onplot(x,y2,'g--'); for i=1:length(x)delt=abs(y1(i)-y2(i)); if delt<=1e-2 hold onplot(x(i),y1(i),'k*'); end endlegend('y1=sin(x)','y2=cos(x)','Á½ÇúÏß½»µã');2468101214-1-0.8-0.6-0.4-0.200.20.40.60.819、编写一个实现n 阶乘的函数。
function [s] = fun(n) s = 1;for i = 1:n s = s * i; end10、已知矩阵n=10+自己的真实学号,22(),ij n n ij A a a i j ⨯==+,试编写一个m 文件完成以下问题:(要求附上程序运行结果)(1)求A 的行列式; (2)求A 的秩;(3)画出A 的每个行向量的图形; (4)查看A 的大小(即行、列数);(5)计算A 的第11行与第11列的乘积;(6)用一个二次函数去拟合A 的最后一行向量,画出图形;(7)计算A 的每行的和,用条形图把该和向量描绘出来,加上轴标签和图形标题; (8)计算A 的特征值和特征向量; (9)计算A 的迹、逆和范数;(10)查看*TA A 的右下角元素nn a 的值。