您的当前位置:首页正文

MatLab考试题题库(必做题)(带答案)

2021-07-13 来源:钮旅网
 MatLab考试题题库(必做题)(带答案)

一,

1. 请登陆美国 MathWorks 公司的网站 (),查看看现在大概有多少本 MATLAB-based books (以 MATLAB 为基本软件,来说明各个专业领域的教科书或工具书)。哪一个领域的 MATLAB-based books 最多?中文书共有几本?

答:1612本,数学方面的最多,中文书共有37本。

2. 请在 MATLAB中直接输入下列常数,看它们的值是多少:

a. i b. j c. eps d. inf e. nan f. pi g. realmax h. realmin

依次解为:ans = 0 + 1.0000i ans = 0 + 1.0000i ans =2.2204e-016

ans =Inf ans = NaN ans =3.1416 ans = 1.7977e+308 ans =2.2251e-308

3. 试写一函数 regPolygon(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 边形,其中一顶点位于 (0, 1)。例如 regPolygon(8) 可以画出如下之正八边型:

1 / 29

解:新建regPolygon.m文件如下: function y=regPolyfon(n) n=8;%要画的n边形 R=1; %圆的半径 t=0:0.01:2*pi; x=R*cos(t); y=R*sin(t);

m=linspace(pi/2,5/2*pi,n+1); xz=R*cos(m); yz=R*sin(m); hold on

plot(x,y,xz,yz); axis 'equal';

4. 一条参数式的曲线可由下列方程式表示:

x = sin(t), y = 1 - cos(t) + t/10

当 t 由 0 变化到 4*pi 时,请写一个 MATLAB 的脚本 plotParam.m,画出此曲线在 XY 平面的轨

2 / 29

迹。

解:新建plotParam.m: t = linspace(0, 4*pi); x = sin(t); y = 1-cos(t)+t/10; plot(x, y, '-o');

32.521.510.50-1-0.8-0.6-0.4-0.200.20.40.60.81

5. 当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变化丰富的摆线。假设小圆轮的半径 r=2。

a. 当小圆轮绕着一个大圆(半径 R=5)的外部滚动时,请画此「圆轮摆

线」或「外花瓣线」。

b. 重复上小题,但改成在大圆的内部滚动,请画出此「内花瓣线」。

3 / 29

提示:下图显示在不同的 R 和 r 值,所产生的圆轮摆线。

解:R=5;% 大圆半徑 r=2;% 小圆半徑

4 / 29

n=r/gcd(r, R);% 圈数

t=linspace(0, n*2*pi, 1000); c=R*exp(i*t); % 內花瓣线

c1=(R-r)*exp(i*t)+r*exp(i*(-R*t/r+t)); % 外花瓣线

c2=(R+r)*exp(i*t)+r*exp(i*(pi+R*t/r+t));

plot(real(c), imag(c), real(c1), imag(c1), real(c2), imag(c2)); axis image

title('內花瓣线(绿色)和外花瓣线(红色)');

6. 一个空间中的椭球可以表示成下列方程式:

(x/a)+(y/b)+(z/c) = 1

请使用任何你可以想到的方法,画出三维空间中的一个平滑的椭球,其中 a = 3,b = 4,c = 8。(但不能使用 ellipsoid 指令。) 解:x=-3:0.1:3; y=-4:0.1:4;

[X,Y]=meshgrid(x,y);

Z1=sqrt(64-64*X.*X/9-16*Y.*Y); surf(X,Y,z1); hold on

Z2=-sqrt(64-64*X.*X/9-16*Y.*Y); surf(X,Y,Z2);

2

2

2

5 / 29

7. 请用 ez 开头的绘图指令(例如 ezmesh、ezsurf、ezmeshc、ezsurfc、ezplot3、ezcontour 等),画出一个你认为最炫的立体图形。 Ezmesh:

8. 画出下列方程式的曲面图及等高线图:

z = sin(x/2)cos(y)

其中,x 的 21 个值均匀分布在 [-2*pi, 2*pi] 范围,y 的 31 值均匀分布在 [-1.5*pi, 1.5*pi]。请使用 subplot(2,1,1) 和 subplot(2,1,2) 将产生的曲面图和等高线图在同一个窗口上,产生的图形应类似下图:

解:x = linspace(-2*pi, 2*pi, 21); y = linspace(-1.5*pi, 1.5*pi, 31); [xx, yy] = meshgrid(x, y); zz = sin(xx/2).*cos(yy); subplot(2,1,1)

surf(xx, yy, zz); axis image subplot(2,1,2)

contour(xx, yy, zz); axis image

6 / 29

4210-140250-20-4-5-4-505-2

9.假设一曲线资料点为

x = 0:2:4*pi;

y = sin(x).*exp(-x/5);

试将 x 的间距调成 0.1,并用下列方法进行内插:

a. b. c. d.

线性内插法 (method='linear')。 Spline 内插法 (method='spline')。 三次多项式内插法 (method='cubic')。

多项式拟合法:直接利用 6 次多项式去通过 7 个资料点。

解: x = 0:2:4*pi;

y = sin(x).*exp(-x/5); xx=0:0.1:4*pi;

yyb=interp1(x,y,xx,'linear'); yyc=interp1(x,y,xx,'spline'); yyd=interp1(x,y,xx,'cubic'); yye=polyval(polyfit(x,y,6),x);

plot(xx,yya,xx,yyb,xx,yyc,xx,yyd,xx,yyd,x,y,'r*');

legend('nearest','linear','spline','cubic','poly','source')

7 / 29

grid

title('2007***07**_张*') xlabel('x') ylabel('y')

10.求下列函数的极小点:

222 1) fXx14x29x32x118x2;

