一,
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) fXx14x29x32x118x2;
32x22x1x2x12x2; 2423) fXx112x2.
2) fXx12 第1),2)题的初始点可任意选取, 第3)题的初始点取为X0,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)mn,B(bij)mn和C(cij)mn均为mn矩阵,且存在于WorkSpace
9 / 29
中,要产生矩阵
D(aijcij)/bij,
计
cijmn,可用命令___D=(A-
C)/B.^C_________________________算
AB1可用命令
___________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)1010和B(bij)1010是两个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为1417数组,B为一个行数大于3的数组,请给出
(1)删除A的第4、8、12三列的命令; (2)删除B的倒数第3行的命令;
tan(mx)x3ln(1e2x)的3阶(3)求符号极限lim的命令集; (4)求yarctanx0nxx2导数的命令集;(5)计算定积分(xsinx)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(xk1ikxi)(xjkxj)102,i,j,1,2,(xk110,10;
ikxi)2(xjkxj)k1Here, 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]e2x and zsinx xin the range of x2,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(1x)e2x2/2(y1)2
in the range of4x4 and 4y4, 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)31.84sin(2x)x,xi(整数)
其他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,
ni1and the sample skewness (偏度)
1nske(xix)3 .
ni113 / 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)
32s2ss3(s)3[例2.4] 给定系统G,求系统的零极点增益模型和状态空间模型,并求其2s0.5s2s1单位脉冲响应及单位阶跃响应。
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)求解线性规划问题: minZ4x1x27x3 s.t.x1x2x35
3x1x2x34x1x24x37x1,x20问各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,x201.50.25x,2x6, (2)编写一个函数,使其能够产生如下的分段函数:f(x)0.5,6x并调用此函数,绘制在。(10分) x[0,2]范围的f(x)•f(x2)曲答: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)22;(-2x2,-4y4)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 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) 32s2ss3(s)3[例2.4] 给定系统G,求系统的零极点增益模型和状态空间模2s0.5s2s1型,并求其单位脉冲响应及单位阶跃响应。 解: 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 因篇幅问题不能全部显示,请点此查看更多更全内容