2015年春季学期《MATLAB语言及应用》课程试卷姓名:李清蔚学号:11408010304学院:机电学院专业:机械设计制造及其自动化(1)请概括Matlab中冒号(:),逗号(,),分号(;)的功能?(6分):用于生成一位数组,表示一位数组的全部元素或多维数组的某一维的全部元素,用于要显示计算结果的命令之间的分隔符,用于输入变量之间的分隔符,用于数组行元素之间的分隔符。
;用于不显示计算结果命令行的结尾,用于不显示计算结果命令之间的分隔符,用于数组元素行之间的分隔符。
(2)a=[1 -6 0 0.45 0 100],b=[0 1.5 4 0 0.5 -34],请问在进行逻辑运算时,a、b分别相当于什么样的逻辑量?a与b的逻辑与、逻辑或都分别是什么?(4分)元素方式的逻辑变量a&b=[0 1 0 0 0 1], a|b=[1,1,1.1,1](3)有几种建立矩阵的方法?各有什么优点?(4分)直接输入矩阵,eye()生成单位矩阵,通过M文件建立矩阵,通过外部数据文件导入矩阵(4)生成一个7阶的魔方矩阵A,再采用相应的MATLAB命令,将其全部奇数行提取出来,赋给矩阵B,给出执行语句以及计算结果。
(4分)A=magic(7)table=[1 3 5 7];[n,len]=size(table);B=A(table(1),:);for i=2:lenB=[B;A(table(i),:)];EndB= 30 39 48 1 10 19 2846 6 8 17 26 35 3713 15 24 33 42 44 422 31 40 49 2 11 20(5)生成5阶魔方矩阵A,再分别计算A中元素的平方、A矩阵的平方,给出执行语句以及计算结果。
(5分)A=magic(5)B=A.^2C=A^2A =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9B =289 576 1 64 225529 25 49 196 25616 36 169 400 484100 144 361 441 9121 324 625 4 81C =1090 900 725 690 820850 1075 815 720 765700 840 1145 840 700765 720 815 1075 850820 690 725 900 1090(6)生成矩阵84126115689a⎡⎤-⎢⎥=--⎢⎥⎢⎥-⎣⎦,计算a的行列式、逆矩阵,给出执行语句以及计算结果。
(5分)b =784c =0.0753 0.0765 0.14290.0306 0.1837 0.1429-0.0230 0.1122 0.1429(7)生成矩阵23459161514151196i iA i i ii⎡⎤+--⎢⎥=-++⎢⎥⎢⎥-⎣⎦,计算A的转置矩阵B、共轭转置矩阵C,给出执行语句以及计算结果。
(5分)A=[2+3i 4-5i -9;1-6i 1+i 5+14i;15 11 9-6i]B=A.'C=A'B=2.0000 +3.0000i 1.0000 - 6.0000i 15.0000 + 0.0000i4.0000 -5.0000i 1.0000 + 1.0000i 11.0000 + 0.0000i-9.0000 + 0.0000i 5.0000 +14.0000i 9.0000 - 6.0000iC =2.0000 -3.0000i 1.0000 + 6.0000i 15.0000 + 0.0000i4.0000 +5.0000i 1.0000 - 1.0000i 11.0000 + 0.0000i-9.0000 + 0.0000i 5.0000 -14.0000i 9.0000 + 6.0000i(8)对于BAX=,如果4927184357A⎡⎤-⎢⎥=-⎢⎥⎢⎥-⎣⎦,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=183657B,求解X,给出执行语句以及计算结果。
(4分)A=[4 -9 2;7 18 -4;-3 5 7];B=[57;36;18];X=A\BX =10.0000-0.31517.0822(9)说明break语句、continue语句和return语句的用法及区别。
(3分)break语句用于终止for循环和while循环的执行。
当遇到break时,则退出循环体,继续执行循环体外的下一个语句。
在嵌套循环中,break往往存在于内层的循环中continue命令用于结束本次for或while循环,与break命令不同的是continue指结束本次循环而继续进行下次循环return语句用来终止被调用函数的运行,后面的程序代码将不再执行,直接返回到上一级调用函数。
(10)根据x= [23 71 12 8 66 16 55]绘制三维饼图,并将第五个切块分离出来,给出执行语句以及计算结果。
(4分)x= [23 71 12 8 66 16 55]explode=[0 0 0 0 1 0 0]pie(x,explode)(11)试求出如下极限,给出执行语句以及计算结果(6分)(1)xxxx163)(lim+∞→;(2)114lim0-+→→xyxyyx(1)syms xf=(x^3+x^6)^(1/x);y=limit(f,x,inf) y = 1 (2)syms x,y ;f=(4*x*y)/(sqrt(x*y+1)-1)z=limit(limit(f,x,0),y,0) z=8(12)假定某天的气温变化记录如下表,试作图描述这一天的气温变化规律,再用二次多项式拟合的方法得出其变化规律,给出执行语句以及二次多项式的系数。
(6分)时刻t(h) 0 1 2 3 4 5 6 7 8 9 10 11 12 温度o C(t) 15o 14o 14o 14o 14o 15o 16o 18o 20o 22o 23o 25o 28o 时刻t(h) 13 14 15 16 17 18 19 20 21 22 23 24温度o C(t) 31o 32o 31o 29o 27o 25o 24o 22o 20o 18o 17o 16ox=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24]y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16] a=plot(x,y)p=polyfit(x,y,5)z=vpa(poly2sym(p),2)0.016(13)算以下两个多项式A、B的乘积A*B,以及A/B的商及余数,给出执行语句以及计算结果。
(4分)A=6x4-4x3+5x-9B=6x3+2x2-5x+7. A=[6 -4 5 -9]B=[6 2 -5 7]P1=conv(A,B)y=poly2sym(P1)[q,r]=deconv(A,B);y1=poly2sym(q)y2=poly2sym(r)y = 36*x^6 - 12*x^5 - 8*x^4 + 18*x^3 - 71*x^2 + 80*x - 63y1 =1y2 = - 6*x^2 + 10*x – 16(14)计算z=3x4-6xy+3y2x+2y3错误!未找到引用源。
+12的zy∂∂错误!未找到引用源。
和2zy x∂∂∂。
(4分)错误!未找到引用源。
syms x y;z=3*x^4-6*x*y+3*y^2*x+2*y^3+12; a=diff(z,y)b=diff(a,x)a = 6*y^2 + 6*x*y - 6*xb = 6*y – 6(15)用符号计算验证三角等式:11sin()cos()sin()sin()22=++-a b a b a b,给出执行语句以及计算结果。
(4分)a=sym('a','real')b=sym('b','real')x=sin(a)*cos(b)y=sin(a+b)/2+sin(a-b)/2simple(x-y)ans =(16)求矩阵sin()cos()cos()sin()a a A a a ⎡⎤=⎢⎥-⎣⎦的逆、行列式的值,给出执行语句以及计算结果。
(4分)A=sym('[sin(a) cos(a); -cos(a) sin(a)]')B=inv(A);c=det(A);disp(B)disp(c)[ sin(a)/(cos(a)^2 + sin(a)^2), -cos(a)/(cos(a)^2 + sin(a)^2)][ cos(a)/(cos(a)^2 + sin(a)^2), sin(a)/(cos(a)^2 + sin(a)^2)]cos(a)^2 + sin(a)^2(17)某仪器需安装一个电子元件,需要电子元件的使用寿命不低于1000小时即可。
现有甲乙两厂的电子元件可供选择,甲厂生产的电子元件的寿命服从正态分布年N(1100, 502),乙厂生产的电子元件的寿命服从正态分布N(1150, 802)。
问应选哪个工厂的产品呢?给出执行语句以及计算结果。
(4分)r1 = 1 - normcdf(1000,1100,50);r2 = 1 - normcdf(1000,1150,80);delta = (r1 - r2) > 0;open delta;(18)用下列公式计算自然对数e 的近似值,分别用for 循环、while 循环来进行编程,直到最后一项的绝对值小于10-7,给出执行语句以及计算结果。
(8分)1111111!2!3!4!5!e ≈++++++while:n=1i=1sum=1while(n>=10^(-7))n=1/factorial(i)i=i+1sum=sum+nenddisp(sum)e=2.7183for: n=1i=1sum=1for i=(1:1:12)n=1/factorial(i)i=i+1sum=sum+nenddisp(sum)(19)房间里面有序号分别为1,2,…,100的电灯,初始时都关闭;又有100个序号分别为1,2,…,100的学生,当他们依次从这100盏灯前走过时分别将序号是本人序号的整数倍的所有灯开关切换一次(原来为开的变为关,原来为关的变为开)。
请问当所有的人都走过之后,那些灯是亮的?编程并给出亮着灯的序号。
(8分)a = -1 * ones(1,100);i = -1;n = 1;while (i >= -100)while( (n*i) >= -100)a(1,-n*i) = i * a(1,-n*i);n = n + 1;end;n = 1;i = i - 1;endb = (a > 0);find(b);(20)考虑将一枚均匀硬币掷N次,当N很大时,正面出现的机率接近0.5,采用matlab生成随机数列,再设计一个随机模拟程序验证这一现象。