matlab基础练习题(带答案)

matlab基础练习题(带答案)
matlab基础练习题(带答案)

Matlab 基础练习题

常量、变量、表达式

1、 MATLAB 中,下面哪些变量名是合法的?( )

(A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。

(A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( )

(A )eps (B )none (C )zero (D )exp

4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放

一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 )

5、 判断:MA TLAB 中,i 和j ( 对 )

6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 )

7、 在MA TLAB 中,若想计算的5

1)3.0sin(21+=

πy 值,那么应该在MA TLAB 的指令窗中

输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。

8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字

节。

9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。

数组

1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序

的逆序排列输出,应该使用下面的( )指令。

(A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,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、 在MA TLAB 中,依次执行以下指令: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

5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应

该是L1 =___ 1 1 1 1 1 0 0 0 0___。

6、在MA TLAB中,要求在闭区间[0,5]上产生50个等距采样的一维数组b,请写出具体

的MA TLAB指令___linspace(0,5,50) ___。

7、在MA TLAB中,A = [0:1/2:2]*pi,那么sin(A) = ___[0 1 0 -1 0]_____。

8、在MA TLAB中,A=[1,2,3;4,5,6;7,8,0],B=[2,1,6;8,5,2;14,2,1]。写出下面MATLAB语句

执行的结果:(为节省篇幅,把矩阵写成mat2str的形式)

(1)A==B [0 0 0; 0 1 0; 0 0 0]

(2) A.*B [2 2 18;32 25 12;98 16 0]

(3)A(:)' [1 4 7 2 5 8 3 6 0]

(4)A(1,:)*B(:,3) 13

9、在MA TLAB中,写出下面MA TLAB语句执行的结果:

(1)clear,A = ones(2,6)

A =

1 1 1 1 1 1

1 1 1 1 1 1

(2)A(:) = 1:2:24

A =

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 3

10、请编写一段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))

(2) 求出这些质数之和;

sum(p)

(3) 求出100到200之间的所有非质数之和(包括100和200)。

sum(X(~isprime(X)))

12、 22cos 0.7sin (1)x y x x ??

=+

??+??

,编写一段matlab 程序,要求如下

(1) 在[0,2]π区间,每隔0.01取一x 数值,计算出相应的y 的函数值;

x=0:0.01:2*pi;

y=(0.7+2*cos(x)./(1+x.^2)).*sin(x)

(2) 根据MATLAB 计算出的数据,找出在[0,2]π内该函数的极小值的坐标。

[my,idx]=min(y) x(idx)

数值计算

1、 在MA TLAB 中,A 是一个10×10数组,我们把该数组看成矩阵的话,则此矩阵的行列

式值 = ___det(A)__,此矩阵的逆矩阵(如果存在的话) = _inv(A)___。(用MATLAB 的函数表示) 2、 求解下列方程组:

1234234123412343212240

x x x x x x x x x x x x x x x ++-=??-+=??

+++=??-+-=?347124

57423859652108

x y z w x y z w x z w x y z w +--=??-++=-?

?

+-=??-+-+=-? A=[1 1 3 -1;0 1 -1 1;1 1 2 2;1 -1 1 -1];

b=[2;1;4;0]; x=A\b

A=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; b=[4;-3;9;-8]; xyzw=A\b

3、 求有理分式()()

()()

3

32

3

2

30.522521x

x x R x

x x x ++=

+-++的商多项式和余多项式

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、 一元多项式4

2

234p x x x =-+,写出表示p 的MATLAB 语句__p=[2 0 -3 4 0]__,求

0p =的根的MA TLAB 语句是____ roots(p)__,求 4.3x =时p 的数值的MA TLAB 语句是__ polyval(p,4.3)___。

程序设计

1、 M 脚本文件和函数文件的有什么区别?

最主要的差别是,函数有自己的独立工作区,和外界的信息交换通过输入输出参数实现;而脚本没有独立工作区,其直接使用宿主程序的工作区,并把结果留在宿主程序中。 2、 掌握下面程序设计中常用的函数及关键字:

input pause warning nargin nargout for while if elseif else switch case otherwise end try catch break continue end 3、 分别用for 和while 循环语句计算63

2

i

i K ==

∑的程序。还请写出一种避免循环的计算程

序。(不要用symsum 函数) K=0; for i=0:63 K=K+i; end

K=0; i=0; while i<=63 K=K+i; i=i+1; end

K = sum(2.^(0:63))

4、 MATLAB 提供了两种循环结构,一种是for 循环结构,另一种是__while _循环结构。

5、 编写M 函数求和123s n =++++L

function s=mysum(n) s = sum(1:n); 6、 编写M 函数求积123p n =????L

function p=mysum(n) p = prod(1:n);

7、 编写M 函数列出从整数a 到整数b 之间能被3整除的奇数。

function r=odds3(a,b) r=a:b;

r=r(mod(r,2)==1&mod(r,3)==0)

8、 编写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

位数,其各位数字的立方和等于该数本身。例如3

3

3

153153=++。 c=0;

for n=100:999

m=[fix(n/100) fix(mod(n,100)/10) mod(n,10)]; if n==sum(m.^3),

fprintf('%i = %i^3 + %i^3 + %i^3\n',n,m); c=c+1; end end

fprintf('\n 共%i 个水仙花数\n',c)

输出结果:

153 = 1^3 + 5^3 + 3^3 370 = 3^3 + 7^3 + 0^3 371 = 3^3 + 7^3 + 1^3 407 = 4^3 + 0^3 + 7^3

共4个水仙花数

绘图

1、 MATLAB 中,绘制三维曲面图的函数是( )

