第一章习题3.请指出以下的变量名(函数名、M文件名)中,哪些是合法的?Abc 2004x lil-1 wu_2004 a&b qst.u _xyz 解:合法的变量名有:Abc wu_20044.指令窗操作(1)求[12+2×(7-4)]÷32的运算结果解:>> [12+2*(7-4)]/3^2ans =2(2)输入矩阵A=[1,2,3;4,5,6;7,8,9],观察输出。
解:>> A=[1,2,3;4,5,6;7,8,9]A =1 2 34 5 67 8 9(3)输入以下指令,观察运算结果;clear;x=-8:0.5:8;y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;mesh(X,Y,Z);colormap(hot)xlabel('x'),ylabel('y'),zlabel('z')解:7.指令行编辑(1)依次键入以下字符并运行:y1=2*sin(0.3*pi)/(1+sqrt(5))解:>>y1=2*sin(0.3*pi)/(1+sqrt(5))y1 =0.5000(2)通过反复按键盘的箭头键,实现指令回调和编辑,进行新的计算;y2=2*cos(0.3*pi)/(1+sqrt(5))解:>>y2=2*cos(0.3*pi)/(1+sqrt(5))y2 =0.363311.编写题4中(3)的M脚本文件,并运行之。
解:第二章习题1.在指令窗中键入x=1:0.2:2和y=2:0.2:1,观察所生成的数组。
解:>> x=1:0.2:2 x =1.0000 1.2000 1.4000 1.6000 1.80002.0000 >> y=2:0.2:1 y =Empty matrix: 1-by-02.要求在[0,2π]上产生50个等距采样数据的一维数组,试用两种不同的指令实现。
解: y1=0:2*pi/49:2*piy2=linspace(0,2*pi,50)3.计算e -2t sint ,其中t 为[0,2π]上生成的10个等距采样的数组。
解:>> t=linspace(0,2*pi,10); x=exp(-2*t).*sin(t) x =0 0.1591 0.0603 0.0131 0.0013 -0.0003 -0.0002 -0.0001 -0.0000 -0.00004.已知A=⎥⎦⎤⎢⎣⎡4321 , B=⎥⎦⎤⎢⎣⎡8765,计算矩阵A 、B 乘积和点乘. 解:>> A=[1,2;3,4]; B=[5,6;7,8]; x=A*B x =19 22 43 50 >> x=A.*B x =5 1221 325.已知A=⎥⎦⎤⎢⎣⎡05314320,B=⎥⎦⎤⎢⎣⎡05314320,计算A&B, A|B, ~A, A==B, A>B. 解:>> A=[0,2,3,4;1,3,5,0];B=[1,0,5,3;1,5,0,5]; a1=A&Ba2=A|Ba3=~Aa4=(A==B)a5=(A>B)a1 =0 0 1 11 1 0 0a2 =1 1 1 11 1 1 1a3 =1 0 0 00 0 0 1a4 =0 0 0 01 0 0 0a5 =0 1 0 10 0 1 07.将题5中的A阵用串转换函数转换为串B,再size指令查看A、B的结构,有何不同?解:>> A=[0,2,3,4;1,3,5,0]B=num2str(A)size(A)size(B)A =0 2 3 41 3 5 0B =0 2 3 41 3 5 0ans =2 4ans =2 10第三章习题1.已知系统的响应函数为)sin(11)(θββε+-=-t e t y t ,其中⎪⎪⎭⎫⎝⎛-=-=εεθεβ221arctan ,1 ,要求用不同线型或颜色,在同一张图上绘制ε取值分别为0.2、0.4、0.6、0.8时,系统在t ∈[0,18] 区间内的响应曲线,并要求用ε=0.2和 ε=0.8对他们相应的两条曲线进行文字标志。
解: clcclose all clear all t=0:0.02:18;xi=[0.2,0.4,0.6,0.8]'; sxi=sqrt(1-xi.^2); sita=atan(sxi./xi);y=1-exp(-xi*t).*sin(sxi*t+sita*ones(1,901))./(sxi*ones(1,901))plot(t,y(1), 'r-', t,y(2), ' b*', t,y(3), ' g+', t,y(4), ' k.')text(4.2,1.4,'\xi =0.2') text(3.8,0.9,'\xi=0.8')2.用plot3、mesh 、surf 指令绘制()()2222111y x y x z ++++-=三维图(x,y 范围自定)。
解:clc;close all ;clear all ; x=-5:0.1:5;y=-5:0.1:5; [X,Y]=meshgrid(x,y); a=sqrt((1-X).^2+Y.^2); b=sqrt((1+X).^2+Y.^2); Z=1./(a+b);a1=sqrt((1-x).^2+y.^2); b1=sqrt((1+x).^2+y.^2); z=1./(a1+b1);subplot(1,3,1),plot3(x,y,z),xlabel('x'),ylabel('y'),zlabel('z');box on ;subplot(1,3,2),surf(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');boxon ;subplot(1,3,3),mesh(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');box on ;3.对向量t 进行以下运算可以构成三个坐标的值向量:x=sin(t),y=cos(t),z=t.利用指令plot3,并选用绿色的实线绘制相应的三维曲线. 解:t=(0:0.01:2)*pi;x=sin(t);y=cos(t);z=t;plot3(x,y,z,'b-');box on1.请分别用for 和while 循环语句计算K=∑=6302i i 的程序,再写出一种避免循环的计算程序。
(提示:可考虑利用MATLAB 的sum(X,n)函数,实现沿数组X 的第n 维求和。
) 解:1)K=0; for i=0:63; K=K+2^i; end KK =1.8447e+019 2)i=0;K=0; while i<=63; K=K+2^i; i=i+1; end; KK =1.8447e+019 3)i=0; X=0:63; for i=0:63;X(i+1)=2^i; endsum(X,2) ans =1.8447e+0191.将下列系统的传递函数模型用MATLAB 语言表达出来。
(1))170046842541254289()1700109329135()(23452341+++++++++=s s s s s s s s s s G 解:num=[1,35,291,1093,1700];den=[1,289,254,2541,4684,1700]; sys=tf(num,den) (2))15).(5).(1()3(15)(2++++=s s s s s G 解:z=-3;p=[-1,-5,-15]; k=15;sys=zpk(z,p,k)(3))252).(1).(1()23.()2.(.100)(23223+++-++++=s s s s s s s s s s G 解:z=[0,-2,-2]; p=[-1,1]; k=100;sys1=zpk(z,p,k); num=[1,3,2]; den=[1,2,5,2]; sys2=tf(num,den); sys=series(sys1,sys2)4.求题3中的系统模型的等效传递函数模型和零极点模型。
解:A=[3,2,1;0,4,6;0,-3,-5]; B=[1,2,3]' ; C=[1,2,5]; D=0;sys=ss(A,B,C,D); systf=tf(sys) syszpk=zpk(sys)Transfer function: 20 s^2 - 83 s + 138 --------------------- s^3 - 2 s^2 - 5 s + 6 Zero/pole/gain:20 (s^2 - 4.15s + 6.9) ----------------------- (s-3) (s-1) (s+2)5.已知系统的动力学方程如下,试用MATLAB 语言写出它们的传递函数。
(1))(2)()(500)(50)(15)(......)3(t r t r t y t y t y t y +=+++ 解:num=[1,2,0];den=[1,15,50,500]; sys=tf(num,den) Transfer function: s^2 + 2 s ------------------------- s^3 + 15 s^2 + 50 s + 500(2) )(4)(4)(6)(3)(...t r dt t y t y t y t y =+++⎰ 解:num=[4,0]; den=[1,3,6,4]; sys=tf(num,den) Transfer function: 4 s --------------------- s^3 + 3 s^2 + 6 s + 46.试用MATLAB 语言表示图5-13所示系统。
当分别以y =x 2和f 为系统输出、输入时的传递函数模型和状态空间模型(图中k =7N/m,c 1=0.5N/m.s -1, c 2=0.2N/m.s -1,m 1=3.5kg, m 2=5.6kg)。
f解:)(tk=7;c1=0.5;c2=0.2;m1=3.5;m2=5.6;num=[m1,c1,k];den=[m1*m2,c1*m1+c2*m1+c1*m2,c1*c2+m2*k,c1*k+c2*k,0];sys=tf(num,den)Transfer function:3.5 s^2 + 0.5 s + 7--------------------------------------19.6 s^4 + 5.25 s^3 + 39.3 s^2 + 4.9 s7.试用MATLAB语言分别表示图5-14所示系统质量m1,m2的位移x1,x2对输入f 的传递函数X2(s)/F(s)和X1(s)/F(s),其中m1=12kg, m2=38kg,k=1000N/m, c=0.1N/m.s-1。