32x22x1x2x12x2; 2423) fXx112x2.

2) fXx12 第1),2)题的初始点可任意选取, 第3)题的初始点取为X0,1.

0T1)解: [x,feval]=fminunc(@(x)x(1)^2+4*x(2)^2+9*x(3)^2-2*x(1)-18*x(2),[3 1 2]) 解得:x =

1.0000 2.2500 0.0000 feval = -21.2500

2)解:[x,feval]=fminunc(@(x)x(1)^2+3/2*x(2)^2-2*x(1)*x(2)-x(1)+2*x(2),[1 2]) 解得:x =

8 / 29

-0.5000 -1.0000

feval =

-0.7500

3)解:[x,feval]=fminunc(@(x)(x(1)-1)^4+x(2)^2,[0 1]) 解得:x =

1.0045 -0.0000 feval =

4.0848e-010 二,

一.填空题(每空2分,共24分)

1. 设x是一维数组,x的倒数第3个元素表示为______x(_end-2_)________________;要在x的第36和37个元素之间插入一个元素154,使用的命令(集)为_____________x=x(_1:36,[154],37:end)_______________;设y为二维数组,要

y

34

48

使

______y(34,:)=[];y(:,48)=[]_______________________;

2. 将变量x以Ascii文本格式存储到文件fname.txt,应使用命令__________save ____x_____________;将Excel文件data.xls读入WorkSpace并赋值给变量x,可使用命令________________x=xlsread('data.xls')____________________________; 3. 在while 表达式, 语句体, End 循环语句中,表达式的值__非零_____________时表示循环条件为真,语句体将被执行,否则跳出该循环语句;

4. 打开Matlab的一个程序文件fname.m,以添加的方式进行读写,应当使用命令_____fid= fopen('fname.m','w+');_______________________;

5.要从键盘读入一个字符串并赋值给变量x,且给出提示“Who is she?”,应使用命令________x=input(‘Who is she?’,’s’)_________________________________;使用fprintf()函数以含有2位小数的6位浮点格式输出数值变量weight到文件wt.txt,使用的命令(集)为

fid

=

fopen(‘wt.txt’,’’,_________________);

fprintf

( _______ ) ;

