matlab考试题及答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%1、编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。

function f=NO_1(X);

Y(1)=X;k=1;

while (X~=1)

k=k+1;

if (mod(X,2)==0)

X=X/2;

else

X=3*X+1;

end

Y(k)=X;

end

plot(Y,'b.')

end

% 2、编制程序产生一个数组,满足:a1=1,a2=1,从第三个元素开始,每个元素等于前两个元素的和,直到数组的前后两个元素的比值比小于1e-4,并且以红色点线的形式画出这个数组。

clear;

A(1)=1;

A(2)=1;

i=3;

Z=1;

while (abs(Z)>=1e-4)

A(i)=A(i-1)+A(i-2);

Z=A(i-1)/A(i);

i=i+1;

end

plot (A,'r.')

% 3、编写一个函数,能够产生分段函数。

function y=test_3_1(X)

if (X<=2)

y=*X;

elseif (X>6)

y=;

else

y=调用分段函数,绘制曲线。

clear;

i=1;

for j=0::2;

x(i)=j;

y(i)=test_3_1(j)*test_3_1(j+2);

i=i+1;

end

plot(x,y)

% 4、在2pi周期内画正弦函数曲线,并加注坐标轴标识和标题,然后在3pi/4,pi,5pi/4处分别加入带箭头的说明性文本,最后加注图例。

clear;

t = 0:pi/50:2*pi;

n = length(t);

y = sin(t);

plot(t,y,'-bo','linewidth',1 )

xlabel('X');ylabel('Y');

title('正弦函数曲线');

text,, ' \leftarrow 3pi/4','FontSize',18);

text,, ' \leftarrow 3pi/4','FontSize',18);

text,,' \leftarrow 3pi/4','FontSize',18);

hleg1 = legend('sin(x)');

% 5、A为任意一个n*m矩阵,写程序来计算A中有多少个零元素,并输出个数。

A=input('输入一个矩阵 A = ')

n=length(find(A==0))

% 6、A为任意一个向量,写程序找出A 中的最小元素,并且输出这个最小元素。

A=input('输入一个向量 A = ');

x=length(A);

i=1;

y=A(i);

while (i

i=i+1;

if (y>A(i))

y=A(i);

end

end

disp('最小元素是:')

disp(y)

% 7、某系统由四个典型环节构成,试根据四阶龙格—库塔公式,求输出量y的阶

跃响应,取仿真时间Tf=10s,

%步长h=。

r = 1;

P = [ 1 1;0 1 1 0;2 1 2 0;10 1 10 0];

W = [0 0 0 -1;1 0 0 0;0 1 0 0;0 0 1 0];

W0 = [1;0;0;0];

Wc = [0 0 0 1];

Tf = 10;

h = ;

A1 = diag(P(:,1));

B1 = diag(P(:,2));

C1 = diag(P(:,3));

D1 = diag(P(:,4));

H = B1 - D1*W;

Q = C1*W - A1;

A = inv (H) * Q;

B = inv (H) * C1 * W0;

x = [zeros(length(A),1)];

y=[zeros(length(Wc(:,1)),1)] ;

t = 0;

for i = 1:Tf/h

K1 = A*x + B*r;

K2 = A*(x + h*K1/2) + B*r;

K3 = A*(x + h*K2/2) + B*r;

K4 = A*(x + h*K3) + B*r;

x = x + h * (K1 + 2*K2 +2*K3 + K4)/6;

y = [y,Wc*x];

t = [t,t(i)+h];

end

plot(t,y)

% 8、系统模型 1)判断系统的稳定性2)判定系统是否为最小相位系统。

num=[3 16 41 28] ;den=[1 14 110 528 1494 2117 112];

[z,p,k]=tf2zp(num,den);

pp=find(real(p)>0);n1=length (pp);

if(n1>0)

disp('系统不稳定⊙﹏⊙||| 不稳定极点是:')

disp(p(ii));

else

disp('我靠,系统竟然稳定! .');

end

zz=find(real(z)>0);

n2=length(zz);

if (n2>0)

disp('系统是最小相位系统~-。-!')

else

disp('系统为非最小相位系统 @_@ ')

end

pzmap(p,z)

% 9、对于典型二阶系统,请编写程序绘制时系统的单位阶跃响应。

clear;

w=[2:2:10];zeta=;

figure(1);

hold on

for Wn=w

num=Wn.^2;

den=[1,2*zeta*Wn,Wn.^2];

step(num,den)

end

title('单位阶跃响应');

hold off

% 10、已知系统的传递函数,绘制对数幅频特性曲线,计算稳定裕度及其相对应的穿越频率和截止频率。

G=tf([8 ],[1 5 20 19 15 0])

subplot(1,1,1);

bodemag(G)

%[Gm,Pm,Wcg,Wcp]=margin(G)求稳定裕度两种方法

s=allmargin(G)

% 11、已知单位负反馈系统的开环传函,要求设计一串联超前校正装置,满足性能指标。

num0=200;

den0=conv([1 0],[ 1]);

[Gm1,Pm1,Wcg1,Wcp1]=margin(n um0,den0);

相关文档
最新文档