试2012年~2013第1学期 课程名称:MATLAB语言专业年级:自动化1001-1006 考生学号:考生姓名: 试卷类型:A卷√B卷□考试方式:开卷□闭卷√ 题 …………………………………………………………………………………………………………………… 一、填空题(每空1分,共20分) 1. MATLAB即Matrix+Laboratory,其强项就是高效的计算,其默认的数据类型是型。 2. 在窗口中可输入各种MATLAB命令、函数和表达式,并显示除图形外的所有运算结果。 3. 定义变量c为字符串“Hello”的命令是。 4. MATLAB的基本绘图命令是。 5. clear命令的作用是清除。 6. 计算3cos(2x+43o)用命令。 1217. 定义变量a=用命令,命令b=a>3执行后b=,将a矩阵第一行的所有元素改为3334的命令是。 8. 定义10个元素全为零的行向量用命令。 9. 求线性方程AX=b,用命令。 10. 设X1=[23;45],X2=eye(2,2),则X1*X2=,X1.*X2=。 11. 若Z=[3-i,1+i],则Z’=。 12. 求方程x3+20x+1=0的根的命令是。 13. 命令A={'ThisisaCellarray',ones(2,3)}定义了一个数组。 14. 若某班全体学生的信息用结构数组student表示,则要查看该班第一个学生的学号num可用命令。 15. 命令conv([11],ones(1,2))执行的结果是。 16. 定义图形窗口中x轴坐标范围为0~2π,y轴坐标范围为-1~1的命令是。 二、选择题(每小题2分,共30分) 1. MATLAB绘制二维图形的命令是: 2. 3. 有关分号“;”的功能,以下说法错误的是: 4. A.作为不显示计算结果命令行的结尾 5. B.作为不显示计算结果命令之间的分隔符 6. C.作为命令行必需的结束符 7. D.作为数组元素行之间的分隔符 8. 对于命令“saveFileName”的功能说法正确的是: 9. A.将当前图形窗口中的图形存入以“FileName”为名的图形文件 10. B.将工作空间中的所有数据存入以“FileName”为名的数据文件 11. C.将当前编写的程序代码存入以“FileName”为名的程序文件 12. D.将工作空间中的数据、图形窗口中的图形及当前编写的程序一并存入以“FileName”为名的压缩文件 13. 以下不属于MATLAB文件类型的是: 14. 15. 已定义a=1,b=2,欲表示复数1+2i,以下命令错误的是: 16. +bi +b*i +2i +2j 17. 下列变量名中合法的是: 18. ,i4 B.变量1,a-2 , ,det 19. 以下不属于取整函数的是: 20. 21. 若变量a=[10],则命令[a;a]执行的结果是: 22. A.[1010] B.[20] 10C. 10 D.报错 23. 命令linspace(0,1,2)执行的结果是: 24. A.[012] B.[01] C.[100101] D.与命令“0:1:2”执行结果相同 25. 命令1/3执行的结果是: 26. 3 D.0.3 27. MATLAB中添加文本注释用符号: 28. A. C./* D.@ 29. 下列关于MATLAB工作空间说法错误的是: 30. 工作空间中的变量在MATLAB关闭时即清空 31. 工作空间中的变量可以为M脚本文件使用 32. 工作空间中的变量可以为M函数文件使用 33. 工作空间中的变量可以为Model文件使用 34. 命令A(2,3)表示: 35. A.定义了2行3列的矩阵A B.取矩阵A的第3行第2列的元素 36. C.取矩阵A的第2行第3列的元素 D.取矩阵A的第2及第3个元素 37. 已知a=2:4,b=rand(3,1),下面的运算表达式出错的是: 38. *b b *a .*b’ 39. 在程序流程控制中break命令的作用是: 40. A.跳出循环体B.返回上级调用C.中止本次循环D.终止程序运行 三、改错题(5分) 已知二阶系统时域响应为y(t)1112e xsin(12xarccos) ,其中01,以下程序定义M函数文件test,计算该系统在阻尼系数分别为、、时的时域响应,并在同一张图上画出各条时域响应曲线。试找出程序中的错误、说明错误原因、并修改错误。 forzeta=,, y=1-1/sqrt(1-zeta^2)*e^(-zeta*t)*sin(sqrt(1-zeta^2)t+arccos(zeta); holdon poly(x,y) 四、编程题(共25分) 1. 编写M脚本文件,要求从键盘输入一个3*3的方阵,然后判断该方阵是否可逆(通过判断矩阵的秩是否为3实现),如果可逆,求出其逆矩阵;如果不可逆,修改该输入矩阵的最后一列为0~10之间的随机整数,然后求修改后矩阵的逆矩阵。(10分) 2. 在同一图形窗口中按照x0.1的步长间隔分别绘制曲线y1x2ex,0x1;y1sin(x)cos(x),1x2。要求y1曲线为红色虚线,数据点用圆圈标识;y2曲线为蓝色点划线;给出图例;标记图名为y1,y2。(10分) 3. 已知f(t)(sin2t)eatb|t|,a=,b=,利用泛函命令求其在t=附近的过零点。(5分) 五、分析题(5分) 若有函数文件编写如下,试写出函数调用Multi(5)的运行结果。 functionc=Multi(n) fori=1:n forj=i:n c(i,j)=i*j; end end 六、已知4阶龙格-库塔算法如下: 试利用该算法求解以下微分方程: 在x=处的解(取步长h=)。(10分) 自动化2011级《MATLAB语言》试题(A卷)参 一、 填空题(每空1分,共20分) 1. 矩阵双精度 2. 命令 3. ‘Hello’ 4. plot 5. 工作空间 6. 3*cos(2*x+43*pi/180) 7. a=[121;334][000;001]a(1,:)=3 8. zeros(1,10) 9. A\\b 10. [23;45][20;05] 11. [3+i;1-i] 12. roots([10201]) 13. 元胞 14. student(1).num 15. [132] 16. axis([02*pi-11]) 二、 选择题(每小题2分,共30分) 1.B 三、改错题(5分)(每个错误分) 错误1:for循环需end结束,此处缺end 错误2:矩阵定义需用[]而非(),此处zeta=,,应改为zeta=[,,] 错误3:指数函数为exp()而非e^,此处e^(-zeta*t)应改为exp(-zeta*t) 错误4:矩阵相乘应维数匹配,此处e^(-zeta*t)*sin(sqrt(1-zeta^2)中的“*”应改为“.*” 错误5:乘法运算中的乘号不能省略,此处sqrt(1-zeta^2)t应改为(sqrt(1-zeta^2)*t 错误6:反余弦函数的函数名写错,此处的arccos(zeta)应更改为acos(zeta) 错误7:括号应成对,此处sin函数少1括号,即sin(sqrt(1-zeta^2)t+arccos(zeta)应该为sin(sqrt(1-zeta^2)t+arccos(zeta)) 错误8:holdon命令应该在plot画图命令之后,此处应将holdon命令写在plot(x,y)之后 错误9:画图函数书写错误,应将poly改为plot,且作为时域响应中的自变量,plot(x,y)中的x应改为t 错误10:for循环之前应对时域响应的自变量赋初值,所以在for循环前应加语句“t=0:.1:10”或类似语句 修正后完整代码如下: t=0:.1:10; forzeta=[,,] y=1-1/sqrt(1-zeta^2)*exp(-zeta*t).*sin(sqrt(1-zeta^2)*t+acos(zeta); poly(t,y) holdon end 四、编程题(共25分) 1.(共10分) A=input('请输入一个3*3方阵') (1分) r=rank(A) (1分) ifr==3 (ifelseend结构3分,关系运算表达式1分) i=inv(A) (1分) else a=round(10*rand(3,1)); (2分) A(:,end)=a (1分) i=inv(A) end 2.(共10分) x1=0::1; (1分) y1=x1.^2.*exp(-x1); (2分) x2=1::2; y2=sin(x2)+cos(x2); (2分) plot(x1,y1,'r--o',x2,y2,'b-.') (3分) legend('y1','y2') (1分) title('y1,y2') (1分) 3.(共5分) 首先在M文件编译器中定义函数f functiony=f(t) (1分) a=; (1分) b=; (1分) y=(sin(t).^2).*exp(-a*t)-b*abs(t); (1分) 然后在命令窗口中调用泛函fzero求过零点 >>fzero(@f, (1分) 五、分析题(5分) 函数调用Multi(5)的运行结果: 12345 046810 0091215 0001620 000025 六、(10分) 首先用函数文件Df定义待求解的微分方程: (2分) functiondy=Df(x,y) dy=-y+1; 然后编写脚本文件,用4阶龙格库塔法求解该微分方程: h=; (分) x=0:h:; (分) y=zeros(size(x)); (分) forn=1:length(x)-1 (1分) k1=Df(x(n),y(n)); (1分) k2=Df(x(n)+h/2,y(n)+h*k1/2); (1分) k3=Df(x(n)+h/2,y(n)+h*k2/2); (1分) k4=Df(x(n)+h,y(n)+h*k3); (1分) y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6; (1分) end y(end) (