4.设A(aij)mn,B(bij)mn和C(cij)mn均为mn矩阵,且存在于WorkSpace

9 / 29

中,要产生矩阵

D(aijcij)/bij,

cijmn,可用命令___D=(A-

C)/B.^C_________________________算

AB1可用命令

___________det(inv(A’*B))_____________________________;

二.简答题(每小题8分,共24分) 得分 1. (1) 写出关系运算符中的等号、不等号、小于号、大于号、小于等于号和大于等于号;

(2) 写出逻辑操作中逻辑“与”、逻辑“或”及逻辑“非”的符号;

(3) 并用语句表达“如果a等于 b且c等于0就让d 等于3,否则如果a大于b且c=1让d等于 0,其余情况让d等于3”; = = ~= < > <= >= & | ~ if a==b&c==0 d=3

else if a>b&c= =1 d=0 else d=3 end

2. 设A(aij)1010和B(bij)1010是两个10行10列的矩阵(数组),试说明命令A*B, A/B, A\\B, A.*(B.^A), A./B, A.\\B和sin(A).*exp(B)的涵义。

A,B的矩阵乘法,矩阵A乘以B的逆,矩阵B乘以A的逆,B的每个元素的对应A次幂乘以A对应的每个元素

A的每个元素除以B对应的每个元素,B的每个元素除以A对应的每个元素, A的每个元素的正弦与B对应的每个元素的指数求积,

3. 设A为1417数组,B为一个行数大于3的数组,请给出

(1)删除A的第4、8、12三列的命令; (2)删除B的倒数第3行的命令;

tan(mx)x3ln(1e2x)的3阶(3)求符号极限lim的命令集; (4)求yarctanx0nxx2导数的命令集;(5)计算定积分(xsinx)x2dx的命令,并给出计算结果

11(!)A(:,[4 8 12])=[]

(2)B(end-2)=[] (3)syms m n x

10 / 29

limit(tan(m*x)/(n*x)) (4)syms x y

y=atan((x+3)/(x-2))-log(1+exp((-2)*x) diff(y,3) (5)syms x

int((abs(x)+sin(x))*x^2,-1,1) -1/2

三.基本编程题(每小题10分,共30分) 得分 1. Write a program to compute the following expressions

10rij(xk1ikxi)(xjkxj)102,i,j,1,2,(xk110,10;

ikxi)2(xjkxj)k1Here, we suppose the variable x has existed in the workspace.

for i=1:10 for j=1:10

xbar(i)=xbar(i)+x(i,j); end

xbar(i)=xbar(i)/10; end

for i=1:10 for j=1:10

t1=0;t2=0;t3=0; for k=1:3

t1=t1+(x(i,k)-xbar(i))*(x(j,k)-xbar(j)); t2=t2+(x(i,k)-xbar(i))^2; t3=t3+(x(j,k)-xbar(j))^2; end

r2(i,j)=t1/sqrt(t2*t3);

11 / 29

end end r2

2. (1) Using plot() function to plot the curves of

y[sin(2x)cos3x]e2x and zsinx xin the range of x2,2, let their color are red and green respectively, and add the grid to the figure.

(2) Using fplot() function and ezplot() function to plot above-mentioned (上述的) curves respectively.

(1)x=-2*pi:pi/100:2*pi;

y=(sin(2*x)+cos(3*x)).*exp(-2*x); z=sin(x)/x;

plot(x,y,’r’,x,z,’g’)

(2)fplot('[(sin(2*x)+cos(3*x)).*exp(-2*x), sin(x)/x]',[-2*pi 2*pi])

3. Plot the 3D mesh figure and 3D surface figure of the function

f(x,y)9(1x)e2x2/2(y1)2

in the range of4x4 and 4y4, respectively. x=-4:1/100:4; y=-4:1/100:4;

z=9(1-x)^2*exp(-x’^2/2-(y’+1)^2) mesh(x,y,z); surf(x,y,z);

12 / 29

得分 四.综合编程题(每小题11分,共22分)

1. Write a function program to compute the following function

|2i|!,f1(x)31.84sin(2x)x,xi(整数)

其他and call this function program to compute the value of y=f1(-4)+f1(3)-f1(14.37) in main program or command window, there, |i|! shows the factorial (阶乘) of |i|. 提示:对x取整的函数有fix(x), floor(x), round(x) 和ceil(x) . fuction y=f1(x) %f1.m if x-fix(x)= =0

y=prod(1:abs(2*x)); else

y=4*sin(2*x)+x^1.8;

y=f1(-4)+f1(3)-f1(14.37)

2. Write a program to compute the sample mean

1nxbar=x=xi,

ni1and the sample skewness (偏度)

1nske(xix)3 .

ni113 / 29

for the following three case:

(1) n and x[x1,x2,,xn] exist in Workspace of Matlab. It is no any limit;

(2) n and x[x1,x2,,xn] are unknown variables. Please input x by keyboard one by one, and give a mark of end the data input. Examinees can use loop statement and length() function and input() function, but cannot use mean() function, std() function, and var() function directly (可以使用循环语句和length()函数、input()函数等进行编程,但不能直接使用mean()、std()和var()等函数). (1)s=0; for i=1:n s=s+x(i); end xbar=s/n m=0; for i=1:n

m=m+(x(i)-xbar)^3; end ske=m/n

(2)x(1)=input('请输入x '); i=1;s=0; while(x(i)~='a') s=s+x(i); i=i+1;

x(i)=input('请输入x ,输’a’结束'); end xbar=s/(i-1) m=0; for j=1:i-1 m=m+(x(i)-xbar)^3; end

14 / 29

ske=m/(i-1)

三,

产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏) 答案:

