1、MatLab考试题题库(必做题)(带答案)一,1. 请登陆美国 MathWorks 公司的 (.mathworks.),查看看现在大概有多少本 MATLAB-based books (以 MATLAB 为基本软件,来说明各个专业领域的教科书或工具书)。哪一个领域的 MATLAB-based books 最多?中文书共有几本?答:1612本,数学方面的最多,中文书共有37本。2. 请在 MATLAB中直接输入下列常数,看它们的值是多少:a. i b. j c. eps d. inf e. nan f. pi g. realmax h. realmin 依次解为:ans = 0 + 1.0000i
2、 ans = 0 + 1.0000i ans =2.2204e-016 ans =Inf ans = NaN ans =3.1416 ans = 1.7977e+308 ans =2.2251e-3083. 试写一函数 regPolygon(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆画出一个接正 n 边形,其中一顶点位于 (0, 1)。例如 regPolygon(8) 可以画出如下之正八边型:解:新建regPolygon.m文件如下:function y=regPolyfon(n)n=8;%要画的n边形R=1; %圆的半径t=0:0.01:2*pi;x=R*cos(t
3、);y=R*sin(t);m=linspace(pi/2,5/2*pi,n+1);xz=R*cos(m);yz=R*sin(m);hold onplot(x,y,xz,yz);axis equal;4. 一条参数式的曲线可由下列方程式表示:x = sin(t), y = 1 - cos(t) + t/10 当 t 由 0 变化到 4*pi 时,请写一个 MATLAB 的脚本 plotParam.m,画出此曲线在 XY 平面的轨迹。解:新建plotParam.m:t = linspace(0, 4*pi);x = sin(t);y = 1-cos(t)+t/10;plot(x, y, -o);5
4、. 当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变化丰富的摆线。假设小圆轮的半径 r=2。a. 当小圆轮绕着一个大圆(半径 R=5)的外部滚动时,请画此圆轮摆线或外花瓣线。b. 重复上小题,但改成在大圆的部滚动,请画出此花瓣线。提示:下图显示在不同的 R 和 r 值,所产生的圆轮摆线。解:R=5;% 大圆半徑r=2;% 小圆半徑n=r/gcd(r, R);% 圈数t=linspace(0, n*2*pi, 1000);c=R*exp(i*t);% 內花瓣线c1=(R-r)*exp(i*t)+r*exp(i*(-R*t/r+t);% 外花瓣线c2=(R+r)*exp(i*t)+r*e
5、xp(i*(pi+R*t/r+t);plot(real(c), imag(c), real(c1), imag(c1), real(c2), imag(c2);axis imagetitle(內花瓣线(绿色)和外花瓣线(红色)); 6. 一个空间中的椭球可以表示成下列方程式:(x/a)2+(y/b)2+(z/c)2 = 1 请使用任何你可以想到的方法,画出三维空间中的一个平滑的椭球,其中 a = 3,b = 4,c = 8。(但不能使用 ellipsoid 指令。)解:x=-3:0.1:3; y=-4:0.1:4; X,Y=meshgrid(x,y); Z1=sqrt(64-64*X.*X/9
6、-16*Y.*Y); surf(X,Y,z1);hold onZ2=-sqrt(64-64*X.*X/9-16*Y.*Y); surf(X,Y,Z2);7. 请用 ez 开头的绘图指令(例如 ezmesh、ezsurf、ezmeshc、ezsurfc、ezplot3、ezcontour 等),画出一个你认为最炫的立体图形。Ezmesh:8. 画出下列方程式的曲面图与等高线图:z = sin(x/2)cos(y) 其中,x 的 21 个值均匀分布在 -2*pi, 2*pi 围,y 的 31 值均匀分布在 -1.5*pi, 1.5*pi。请使用 subplot(2,1,1) 和 subplot(2
7、,1,2) 将产生的曲面图和等高线图在同一个窗口上,产生的图形应类似下图:解:x = linspace(-2*pi, 2*pi, 21);y = linspace(-1.5*pi, 1.5*pi, 31);xx, yy = meshgrid(x, y);zz = sin(xx/2).*cos(yy);subplot(2,1,1)surf(xx, yy, zz); axis imagesubplot(2,1,2)contour(xx, yy, zz); axis image9假设一曲线资料点为x = 0:2:4*pi;y = sin(x).*exp(-x/5);试将 x 的间距调成 0.1,并用
8、下列方法进行插:a. 线性插法 (method=linear)。b. Spline 插法 (method=spline)。c. 三次多项式插法 (method=cubic)。d. 多项式拟合法:直接利用 6 次多项式去通过 7 个资料点。解:x = 0:2:4*pi;y = sin(x).*exp(-x/5);xx=0:0.1:4*pi;yyb=interp1(x,y,xx,linear);yyc=interp1(x,y,xx,spline);yyd=interp1(x,y,xx,cubic);yye=polyval(polyfit(x,y,6),x);plot(xx,yya,xx,yyb,x
9、x,yyc,xx,yyd,xx,yyd,x,y,r*);legend(nearest,linear,spline,cubic,poly,source)gridtitle(2007*07*_*)xlabel(x)ylabel(y)10求下列函数的极小点: 1) ;2) ;3) .第1),2)题的初始点可任意选取,第3)题的初始点取为.1)解:x,feval=fminunc(x)x(1)2+4*x(2)2+9*x(3)2-2*x(1)-18*x(2),3 1 2)解得:x = 1.0000 2.2500 0.0000feval = -21.25002)解:x,feval=fminunc(x)x(1
10、)2+3/2*x(2)2-2*x(1)*x(2)-x(1)+2*x(2),1 2)解得:x =-0.5000 -1.0000feval = -0.75003)解:x,feval=fminunc(x)(x(1)-1)4+x(2)2,0 1)解得:x = 1.0045 -0.0000feval = 4.0848e-010二,一填空题(每空2分,共24分)1. 设x是一维数组,x的倒数第3个元素表示为_x(_end-2_)_;要在x的第36和37个元素之间插入一个元素154,使用的命令(集)为_x=x(_1:36,154,37:end)_;设y为二维数组,要删除y的第34行和48列,可使用命令_y(
11、34,:)=;y(:,48)=_;2. 将变量x以Ascii文本格式存储到文件fname.txt,应使用命令_save _x_;将Excel文件data.xls读入WorkSpace并赋值给变量x,可使用命令_x=xlsread(data.xls)_;3. 在while 表达式, 语句体, End 循环语句中,表达式的值_非零_时表示循环条件为真,语句体将被执行,否则跳出该循环语句; 4. 打开Matlab的一个程序文件fname.m,以添加的方式进行读写,应当使用命令_fid= fopen(fname.m,w+);_; 5.要从键盘读入一个字符串并赋值给变量x,且给出提示“Who is sh
12、e?”,应使用命令_x=input(Who is she?,s)_;使用fprintf()函数以含有2位小数的6位浮点格式输出数值变量weight到文件wt.txt,使用的命令(集)为fid = fopen(wt.txt,_); fprintf ( _ ) ; 4设,和均为矩阵,且存在于WorkSpace中,要产生矩阵,可用命令_D=(A-C)/B.C_,计算可用命令_det(inv(A*B)_;得分 二简答题(每小题8分,共24分)1. (1) 写出关系运算符中的等号、不等号、小于号、大于号、小于等于号和大于等于号;(2) 写出逻辑操作中逻辑“与”、逻辑“或”与逻辑“非”的符号; (3) 并
13、用语句表达“如果a等于 b且c等于0就让d 等于3,否则如果a大于b且c=1让d等于 0,其余情况让d等于3”;= = = =& | if a=b&c=0d=3else if ab&c= =1d=0elsed=3end2. 设和是两个10行10列的矩阵(数组),试说明命令A*B, A/B, AB, A.*(B.A), A./B, A.B和sin(A).*exp(B)的涵义。A,B的矩阵乘法,矩阵A乘以B的逆,矩阵B乘以A的逆,B的每个元素的对应A次幂乘以A对应的每个元素A的每个元素除以B对应的每个元素,B的每个元素除以A对应的每个元素,A的每个元素的正弦与B对应的每个元素的指数求积, 3. 设
14、A为数组,B为一个行数大于3的数组,请给出(1)删除A的第4、8、12三列的命令; (2)删除B的倒数第3行的命令;(3)求符号极限的命令集; (4)求的3阶导数的命令集;(5)计算定积分的命令,并给出计算结果(!)A(:,4 8 12)=(2)B(end-2)=(3)syms m n xlimit(tan(m*x)/(n*x)(4)syms x yy=atan(x+3)/(x-2)-log(1+exp(-2)*x)diff(y,3)(5)syms xint(abs(x)+sin(x)*x2,-1,1)-1/2得分 三基本编程题(每小题10分,共30分)1. Write a program t
15、o compute the following expressions;Here, we suppose the variable x has existed in the workspace.for i=1:10 for j=1:10 xbar(i)=xbar(i)+x(i,j); end xbar(i)=xbar(i)/10;endfor i=1:10 for j=1:10 t1=0;t2=0;t3=0; for k=1:3 t1=t1+(x(i,k)-xbar(i)*(x(j,k)-xbar(j); t2=t2+(x(i,k)-xbar(i)2; t3=t3+(x(j,k)-xbar(j
16、)2; end r2(i,j)=t1/sqrt(t2*t3); endendr2 2. (1) Using plot() function to plot the curves of and in the range of ,let their color are red and green respectively, and add the grid to the figure. (2) Using fplot() function and ezplot() function to plot above-mentioned (上述的) curves respectively.(1)x=-2*
17、pi:pi/100:2*pi;y=(sin(2*x)+cos(3*x).*exp(-2*x);z=sin(x)/x;plot(x,y,r,x,z,g)(2)fplot(sin(2*x)+cos(3*x).*exp(-2*x), sin(x)/x,-2*pi 2*pi)3. Plot the 3D mesh figure and 3D surface figure of the functionin the range of and , respectively.x=-4:1/100:4;y=-4:1/100:4;z=9(1-x)2*exp(-x2/2-(y+1)2)mesh(x,y,z);su
18、rf(x,y,z);得分 四综合编程题(每小题11分,共22分) 1. Write a function program to compute the following functionand call this function program to compute the value of in main program or command window, there, shows the factorial (阶乘) of . 提示:对x取整的函数有fix(x), floor(x), round(x) 和ceil(x) .fuction y=f1(x) %f1.mif x-fix(x
19、)= =0y=prod(1:abs(2*x);elsey=4*sin(2*x)+x1.8;y=f1(-4)+f1(3)-f1(14.37) 2. Write a program to compute the sample mean,and the sample skewness (偏度) .for the following three case:(1) n and exist in Workspace of Matlab. It is no any limit;(2) n and are unknown variables. Please input x by keyboard one by
20、 one, and give a mark of end the data input. Examinees can use loop statement and length() function and input() function, but cannot use mean() function, std() function, and var() function directly (可以使用循环语句和length()函数、input()函数等进行编程,但不能直接使用mean()、std()和var()等函数). (1)s=0;for i=1:ns=s+x(i);endxbar=s/
21、nm=0;for i=1:nm=m+(x(i)-xbar)3;endske=m/n(2)x(1)=input(请输入x );i=1;s=0;while(x(i)=a) s=s+x(i); i=i+1; x(i)=input(请输入x ,输a结束);endxbar=s/(i-1)m=0;for j=1:i-1m=m+(x(i)-xbar)3;endske=m/(i-1)三,产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏)答案:a=10*rand(1,10)-5;b=sort(a,descend)1.请产生一个100*5的矩阵,矩阵的每
22、一行都是1 2 3 4 52. 已知变量:A=ilovematlab;B=matlab, 请找出:(A) B在A中的位置。(B)把B放在A后面,形成C=ilovematlabmatlab3. 请修改下面的程序,让他们没有for循环语句!A=1 2 3; 4 5 6; 7 8 9;r c=size(A);for i=1:1:r for j=1:1:c if (A(i,j)8 | A(i,j) a=34-7-12;5-742 ;108-5;-65-210;c=4; -3; 9;-8;b=rank(a)b =4(2) d=acd = -1.4841,-0.6816, 0.5337,-1.2429即:
23、 x=-1.4841;y= -0.6816;z= 0.5337;w=-1.24292、设 y=cos0.5+(3sinx)/(1+x2)把x=02间分为101点,画出以x为横坐标,y为纵坐标的曲线;解: x=linspace(0,2*pi,101);y=cos(0.5+3.*sin(x)./(1+x.*x);plot(x,y)3、设f(x)=x5-4x4+3x2-2x+6(1)取x=-2,8之间函数的值(取100个点),画出曲线,看它有几个零点。(提示:用polyval 函数)解:p=1 -4 3 -2 6;x=linspace(-2,8,100);y=polyval(p,x);plot(x,
24、y);axis(-2,8, -200,2300);为了便于观察,在y=0处画直线,图如下所示:与y=0直线交点有两个,有两个实根。(2)用roots函数求此多项式的根 a=roots(p)a =3.0000 ,1.6956 , -0.3478 + 1.0289i , -0.3478 - 1.0289i4、在-10,10;-10,10围画出函数的三维图形。 解:X,Y=meshgrid(-10 : 0.5 :10);a=sqrt(X.2+Y.2) +eps;Z=sin(a)./a;mesh(X,Y,Z);matlab试卷,求答案一、选择或填空(每空2分,共20分)1、标点符号()可以使命令行不显
25、示运算结果,()用来表示该行为注释行。2、下列变量名中()是合法的。(A) char_1 ; (B) x*y ; (C) xy ; (D) end 3、为,步长为的向量,使用命令()创建。4、输入矩阵,使用全下标方式用()取出元素“ ”,使用单下标方式用()取出元素“ ”。5、符号表达式中独立的符号变量为()。6、M脚本文件和M函数文件的主要区别是()和()。7、在循环结构中跳出循环,但继续下次循环的命令为()。(A) return; (B) break ; (C) continue ; (D) keyboad二、(本题12分)利用MATLAB数值运算,求解线性方程组(将程序保存为test02
26、.m文件)三、(本题20分)利用MATALAB符号运算完成(将程序保存为test03.m文件):(1)创建符号函数(2)求该符号函数对的微分;(3)对趋向于求该符号函数的极限;(4)求该符号函数在区间上对的定积分;(5)求符号方程的解。四、(本题20分)编写MATALAB程序,完成下列任务(将程序保存为test04.m文件):(1)在区间上均匀地取20个点构成向量;(2)分别计算函数与在向量处的函数值;(3)在同一图形窗口绘制曲线与,要求曲线为黑色点画线,曲线为红色虚线圆圈;并在图中恰当位置标注两条曲线的图例;给图形加上标题“y1 and y2”。五、(本题15分)编写M函数文件,利用for循
27、环或while循环完成计算函数的任务,并利用该函数计算时的和(将总程序保存为test05.m文件)。六、(本题13分)已知求解线性规划模型:的MATLAB命令为x=linprog(c,A,b,Aeq,beq,VLB,VUB)试编写MATLAB程序,求解如下线性规划问题(将程序保存为test06.m文件):问题补充:卷子的地址看不见符号,能做就做了一些.1、标点符号( ; )可以使命令行不显示运算结果,( % )用来表示该行为注释行。2、下列变量名中( A )是合法的。(A) char_1 ; (B) x*y ; (C) xy ; (D) end 3、为,步长为的向量,使用命令(本题题意不清)创
28、建。4、输入矩阵,使用全下标方式用(本题题意不清)取出元素“ ”,使用单下标方式用(本题题意不清)取出元素“ ”。5、符号表达式中独立的符号变量为()。6、M脚本文件和M函数文件的主要区别是(变量生存期和可见性)和(函数返回值)。7、在循环结构中跳出循环,但继续下次循环的命令为( C )。(A) return; (B) break ; (C) continue ; (D) keyboad二、(本题12分)利用MATLAB数值运算,求解线性方程组(将程序保存为test02.m文件)三、(本题20分)利用MATALAB符号运算完成(将程序保存为test03.m文件):(1)创建符号函数 syms
29、x(2)求该符号函数对的微分;(3)对趋向于求该符号函数的极限;(4)求该符号函数在区间上对的定积分;(5)求符号方程的解。四、(本题20分)编写MATALAB程序,完成下列任务(将程序保存为test04.m文件):(1)在区间上均匀地取20个点构成向量;(2)分别计算函数与在向量处的函数值;(3)在同一图形窗口绘制曲线与,要求曲线为黑色点画线,曲线为红色虚线圆圈;并在图中恰当位置标注两条曲线的图例;给图形加上标题“y1 and y2”。五、(本题15分)编写M函数文件,利用for循环或while循环完成计算函数的任务,并利用该函数计算时的和(将总程序保存为test05.m文件)。六、(本题1
30、3分)已知求解线性规划模型:的MATLAB命令为x=linprog(c,A,b,Aeq,beq,VLB,VUB)试编写MATLAB程序,求解如下线性规划问题(将程序保存为test06.m文件):例2.1 已知SISO系统的状态空间表达式为(2-3)式,求系统的传递函数。A=0 1 0;0 0 1;-4 -3 -2;B=1;3;-6;C=1 0 0;D=0;num,den=ss2tf(a,b,c,d,u)num,den=ss2tf(A,B,C,D,1) 例2.2 从系统的传递函数(2-4)式求状态空间表达式。num =1 5 3;den =1 2 3 4;A,B,C,D=tf2ss(num,de
31、n)例2.3 对上述结果进行验证编程。%将例2.2上述结果赋值给A、B、C、D阵;A =-2 -3 -4;1 0 0; 0 1 0;B =1;0;0;C =1 5 3;D=0;num,den=ss2tf(A,B,C,D,1)例2.4给定系统,求系统的零极点增益模型和状态空间模型,并求其单位脉冲响应与单位阶跃响应。解:num=1 2 1 3;den=1 0.5 2 1;sys=tf(num,den) %系统的传递函数模型 Transfer function: s3 + 2 s2 + s + 3-s3 + 0.5 s2 + 2 s + 1sys1=tf2zp(num,den)%系统的零极点增益模型
32、 sys1 =sys2=tf2ss(sys) %系统的状态空间模型模型;或用a,b,c,d=tf2ss(num,den)形式impulse(sys2) %系统的单位脉冲响应step(sys2) %系统的单位阶跃响应例3.1 对下面系统进行可控性、可观性分析。解:a=-1 -2 2;0 -1 1;1 0 -1;b=2 0 1;c=1 2 0Qc=ctrb(a,b)%生成能控性判别矩阵rank(Qc)%求矩阵Qc的秩ans = 3%满秩,故系统能控Qo=obsv(a,c)%生成能观测性判别矩阵rank(Qo) %求矩阵Qo的秩ans = 3%满秩,故系统能观测例3.2 已知系统状态空间方程描述如下
33、:试判定其稳定性,并绘制出时间响应曲线来验证上述判断。解:A=-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0;B=1;0;0;0;C=1 7 24 24;D=0;z,p,k=ss2zp(A,B,C,D,1);Flagz=0;n=length(A);for i=1:nif real(p(i)0Flagz=1;endenddisp(系统的零极点模型为);z,p,k系统的零极点模型为if Flagz=1disp(系统不稳定);else disp(系统是稳定的);end运行结果为:系统是稳定的step(A,B,C,D) 系统的阶跃响应资源与环境工程学院2008级硕士研究
34、生MatLab与其应用试题注意,每题的格式均须包含3个部分a. 程序(含程序名与完整程序):b. 运行过程:c. 运行结果:(1)求解线性规划问题:问各xi分别取何值时,Z有何极小值。(10分)答:fprintf(线性规划问题求解 n);f = -4;1;7;A = 3,-1,1;1,1,-4;b = 4,-7;Aeq = 1,1,-1;beq = 5;lb = 0,0,;ub = ;x = linprog(f,A,b,Aeq,beq,lb,ub);xz = f * x;fprintf(MIN z = %f n , z);运行结果:线性规划问题求解Optimization terminated
35、 successfully.x = 2.2500 6.7500 4.0000MIN z = 25.750000(2)编写一个函数,使其能够产生如下的分段函数:,并调用此函数,绘制。(10分)答:function y=f(x)if x6 y=0.5; else y =1.5-0.25*x; endend运行结果 x=2f(x)=1x = 0:0.05:2;y = diag(A2(x)*A2(x+2);plot(x,y);xlabel(bfx);ylabel(bfy);29 / 29(3) 将一个屏幕分4幅,选择合适的步长在右上幅与左下幅绘制出下列函数的图形。(10分)(曲线图);(曲面图)。答:
36、 subplot(2,2,2) ezplot(cos(x)(1/2),-pi/2 pi/2) ylabel(y) subplot(2,2,3) x=-2:0.5:2; y=-4:1:4;ezsurfc(x2/22+y2/42)(4) A 是一个維度mn的矩阵. 写一段程序, 算出A中有多少个零元素(10分)答: A= input (请输入一个矩阵)m,n= size(A);sig=0;for i=1:m for j=1:n if A(i,j)=0 sig = sig+1; end endend请输入一个矩阵0 1 2;1 0 2; 0 0 0A = 0 1 2 1 0 2 0 0 0 sigsig = 5(5) 向量. 写一段程序, 找出A中的最小元素(10分)答:A= input (请输入一个向量)m,n=sizeAmin =A(1,n);for i=1:n if A(1,i) x=0.167 0.5 1 2 3 4 5 8 y=0.033201 0.086059 0.169779 0.322061 0.480769 0.644122 0.809061 1.269841plot(x,y);xlabel(时间t);ylabel(时间/吸附量)图3x=0.2363 0.15496 0.13619 0.12906 0.13373 0.13315y=0.2
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100