matlab基础练习题(带答案).docx
Matlab基础练习题常量、变量、表达式1、 MATLAB中,下面哪些变量名是合法的?()(A) _num (B) num_ (C) num- (D) -num在MATLAB中,要给出一个复数z的模,应该使用()函数。(A) mod(z) (B) abs(z) (C) double(z) (D) angle(z)3、下面属于MATLAB的预定义特殊变量的是?()(A) eps (B) none (C) zero (D) exp4、判断:a MATLAB的内存工作区中,存放一个英文字符 宣 需要占用1个字节,存放 一个中文字符'啊'需要占用2个字节。(错,都是2个字节 )5、 判断:MATLAB中,i和j都是虚数单位Q,它们之间没有什么区别。( 对)判断:MATLAB中,pi代表圆周率,它等于3.14。(错,后面还有很多位小数)7、在MATLAB中,假设想计算的yl = 2sin(°y)值,那么应该在MATLAB的指令窗中1 + V5输入的 MATLAB 指令是 yl=2*sin(0.3*pi)/(l+sqit(5)。8、 在MATLAB中,a = 1, b = i,那么a占_8一个字节,b占6个字节,c占 字-H- 下。9、 在MATLAB中,inf的含义是_无穷大nan的含义是非数(结果不定)。数组1、在MATLAB中,X是一个一维数值数组,现在要把数组X中的所有元素按原来次序 的逆序排列输出,应该使用下面的()指令。(A) Xend:1 (B) Xend:-1:1(C) X (end:-1:1)(D) X(end:1)在MATLAB中,A是一个字二维数组,要获取A的行数和列数,应该使用的MATLAB 的命令是( )o(A) class(A) (B) sizeof(A) (C) size(A) (D) isa(A)在MATLAB中,用指令x=1 :9生成数组x。现在要把x数组的第二和第七个元素都 赋值为0,应该在指令窗中输入()(A) x(2 7) = (0 0)(B) x(257) = 050(C) x(257) = 0 0(D) x(2 7) = (0 0)在 MATLAB 中,依次执行以下指令:clear;A=ones(3,4);A(:)=-6:5;这时,假设在指令窗中输入指令b=A(:,2)那么,MATLAB输出的结果应该是()(A) b = -3 -2 -1(B) b = -2 -1 0 1(C) b = -5 -1 3(D) b = -5 -2 1 4在MATLAB中,A= 1:9,现在执行如下指令LI=(A>5),那么MATLAB的执行结果应 该是 Ll= 111110000 o2、 在MATLAB中,要求在闭区间0,5上产生50个等距采样的一维数组b,请写出具体 的 MATLAB 指令 linspace(0550) 。3、 在 MATLAB 中,A = 0:l/2:2*pi,那么 sin(A)= 2 10/01。4、 在 MATLAB 中,A=l,2,3;4,5,6;7,8,0, B=2,l,6;8,5,2;14,2,lo 写出下面 MATLAB 语句 执行的结果:(为节省篇幅,把矩阵写成mat2str的形式) (1)A=B0 0 0; 0 1 0; 0 0 0(2) A.*B22 18;32 25 12;98 160(3) A(:)f147258360(4) A(1,:)*B(:,3)13在MATLAB中,写出下面MATLAB语句执行的结果:(1) clear,A = ones(2,6)A 二11111111(2) A(:)= 1:2:24A 二17211923172119231 5913371115(3) A(l:3:7)ans =713(4) diag(diag(A)ans =007(5) B = A (:,end:-1:1)B =21171392319151110、请编写一段matlab程序,完成以下功能:(1) 生成一个100行,200列的二维随机数组;A=rand( 100,200);(2) 找出数组A中所有大于0.49且小于0.51的元素的单下标;Idx=find(A(:)>0.49 & A(:)<0.51)(3) 数组A中满足(2)中的条件的元素有多少个?length(Idx)(4) 求出数组A中满足(2)中的条件的元素的和,并求出这些元素的平均值;sum(A(Idx), m=mean(A(Idx)(5) 将(4)求出的平均值赋值给数组A中满足(1)中的条件的每个元素。 A(Idx)=m;11、请编写一段matlab程序,完成以下功能:(1) 找出100到200之间的所有质数,将这些质数存放在一个行数组里;X= 100:200;p=X(isprime(X)求出这些质数之和;sum(p)求出100到200之间的所有非质数之和(包括100和200)。sum(X(isprime(X)-2 cos x12、 y= 0.7 +-(1 + x2)-2 cos x12、 y= 0.7 +-(1 + x2)sinx ,编写一段matlab程序,要求如下(1) 在0,2刈区间,每隔0.01取一x数值,计算出相应的y的函数值;x=0:0.01:2*pi;y=(0,7+2*cos(x)/(l+x.A2)*sin(x)根据MATLAB计算出的数据,找出在0,2万内该函数的极小值的坐标。my,idx=min(y) x(idx)数值计算1、在MATLAB中,A是一个10X10数组,我们把该数组看成矩阵的话,那么此矩阵的行列 式值= det(A),此矩阵的逆矩阵(如果存在的话)=Jnv(A) o (用MATLAB 的函数表示)2、求解以下方程组:% + / + 3/一% = 2x2-x3+x4=l% + + 2退 + 2x4 - 4x1-x2+x3-x4=Q3x + 4y-7z-12w = 45x-7y+ 4z + 2卬=一3 x + 8z-5w = 9-6x + 5y-2z + Ow = -8A=l 1 3-l;0 1 -1 1;1 1 2 2;1 -1 1-1; b=2;l;4;0;x=AbA=3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10;b=4;-3;9;-8; xyzw=Ab(3x3+x)(x3+0.5)3、求有理分式R = j一7的商多项式和余多项式(x2+2x-2)(5x3+2x2+1)n=conv(3 0 1 0,3 0 0 0.5);d=conv(l 2-2,5 2 0 1);q,r=deconv(n,d)4> 一元多项式p = 2/ 3/+4x ,写出表示p的MATLAB语句 p=12 0 -3 4 0,求p = 0的根的MATLAB语句是 roots(p),求X = 4.3时p的数值的MATLAB语句是polyval(p,4.3)。程序设计1、 M脚本文件和函数文件的有什么区别?最主要的差异是,函数有自己的独立工作区,和外界的信息交换通过输入输出参数实现; 而脚本没有独立工作区,其直接使用宿主程序的工作区,并把结果留在宿主程序中。2、掌握下面程序设计中常用的函数及关键字:input forpausewhilewarning if elseifnargin nargoutelse switch caseotherwisecontinue3、 分别用for和while循环语句计算K = 的程序。还请写出一种防止循环的计算程序。(不要用symsum函数)K=0;for i=0:63K=0; i=0;while i<=63K=K+i;i=i+l;endK 二 sum(2.A(0:63)MATLAB提供了两种循环结构,一种是for循环结构,另一种是 while循环结构。4、 编写M函数求和s = l + 2 + 3dFnfunction s=mysum(n)s = sum(l :n);编写M函数求积p = lx2x3xxfunction p=mysum(n)p = prod(l :n);7、编写M函数列出从整数a到整数b之间能被3整除的奇数。function r=odds3(a,b)r=a:b;r=r(mod(r,2)= 1 &mod(r,3)=0)编写M脚本列出从100到200不能被3整除同时也不能被7整除的数。X=100:200;X(mod(X,3)=0&mod(X,7)=0)9、一张纸厚0.06mm且足够大,试问将纸对折多少次,其厚度将超过10000m?按题意,就是要求2八n * 0.06E-3 >= 10000,所以n = ceil(log(10000/0.06e-3)/log(2)10、编写MATLAB脚本输出“水仙花数”及水仙花数的个数。所谓“水仙花数”是一个3位数,其各位数字的立方和等于该数本身。例如153 = "+53 +33。c=0;for n= 100:999m=fix(n/100) fix(mod(n,100)/10) mod(n,10);if n=sum(m.A3),fprintf('%i = %iA3 + %iA3 + %iA3nn,m); c=c+l;endendfprintf('n共1个水仙花数n;c)输出结果:153 = 1 八3+ 5 八3+ 3 人3370 = 3A3 + 7A3 + 0A3371 = 3八3+ 7八3 + 1A3407 = 4A3 + 0A3 + 7A3共4个水仙花数绘图1、 MATLAB中,绘制三维曲面图的函数是()(A) surf(B) plot(C) subplot(D) plot3MATLAB中,要绘制三维空间曲线,应该使用()函数。(A) polar(B) plot(C) subplot(D) plot3在MATLAB中,A是一个1000行2列的二维数值数组,现在要把A的第一列数据作 为横坐标,把A的第二列数据作为纵坐标,画出一条曲线,试写出相应的MATLAB 语句.plot(A(:, 1 ),A(:,2)o2、 MATLAB绘图指令中的subplol指令允许用户在同一个图形窗里布置几个独立的子 图。5、编写一段matlab程序,绘制出二元函数z =生”吧上三维网线图,要求如下: 孙(1) x, y 的取值范围为9Wx<9, -9<y<9;(2) x, y每隔0.5取一个点;(3)图形的线型和颜色由MATLAB自动设定x,y=meshgrid(-9:0.5:9)+eps);% 加 eps 防止出现 0/0z=2*sin(x).*sin(y)./(x.*y);mesh(x,y,z)编写一段matlab程序,绘制出函数y = xsin(),y2 = sin(2x)图形的MATLAB语句, x要求如下:(1) x的取值范围为 34xW3;(2) x每隔0.01取一个点;(3) yl和y2的图形要画在同一幅图里;(4)图形的线型和颜色由MATLAB自动设定。x=(-3:0.01:3)+eps;%加eps防止出现除。警告yl=x.*sin(l./x);y2=sin(2*x);plot(x,yl,x,y2)符号计算1、在MATLAB中,能正确的把x、y定义成符号变量的指令是()(A) sym x y(B) sym x , y(C) syms x , y(D) syms x y要清除MATLAB工作空间中保存的变量,应该使用clear指令。2、 在 MATLAB 中,指令 findsym(symCsin(w*t)l)的执行结果是qy。3、 在MATLAB中,写出把x和v定义为符号变量的相应语句 syms x y。5、求解以下方程组的符号解:x1+x2+ 3x3 -x4 = 2x2 - x3 + x4 = 1 x1+x2+ 2x3 + 2x4 = 4- x2 + x3 - x4 = 03x + 4y-7z-12w = 4 5x-7y + 4z + 2w = -3 x + 8z-5vv = 9-6x + 5y-2z + 10vv = -8A=l 1 3-l;0 1 -1 1;1 1 2 2;1 -1 1 -1;b=2;l;4;0;x=sym(A)bA=3 4 -7-12;5 -7 4 2;1 0 8 -5;-6 5-2 10;b=4;-3;9;-8;xyzw=sym(A)b6、求极限:(1) 求函数y = (1 +无产在x = 0处的极限;» syms x»limit(l+x)A(l/x),0)ans =exp(l)sin 3x(2) 求函数y =在x = 0处的极限;tg5x» syms x»limit(sin(3*x)/tan(5*x),0) ans =3/5求函数y = 丁在趋向正无穷处的极限;» syms x n» limit(n*x/3Ax,inf) ans =0In2 x(3) 求函数y =在趋向正无穷处的极限;X» syms x» limit(log(x)A2/xA3 ,inf) ans 二0求导数:(1) 求函数 > =二3x + 3的50阶导数;x» syms x» y=l/x八2-3*x+3;» diff(y,50) ans =A52求函数y = Qsin(/?J + L)在,处的3阶导数; syms t a b cy=asin(b*exp(cAt)+tAa);simple(subs(diff(y,t,3),t,b)8、求不定积分:fl, fl,r Vx2 3 x2 +3ax-ax/axJ sin3 xJ a2-x2J Vx4-9» syms x»int(l/sin(x)A3) ans =-1 /2/sin(x)八 2*cos(x)+ l/2*log(csc(x)-cot(x)» syms x a» int(l/(aA2-xA2) ans 二-1 /2/a*log(a-x)+1 /2/a*log(a+x) » syms x» int(sqrt(xA2-3)-sqrt(xA2+3)/sqrt(xA4-9)ans =(xA4-9)A(l/2)/(xA2-3)A(l /2)/(xA2+3)A(l /2)*asinh( 1 /3 *3 八(1 /2)*x)-1 /(xA2+3)A(l /2)*(xA4-9)A(1 /2)/(xA2-3)A(l /2)*log(x+(xA2-3)A(l /2)9、9、求定积分及广义积分J-7Csin xcos xdxl2f(» syms x a» int(sqrt(xA2+a),-2,2)ans =2*(4+a)八(l/2)+l/2*a*k)g(2+(4+a)八(l/2)-l/2*a*log(-2+(4+a)八(1/2) » syms x» int(sin(x)A2*cos(x)A2,-pi,pi)ans =l/4*pi» syms x y» int(int(xA2+yA2,y, 1 ,xA2), 1,2)ans =1006/10510、求下面的积分,给出50位精度的数值:2 工2j j (sin2 a: + sin2 ydydx» syms x y» J=int(int(sin(x)A2+sin(y)A2,y, 1 ,xA2), 1,2);» vpa(J,50)ans = 11、级数求和:En=8Z(3" + l)(zT)(x>0)» syms z n» symsum(z-1 )An/(nA2*2An),n, 1 ,inf) ans =(l/2*z-l/2)*hypergeom(l, 1, 1,2, 2,l/2*z-l/2) » syms z n» symsum(3*n+1 )*(z-1)八n,n,l,inf)ans =(4*z-4)*(- l/(z-2)+3/4/(z-2)八 2*(z-1) » syms z n» symsum(n*(-1 )A(n+ l)*zAn,n,l,mf)ans =z/(z+l)A2 » syms x positive» syms k» simple(symsum(2/(2*k+1 )*(x-1 )/(x+1)八(2*k+ l),k,0,inf)ans =log(-(l+(xA2-2*x+ l)/(xA2+2*x+ l)A(l/2)/(-l +(x 八 2-2*x+1 )/(x 八 2+2*x+ l)A(l/2)