1、Matlab基础练习题常量、变量、表达式1、 MATLAB中,下面哪些变量名是合法的?()(A)_num(B)num_(C)num-(D)-num2、 在MATLAB中,要给出一个复数z的模,应该使用()函数。(A)mod(z)(B)abs(z)(C)double(z)(D)angle(z)3、 下面属于MATLAB的预定义特殊变量的是?()(A)eps本题有问题,出题的本意应该是选择eps,但其实eps是一个函数,并非变量。(B)none(C)zero(D)exp4、 判断:在MATLAB的内存工作区中,存放一个英文字符 a 需要占用1个字节,存放一个中文字符啊需要占用2个字节。(错,都是2
2、个字节)5、 判断:MATLAB中,i和j都是虚数单位,它们之间没有什么区别。(对)6、 判断:MATLAB中,pi代表圆周率,它等于3.14。(错,后面还有很多位小数)7、 在MATLAB中,若想计算的值,那么应该在MATLAB的指令窗中输入的MATLAB指令是_y1=2*sin(0.3*pi)/(1+sqrt(5)_。8、 在MATLAB中,a = 1,b = i,则a占_8_个字节,b占_16_个字节,c占_字节。哪里来的c?9、 在MATLAB中,inf的含义是_无穷大_,nan的含义是_非数(结果不定)_。数组1、 在MATLAB中,X是一个一维数值数组,现在要把数组X中的所有元素按
3、原来次序的逆序排列输出,应该使用下面的()指令。(A)Xend:1(B)Xend:-1:1(C)X (end:-1:1)(D)X(end:1)2、 在MATLAB中,A是一个字二维数组,要获取A的行数和列数,应该使用的MATLAB的命令是()。(A)class(A)(B)sizeof(A)(C)size(A)(D)isa(A)3、 在MATLAB中,用指令x=1:9生成数组x。现在要把x数组的第二和第七个元素都赋值为0,应该在指令窗中输入()(A)x(2 7)=(0 0)(B)x(2,7)=0,0(C)x(2,7)=0 0(D)x(2 7)=(0 0)4、 在MATLAB中,依次执行以下指令:
4、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 45、 在MATLAB中,A = 1:9,现在执行如下指令L1 = (A5),则MATLAB的执行结果应该是L1 =_ 1 1 1 1 1 0 0 0 0_。6、 在MATLAB中,要求在闭区间0,5上产生50个等距采样的一维数组b,请写出具体的MATLAB指令_linspace(0,5,50) _。7、 在MATLAB中,A = 0:1/
5、2:2*pi,那么sin(A) = _0 1 0 -1 0_。8、 在MATLAB中,A=1,2,3;4,5,6;7,8,0,B=2,1,6;8,5,2;14,2,1。写出下面MATLAB语句执行的结果:(为节省篇幅,把矩阵写成mat2str的形式)(1) A=B0 0 0; 0 1 0; 0 0 0(2) A.*B2 2 18;32 25 12;98 16 0(3) A(:)1 4 7 2 5 8 3 6 0(4) A(1,:)*B(:,3)139、 在MATLAB中,写出下面MATLAB语句执行的结果: (1) clear,A = ones(2,6)A = 1 1 1 1 1 1 1 1
6、1 1 1 1(2) A(:) = 1:2:24A = 1 5 9 13 17 21 3 7 11 15 19 23(3) A(1:3:7)ans = 1 7 13(4) diag(diag(A)ans = 1 0 0 7(5) B = A(:,end:-1:1)B = 21 17 13 9 5 1 23 19 15 11 7 310、 请编写一段matlab程序,完成以下功能:(1) 生成一个100行,200列的二维随机数组;A=rand(100,200);(2) 找出数组A中所有大于0.49且小于0.51的元素的单下标;Idx=find(A(:)0.49 & A(:)0.51)(3) 数组
7、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)(2) 求出这些质数之和;sum(p)(3) 求出100到200之间的所有非质数之和(包括100和200)。sum(X(isprime(X)12、 ,编写一
8、段matlab程序,要求如下(1) 在区间,每隔0.01取一数值,计算出相应的的函数值;x=0:0.01:2*pi;y=(0.7+2*cos(x)./(1+x.2).*sin(x)(2) 根据MATLAB计算出的数据,找出在内该函数的极小值的坐标。my,idx=min(y)x(idx)数值计算1、 在MATLAB中,A是一个1010数组,我们把该数组看成矩阵的话,则此矩阵的行列式值 = _det(A)_,此矩阵的逆矩阵(如果存在的话) = _inv(A)_。(用MATLAB的函数表示)2、 求解下列方程组:A=1 1 3 -1;0 1 -1 1;1 1 2 2;1 -1 1 -1;b=2;1;
9、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=Ab3、 求有理分式的商多项式和余多项式n=conv(3 0 1 0,3 0 0 0.5);d=conv(1 2 -2,5 2 0 1);q,r=deconv(n,d)4、 一元多项式,写出表示的MATLAB语句_p=2 0 -3 4 0_,求的根的MATLAB语句是_ roots(p)_,求时的数值的MATLAB语句是_ polyval(p,4.3)_。程序设计1、 M脚本文件和函数文件的有什么区别?最主要的差别是,函数有自己的独立工作区,和外界的信息交换通过
10、输入输出参数实现;而脚本没有独立工作区,其直接使用宿主程序的工作区,并把结果留在宿主程序中。2、 掌握下面程序设计中常用的函数及关键字:inputpausewarningnarginnargoutforwhileif elseifelseswitch caseotherwiseendtrycatchbreakcontinueend3、 分别用for和while循环语句计算的程序。还请写出一种避免循环的计算程序。(不要用symsum函数)K=0;for i=0:63K=K+i;endK=0; i=0;while i= 10000,所以n = ceil(log(10000/0.06e-3)/log
11、(2)10、 编写MATLAB脚本输出“水仙花数”及水仙花数的个数。所谓“水仙花数”是一个3位数,其各位数字的立方和等于该数本身。例如。c=0;for n=100:999m=fix(n/100) fix(mod(n,100)/10) mod(n,10);if n=sum(m.3),fprintf(%i = %i3 + %i3 + %i3n,n,m);c=c+1;endendfprintf(n共%i个水仙花数n,c)输出结果:153 = 13 + 53 + 33370 = 33 + 73 + 03371 = 33 + 73 + 13407 = 43 + 03 + 73共4个水仙花数绘图1、 MA
12、TLAB中,绘制三维曲面图的函数是()(A)surf(B)plot(C)subplot(D)plot32、 MATLAB中,要绘制三维空间曲线,应该使用()函数。(A)polar(B)plot(C)subplot(D)plot33、 在MATLAB中,A是一个1000行2列的二维数值数组,现在要把A的第一列数据作为横坐标,把A的第二列数据作为纵坐标,画出一条曲线,试写出相应的MATLAB语句_plot(A(:,1),A(:,2)_。4、 MATLAB绘图指令中的_subplot_指令允许用户在同一个图形窗里布置几个独立的子图。5、 编写一段matlab程序,绘制出二元函数三维网线图,要求如下:
13、(1),的取值范围为,;(2),每隔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)6、 编写一段matlab程序,绘制出函数图形的MATLAB语句,要求如下:(1)的取值范围为;(2)每隔0.01取一个点;(3)y1和y2的图形要画在同一幅图里;(4)图形的线型和颜色由MATLAB自动设定。x=(-3:0.01:3)+eps; % 加eps避免出现除0警告y1=x.*sin(1./x);y2=sin(2*x);plot(x
14、,y1,x,y2)符号计算1、 在MATLAB中,能正确的把x、y定义成符号变量的指令是()(A)sym x y(B)sym x , y(C)syms x , y(D)syms x y2、 要清除MATLAB工作空间中保存的变量不是想说清除符号运算内核中的变量吧?,应该使用_clear_指令。3、 在MATLAB中,指令findsym(sym(sin(w*t),1)的执行结果是_w_。4、 在MATLAB中,写出把x和y定义为符号变量上面不是刚考过吗?的相应语句_syms x y_。5、 求解下列方程组的符号解:A=1 1 3 -1;0 1 -1 1;1 1 2 2;1 -1 1 -1;b=2
15、;1;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) 求函数在处的极限; syms x limit(1+x)(1/x),0) ans = exp(1)(2) 求函数在处的极限; syms x limit(sin(3*x)/tan(5*x),0) ans = 3/5(3) 求函数在趋向正无穷处的极限; syms x n limit(n*x/3x,inf) ans = 0 (4) 求函数在趋向正无穷处的极限; syms x limit(log(x)2/x3,inf)
16、ans = 07、 求导数:(1) 求函数的50阶导数; syms x y=1/x2-3*x+3; diff(y,50) ans = 1551118753287382280224243016469303211063259720016986112000000000000/x52(2) 求函数在处的3阶导数;syms t a b cy=a*sin(b*exp(ct)+ta);simple(subs(diff(y,t,3),t,b)8、 求不定积分: syms x int(1/sin(x)3) ans = -1/2/sin(x)2*cos(x)+1/2*log(csc(x)-cot(x) syms
17、x a int(1/(a2-x2) ans = -1/2/a*log(a-x)+1/2/a*log(a+x) syms x int(sqrt(x2-3)-sqrt(x2+3)/sqrt(x4-9)ans = (x4-9)(1/2)/(x2-3)(1/2)/(x2+3)(1/2)*asinh(1/3*3(1/2)*x)-1/(x2+3)(1/2)*(x4-9)(1/2)/(x2-3)(1/2)*log(x+(x2-3)(1/2)9、 求定积分及广义积分 syms x a int(sqrt(x2+a),-2,2) ans = 2*(4+a)(1/2)+1/2*a*log(2+(4+a)(1/2)-
18、1/2*a*log(-2+(4+a)(1/2) syms x int(sin(x)2*cos(x)2,-pi,pi) ans = 1/4*pi syms x y int(int(x2+y2,y,1,x2),1,2) ans = 1006/10510、 求下面的积分,给出50位精度的数值: syms x y J=int(int(sin(x)2+sin(y)2,y,1,x2),1,2); vpa(J,50) ans = 2.154045958970531626599750175576200104849866417691611、 级数求和: syms z n symsum(z-1)n/(n2*2n)
19、,n,1,inf) ans = (1/2*z-1/2)*hypergeom(1, 1, 1,2, 2,1/2*z-1/2) syms z n symsum(3*n+1)*(z-1)n,n,1,inf) ans = (4*z-4)*(-1/(z-2)+3/4/(z-2)2*(z-1) syms z n symsum(n*(-1)(n+1)*zn,n,1,inf) ans = z/(z+1)2 syms x positive syms k simple(symsum(2/(2*k+1)*(x-1)/(x+1)(2*k+1),k,0,inf) ans = log(-(1+(x2-2*x+1)/(x2+2*x+1)(1/2)/(-1+(x2-2*x+1)/(x2+2*x+1)(1/2)