a=10*rand(1,10)-5; b=sort(a,'descend')

1.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5] 2. 已知变量:A=’ilovematlab’;B=’matlab’, 请找出: (A) B在A中的位置。

(B) 把B放在A后面,形成C=‘ilovematlabmatlab’ 3. 请修改下面的程序,让他们没有for循环语句! A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c

if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end

4. 请把变量A=[1 2 3; 4 5 6; 7 8 9]写到文件里(output.xls),写完后文件看起来是这样的 1 2 3 4 5 6 7 8 9

5.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。

6.编写M文件,从Yahoo网站批量读取60000.SH至600005.SH在2008年9月份的每日收盘价(提示:使用字符串函数)。

7. 将金牛股份(000937)2005年12月14日至2006年1月10日的交易记录保存到Excel中,编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。

8.已知资产每日回报率为0.0025,标准差为0.0208,资产现在价值为0.8亿,求5%水平下资产的10天在险价值(Var)。

15 / 29

9.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单哦。

1、求下列联立方程的解 3x+4y-7z-12w=4 5x-7y+4z+ 2w=-3 x +8z- 5w=9 -6x+5y-2z+10w=-8 求系数矩阵的秩; 求出方程组的解。 解:(1)

>> a=[3 4 -7 -12]; 5 -7 4 2 ; 1 0 8 -5; -6 5 -2 10]; c=[4; -3; 9;-8]; b=rank(a) b = 4

(2)>> d=a\\c

d = -1.4841, -0.6816, 0.5337,-1.2429

即: x=-1.4841;y= -0.6816;z= 0.5337;w=-1.2429

2、设 y=cos[0.5+((3sinx)/(1+x^2))] 把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线;

解:>> x=linspace(0,2*pi,101); y=cos(0.5+3.*sin(x)./(1+x.*x)); plot(x,y)

3、设 f(x)=x^5-4x^4+3x^2-2x+6

(1)取x=[-2,8]之间函数的值(取100个点),画出曲线,看它有几个零点。 (提示:用polyval 函数) 解:>>p=[1 -4 3 -2 6];

16 / 29

x=linspace(-2,8,100); y=polyval(p,x); plot(x,y);