(A )surf (B )plot (C )subplot (D )plot3 2、 MATLAB 中,要绘制三维空间曲线,应该使用( )函数。

(A )polar (B )plot (C )subplot (D )plot3

3、 在MA TLAB 中,A 是一个1000行2列的二维数值数组,现在要把A 的第一列数据作

为横坐标,把A 的第二列数据作为纵坐标,画出一条曲线,试写出相应的MATLAB 语句_____plot(A(:,1),A(:,2))______。

4、 MATLAB 绘图指令中的__subplot _指令允许用户在同一个图形窗里布置几个独立的子

图。 5、 编写一段matlab 程序,绘制出二元函数2sin sin x y

z xy

=

三维网线图,要求如下:

(1)x ,y 的取值范围为99x -≤≤,99y -≤≤; (2)x ,y 每隔0.5取一个点;

(3)图形的线型和颜色由MA TLAB 自动设定

[x,y]=meshgrid((-9:0.5:9)+eps); % 加eps 避免出现0/0 z=2*sin(x).*sin(y)./(x.*y); mesh(x,y,z)

6、 编写一段matlab 程序,绘制出函数11sin(),2sin(2)y x y x x

==图形的MA TLAB 语句,

要求如下:

(1)x 的取值范围为33≤≤-x ; (2)x 每隔0.01取一个点;

(3)y1和y2的图形要画在同一幅图里;

(4)图形的线型和颜色由MA TLAB 自动设定。 x=(-3:0.01:3)+eps; % 加eps 避免出现除0警告 y1=x.*sin(1./x); y2=sin(2*x); plot(x,y1,x,y2)

符号计算

1、 在MA TLAB 中,能正确的把x 、y 定义成符号变量的指令是( )

(A )sym x y (B )sym x , y (C )syms x , y (D )syms x y

2、 要清除MA TLAB 工作空间中保存的变量,应该使用_clear _指令。

3、 在MA TLAB 中,指令findsym(sym('sin(w*t)'),1)的执行结果是__w __。

4、 在MA T L AB 中,写出把x 和y 定义为符号变量的相应语句__syms x y _。

5、 求解下列方程组的符号解:

1234234123412343212240

x x x x x x x x x x x x x x x ++-=??-+=??

+++=??-+-=?347124

57423859652108

x y z w x y z w x z w x y z w +--=??-++=-?

?

+-=??-+-+=-? A=[1 1 3 -1;0 1 -1 1;1 1 2 2;1 -1 1 -1];

b=[2;1;4;0]; x=sym(A)\b

A=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; b=[4;-3;9;-8]; xyzw=sym(A)\b

6、 求极限:

(1) 求函数()11x

y x =+在0x =处的极限;

>> syms x

>> limit((1+x)^(1/x),0) ans = exp(1)

(2) 求函数sin 35x

y tg x

=

在0x =处的极限; >> syms x

>> limit(sin(3*x)/tan(5*x),0) ans = 3/5

(3) 求函数3x

nx

y =

在趋向正无穷处的极限; >> syms x n

>> limit(n*x/3^x,inf) ans = 0

(4) 求函数23ln x

y x

=在趋向正无穷处的极限;

>> syms x

>> limit(log(x)^2/x^3,inf) ans = 0

7、 求导数:

(1) 求函数21

33y x x

=

-+的50阶导数; >> syms x

>> y=1/x^2-3*x+3; >> diff(y,50) ans =

1551118753287382280224243016469303211063259720016986112000000000000/x^52

(2) 求函数(

)sin t

c a

y a be t

=+在t b =处的3阶导数;

syms t a b c

y=a*sin(b*exp(c^t)+t^a); simple(subs(diff(y,t,3),t,b))

8、 求不定积分:

3221

1

sin dx dx

x a x -??

>> syms x

>> int(1/sin(x)^3) ans =

-1/2/sin(x)^2*cos(x)+1/2*log(csc(x)-cot(x))

>> syms x a

>> int(1/(a^2-x^2))

ans =

-1/2/a*log(a-x)+1/2/a*log(a+x)

>> syms x

>> int((sqrt(x^2-3)-sqrt(x^2+3))/sqrt(x^4-9))

ans =

(x^4-9)^(1/2)/(x^2-3)^(1/2)/(x^2+3)^(1/2)*asinh(1/3*3^(1/2)*x)-1/(x^2+3)^(1/2)*(x ^4-9)^(1/2)/(x^2-3)^(1/2)*log(x+(x^2-3)^(1/2))

9、求定积分及广义积分

()

2

22

2222

11

sin cos x

x xdx x y dydx

π

π

--

+

????

>> syms x a

>> int(sqrt(x^2+a),-2,2)

ans =

2*(4+a)^(1/2)+1/2*a*log(2+(4+a)^(1/2))-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(x^2+y^2,y,1,x^2),1,2)

ans =

1006/105

10、求下面的积分,给出50位精度的数值:

()

2

222

11

sin sin

x

x y dydx

+

??

>> syms x y

>> J=int(int(sin(x)^2+sin(y)^2,y,1,x^2),1,2);

>> vpa(J,50)

ans =

2.1540459589705316265997501755762001048498664176916

11、级数求和:

()

()()

()()

2

11

21

!

10

1

311

2

21

10

211

n

n

n

n n

k

n n

n k

z

n z

n

x

n z x

k x

∞∞

==

+

∞∞

+

==

-

+-

-

??

->

?

++

??

∑∑

∑∑

>> syms z n

>> symsum((z-1)^n/(n^2*2^n),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)*z^n,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+((x^2-2*x+1)/(x^2+2*x+1))^(1/2))/(-1+((x^2-2*x+1)/(x^2+2*x+1))^(1/2)))

相关主题
相关文档
最新文档