axis([-2,8, -200,2300]);

为了便于观察,在y=0处画直线,图如下所示:

与y=0直线交点有两个,有两个实根。 (2)用roots函数求此多项式的根 >> a=roots(p)

a = 3.0000 ,1.6956 , -0.3478 + 1.0289i , -0.3478 - 1.0289i

4、在[-10,10;-10,10]范围内画出函数 的三维图形。

解:>>[X,Y]=meshgrid(-10 : 0.5 :10); a=sqrt(X.^2+Y.^2) +eps; Z=sin(a)./a; mesh(X,Y,Z);

matlab试卷,求答案

一、 选择或填空(每空2分,共20分)

1、标点符号 ( )可以使命令行不显示运算结果,( ) 用来表示该行为注释行。 2、下列变量名中 ( ) 是合法的。 (A) char_1 ; (B) x*y ; (C) x\\y ; (D) end

17 / 29

3、 为 ~ ,步长为 的向量,使用命令 ( )创建。

4、输入矩阵 ,使用全下标方式用 ( )取出元素“ ”,使用单下标方式用 ( )取出元素“ ”。

5、符号表达式 中独立的符号变量为 ( ) 。

6、M脚本文件和M函数文件的主要区别是 ( ) 和( ) 。

7、在循环结构中跳出循环,但继续下次循环的命令为( ) 。

(A) return; (B) break ; (C) continue ; (D) keyboad

二、(本题12分)利用MATLAB数值运算,求解线性方程组(将程序保存为test02.m文件)

三、(本题20分)利用MATALAB符号运算完成(将程序保存为test03.m文件): (1)创建符号函数

(2)求该符号函数对 的微分; (3)对 趋向于 求该符号函数的极限; (4)求该符号函数在区间 上对 的定积分; (5)求符号方程 的解。

四、(本题20分)编写MATALAB程序,完成下列任务(将程序保存为test04.m文件): (1)在区间 上均匀地取20个点构成向量 ; (2)分别计算函数 与 在向量 处的函数值;

(3)在同一图形窗口绘制曲线 与 ,要求 曲线为黑色点画线, 曲线为红色虚线圆圈;并在图中恰当位置标注两条曲线的图例;给图形加上标题“y1 and y2”。

五、(本题15分)编写M函数文件,利用for循环或while循环完成计算函数 的任务,并利用该函数计算 时的和(将总程序保存为test05.m文件)。 六、(本题13分)已知求解线性规划模型:

的MATLAB命令为

x=linprog(c,A,b,Aeq,beq,VLB,VUB)

试编写MATLAB程序,求解如下线性规划问题(将程序保存为test06.m文件): 问题补充: 卷子的地址

看不见符号,能做就做了一些.

1、标点符号 ( ; )可以使命令行不显示运算结果,( % ) 用来表示该行为注释行。 2、下列变量名中 ( A ) 是合法的。

(A) char_1 ; (B) x*y ; (C) x\\y ; (D) end

3、 为 ~ ,步长为 的向量,使用命令 ( 本题题意不清 )创建。

4、输入矩阵 ,使用全下标方式用 ( 本题题意不清 )取出元素“ ”,使用单下标方式用 ( 本题题意不清 )取出元素“ ”。

5、符号表达式 中独立的符号变量为 ( ) 。

6、M脚本文件和M函数文件的主要区别是 ( 变量生存期和可见性 ) 和( 函数返回值 ) 。

7、在循环结构中跳出循环,但继续下次循环的命令为( C ) 。 (A) return; (B) break ; (C) continue ; (D) keyboad

18 / 29

二、(本题12分)利用MATLAB数值运算,求解线性方程组(将程序保存为test02.m文件)

三、(本题20分)利用MATALAB符号运算完成(将程序保存为test03.m文件): (1)创建符号函数 syms x (2)求该符号函数对 的微分; (3)对 趋向于 求该符号函数的极限; (4)求该符号函数在区间 上对 的定积分; (5)求符号方程 的解。

四、(本题20分)编写MATALAB程序,完成下列任务(将程序保存为test04.m文件): (1)在区间 上均匀地取20个点构成向量 ; (2)分别计算函数 与 在向量 处的函数值;

(3)在同一图形窗口绘制曲线 与 ,要求 曲线为黑色点画线, 曲线为红色虚线圆圈;并在图中恰当位置标注两条曲线的图例;给图形加上标题“y1 and y2”。

五、(本题15分)编写M函数文件,利用for循环或while循环完成计算函数 的任务,并利用该函数计算 时的和(将总程序保存为test05.m文件)。 六、(本题13分)已知求解线性规划模型:

的MATLAB命令为

x=linprog(c,A,b,Aeq,beq,VLB,VUB)

试编写MATLAB程序,求解如下线性规划问题(将程序保存为test06.m文件):

[例2.1] 已知SISO系统的状态空间表达式为(2-3)式,求系统的传递函数。 A=[0 1 0;0 0 1;-4 -3 -2];B=[1;3;-6];C=[1 0 0];D=0; [num,den]=ss2tf(a,b,c,d,u) [num,den]=ss2tf(A,B,C,D,1)

[例2.2] 从系统的传递函数(2-4)式求状态空间表达式。 num =[1 5 3]; den =[1 2 3 4];

[A,B,C,D]=tf2ss(num,den)

[例2.3] 对上述结果进行验证编程。 %将[例2.2]上述结果赋值给A、B、C、D阵;

A =[-2 -3 -4;1 0 0; 0 1 0];B =[1;0;0];C =[1 5 3];D=0; [num,den]=ss2tf(A,B,C,D,1)

32s2ss3(s)3[例2.4] 给定系统G,求系统的零极点增益模型和状态空间模型,并求其2s0.5s2s1单位脉冲响应及单位阶跃响应。

19 / 29

解:

num=[1 2 1 3];den=[1 0.5 2 1]; sys=tf(num,den) %系统的传递函数模型 Transfer function: s^3 + 2 s^2 + s + 3 ----------------------------- s^3 + 0.5 s^2 + 2 s + 1 sys1=tf2zp(num,den) %系统的零极点增益模型 sys1 =

sys2=tf2ss(sys) %系统的状态空间模型模型;或用[a,b,c,d]=tf2ss(num,den)形式 impulse(sys2) step(sys2) 解:

a=[-1 -2 2;0 -1 1;1 0 -1];b=[2 0 1]';c=[1 2 0] Qc=ctrb(a,b) rank(Qc) ans = 3

%生成能控性判别矩阵 %求矩阵Qc的秩 %满秩,故系统能控 %生成能观测性判别矩阵

%系统的单位脉冲响应 %系统的单位阶跃响应

[例3.1] 对下面系统进行可控性、可观性分析。

Qo=obsv(a,c) rank(Qo) ans = 3

%求矩阵Qo的秩 %满秩,故系统能观测

[例3.2] 已知系统状态空间方程描述如下:

试判定其稳定性,并绘制出时间响应曲线来验证上述判断。 解:

A=[-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0]; B=[1;0;0;0];C=[1 7 24 24];D=[0]; [z,p,k]=ss2zp(A,B,C,D,1); Flagz=0; n=length(A); for i=1:n if real(p(i))>0 Flagz=1; end end

disp('系统的零极点模型为');z,p,k 系统的零极点模型为 if Flagz==1

20 / 29

disp('系统不稳定'); else disp('系统是稳定的'); end 运行结果为: 系统是稳定的

step(A,B,C,D) %系统的阶跃响应

资源与环境工程学院2008级硕士研究生《MatLab及其应用》试题

注意,每题的格式均须包含3个部分 a. 程序(含程序名及完整程序): b. 运行过程: c. 运行结果:

(1)求解线性规划问题: minZ4x1x27x3 s.t.x1x2x35

3x1x2x34x1x24x37x1,x20问各xi分别取何值时,Z有何极小值。(10分) 答:fprintf('线性规划问题求解 \\n');

f = [-4;1;7];

A = [3,-1,1;1,1,-4;]; b = [4,-7]'; Aeq = [1,1,-1]; beq = [5]'; lb = [0,0,]; ub = [];

x = linprog(f,A,b,Aeq,beq,lb,ub); x

z = f' * x;

fprintf('MIN z = %f \\n' , z);

运行结果:线性规划问题求解 Optimization terminated successfully. x =

2.2500 6.7500 4.0000

MIN z = 25.750000

21 / 29

.5x,x201.50.25x,2x6, (2)编写一个函数,使其能够产生如下的分段函数:f(x)0.5,6x并调用此函数,绘制在。(10分) x[0,2]范围的f(x)•f(x2)曲答:function y=f(x) if x<=2 y=0.5*x; else if x>6 y=0.5;

else y =1.5-0.25*x; end end

运行结果 x=2

f(x)=1

x = 0:0.05:2;

y = diag(A2(x)'*A2(x+2)); plot(x,y); xlabel('\\bfx'); ylabel('\\bfy');

(3) 将一个屏幕分4幅,选择合适的步长在右上幅与左下幅绘制出下列函数的图形。

(10分)

22 / 29

22xy①cos((曲线图); ②f(曲(x,y)22;(-2x2,-4y4)x),x[,]2224面图)。

答:>> subplot(2,2,2)

>> ezplot('(cos(x))^(1/2)',[-pi/2 pi/2]) >> ylabel('y') >>subplot(2,2,3) >> x=-2:0.5:2; >> y=-4:1:4;

>>ezsurfc('x^2/2^2+y^2/4^2')

(4) A 是一个維度m×n的矩阵. 写一段程序, 算出A中有多少个零元素(10分) 答:>> A= input ('请输入一个矩阵') [m,n]= size(A); sig=0; for i=1:m for j=1:n if A(i,j)==0 sig = sig+1; end end end

请输入一个矩阵[0 1 2;1 0 2; 0 0 0] A =

0 1 2 1 0 2 0 0 0 >> sig sig = 5

23 / 29

[a,a,,a]11n(5) 向量A. 写一段程序, 找出A中的最小元素(10分) 答:A= input ('请输入一个向量') [m,n]=sizeA min =A(1,n); for i=1:n if A(1,i)请输入一个向量[1 2 3 -5 2 0] A =

1 2 3 -5 2 0 min = -5 B.

50

24 / 29

根据专业方向特色和相关科研工作需求,经过与导师商量后,结合一个课题具体任务,编写一份Matlab应用工作报告。报告由:a课题任务要求,b技术路线,c程序,d运行结果,e总结、等部分构成,完成的报告经导师给出简单评语并签字后缴来。

a,课题任务:研究了一种生物质,油菜秸秆对水溶液中金属离子铜的吸附行为,分别从pH,用量,温度几个方面考察秸秆的吸附性,并对分析的最佳条件进行了探讨。同时从吸附热力学和吸附动力学角度探讨吸附机理。结果表明,100ml溶液pH=5.30,秸秆用量0.75g时,秸秆对铜的吸附量可达到6mg/g左右。

b,技术路线:通过实验,获得一系列的数据,然后通过Matlab来做各种关系图。从图中找到g各种关系式。

c,程序:x=[2.20 2.72 3.44 4.13 5.38] y=[2.39 3.83 6.07 6.39 6.84] plot(x,y); xlabel('pH'); ylabel('吸附量')

图1

x=[0.5 0.75 1.0 1.25 1.5 ] y=[6.05 6.19 5.33 4.69 4.02] plot(x,y);

xlabel('秸秆用量g'); ylabel('吸附量')

25 / 29

图2

通过数据图,得到比较理想的实验条件pH和秸秆用量,接下来做动力

学和等温线。

> x=[0.167 0.5 1 2 3 4 5 8 ]

y=[0.033201 0.086059 0.169779 0.322061 0.480769 0.644122 0.809061 1.269841]

plot(x,y);

xlabel('时间t');

ylabel('时间/吸附量')

图3

x=[0.2363 0.15496 0.13619 0.12906 0.13373 0.13315] y=[0.25218 0.04707 0.02014 0.01267 0.00881 0.00706] plot(x,y);

xlabel('1/吸附量'); ylabel('1/平衡浓度')

26 / 29

图4

x=[0.62654 0.80977 0.86585 0.8892 0.87377 0.87564] y=[0.59829 1.3273 1.69589 1.89737 2.05503 2.15149] plot(x,y);

xlabel('Lg吸附量'); ylabel('Lg平衡浓度')

图5

d,总结:从图1和图2,分析看可以得到比较理想的对于本次实验的pH和秸秆用量。后面实验是在前面的基础上得到的。图3是吸附动力学反应速率图,从图中可以看到线性拟合程度很好,符合二级反应速率方程。图4和图5是吸附等温线作图,看以看出图4的线性拟合较图5的好,说明符合Langmuir吸附等温模型。

[例2.1] 已知SISO系统的状态空间表达式为(2-3)式,求系统的传递函数。 A=[0 1 0;0 0 1;-4 -3 -2];B=[1;3;-6];C=[1 0 0];D=0; [num,den]=ss2tf(a,b,c,d,u) [num,den]=ss2tf(A,B,C,D,1)

[例2.2] 从系统的传递函数(2-4)式求状态空间表达式。 num =[1 5 3]; den =[1 2 3 4];

[A,B,C,D]=tf2ss(num,den)

[例2.3] 对上述结果进行验证编程。 %将[例2.2]上述结果赋值给A、B、C、D阵;

A =[-2 -3 -4;1 0 0; 0 1 0];B =[1;0;0];C =[1 5 3];D=0; [num,den]=ss2tf(A,B,C,D,1)

32s2ss3(s)3[例2.4] 给定系统G,求系统的零极点增益模型和状态空间模2s0.5s2s1型,并求其单位脉冲响应及单位阶跃响应。 解:

num=[1 2 1 3];den=[1 0.5 2 1];

27 / 29

sys=tf(num,den) %系统的传递函数模型 Transfer function: s^3 + 2 s^2 + s + 3 ----------------------------- s^3 + 0.5 s^2 + 2 s + 1 sys1=tf2zp(num,den) %系统的零极点增益模型 sys1 =

sys2=tf2ss(sys) %系统的状态空间模型模型;或用[a,b,c,d]=tf2ss(num,den)形式 impulse(sys2) step(sys2) 解:

a=[-1 -2 2;0 -1 1;1 0 -1];b=[2 0 1]';c=[1 2 0] Qc=ctrb(a,b) rank(Qc) ans = 3

%生成能控性判别矩阵 %求矩阵Qc的秩 %满秩,故系统能控 %生成能观测性判别矩阵

%系统的单位脉冲响应 %系统的单位阶跃响应

[例3.1] 对下面系统进行可控性、可观性分析。

Qo=obsv(a,c) rank(Qo) ans = 3

%求矩阵Qo的秩 %满秩,故系统能观测

[例3.2] 已知系统状态空间方程描述如下:

试判定其稳定性,并绘制出时间响应曲线来验证上述判断。 解:

A=[-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0]; B=[1;0;0;0];C=[1 7 24 24];D=[0]; [z,p,k]=ss2zp(A,B,C,D,1); Flagz=0; n=length(A); for i=1:n if real(p(i))>0 Flagz=1; end end

disp('系统的零极点模型为');z,p,k 系统的零极点模型为 if Flagz==1 disp('系统不稳定');

28 / 29

else disp('系统是稳定的'); end 运行结果为: 系统是稳定的

step(A,B,C,D) %系统的阶跃响应。

29 / 29

因篇幅问题不能全部显示,请点此查看更多更全内容