MATLAB习题参考答案.docx

上传人:b****6 文档编号:5957382 上传时间:2023-01-02 格式:DOCX 页数:38 大小:402.20KB
下载 相关 举报
MATLAB习题参考答案.docx_第1页
第1页 / 共38页
MATLAB习题参考答案.docx_第2页
第2页 / 共38页
MATLAB习题参考答案.docx_第3页
第3页 / 共38页
MATLAB习题参考答案.docx_第4页
第4页 / 共38页
MATLAB习题参考答案.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

MATLAB习题参考答案.docx

《MATLAB习题参考答案.docx》由会员分享,可在线阅读,更多相关《MATLAB习题参考答案.docx(38页珍藏版)》请在冰豆网上搜索。

MATLAB习题参考答案.docx

MATLAB习题参考答案

第1章MATLAB简介

1、MATLAB的主要特点有:

①语言简洁,编程效率高。

②人机界面友善,交互性好。

③绘图功能强大,便于数据可视化。

④学科众多、领域广泛的MATLAB工具箱。

⑤源程序的开放性。

MATLAB的典型应用领域有:

①自动控制②汽车③电子④仪器仪表⑤生物医学⑥信号处理⑦通信等。

2、填空题

⑴命令窗口、命令历史窗口、当前目录窗口

⑵查阅、保存、编辑

⑶清除图形窗、清除命令窗口中显示内容、清除MATLAB工作空间中保存的变量。

3、如果想查看某一变量具体内容或者对其修改操作,可以在工作空间中双击该变量名称,可以打开数组编辑器,在数组编辑器中可以查看变量的具体内容,也可以对其修改。

如果想删除MATLAB内存中的变量,可以在工作空间中选中该变量,然后利用工作空间窗口的菜单命令或工具条中的快捷图标进行删除。

4、1+2+3+4+5+...(+后面可以直接跟...,也可以在+和...中加一个空格。

6+7+8+9

1+2+3+4+5...(5后面必须跟一个空格,不能直接跟...,否则报错,这在预置一个+6+7+8+9大数组时很重要。

第2章矩阵与数值数组

1、填空题:

⑴非数、无穷大、机器零阈值,浮点数相对精度,eps=2.2204e-016。

⑵全下标、单下标。

2、阅读程序题:

(本题主要考察数组的寻访、赋值和简单运算,提示:

带;的语句不显示结果)

⑴ans=

237

Sa=

10

20

30

A=

1205309

1046810

⑵A=

13579111315

246810121416

ans=

15913

261014

371115

481216

A=

0057001315

2400101200

⑶ans=

-1-4

64

ans=

30

5-2

ans=

36

912

ans=

36

912

3、A=magic(4);

L=A<10

L=

0110

1001

1110

1001

4、省略。

第3章字符串、元胞和构架数组

1.直接创建法:

S1=['Wherethereislife,'

'thereishope.']%注意第2行要加入6个空格使其与第一行字符数相等,否则报错。

S2=str2mat('Wherethereislife,','thereishope.')

S3=strvcat('Wherethereislife,','thereishope.')%后两种方法则不用考虑两行字符的数目

2.填空题:

A(2,3);A{2,3}

3.阅读程序题:

⑴subch=

ABc12

revch=

4d321cBA

⑵(提示:

本题考察元胞数组两种不同的寻访方法)

A{1,1}=

thisiscell

A{2,1}=

1.0000+2.0000i

A{1,2}{1}=

12

34

A{2,2}=

67

89

4.%Homework3.4

student=cell(2,2);%利用cell函数预先分配存储空间

student(1,1)={['';'']};

student(2,1)={{'张三';'李小红'}};

student(1,2)={{'数学1''英语1''代数''制图';'数学2''英语2''电路''信号'}};

student(2,2)={{[80906596;92758078];[78698074;50786880]}};

celldisp(student)

5.%Homework3_5.m

student

(1)=struct('class',{'电子技术'},'name',{'无敌'},'gender',{'男'},'number',{''},...

'course',{{'英语''数学''计算机'}},'score',{[758567]})

student

(2)=struct('class',{'电子技术'},'name',{'王思远'},'gender',{'男'},'number',{''},...

'course',{{'英语''数学''计算机'}},'score',{[99780]})

student(3)=struct('class',{'通信工程'},'name',{'李蕾'},'gender',{'女'},'number',{''},...

'course',{{'英语''数学''计算机'}},'score',{[807253]})

student(4)=struct('class',{'通信工程'},'name',{'王伟'},'gender',{'男'},'number',{''},...

'course',{{'英语''数学''计算机'}},'score',{[978262]})

第4章数值计算

1.rand(2,3)的含义为生成2×3随机矩阵。

2.应用LU分解和矩阵除法求方程组

的解。

方法一:

A=[2,-3,0;4,-5,1;2,0,4];

[L,U]=lu(A);

B=[8;15;10];

x=U\(L\B)

方法二:

A=[2,-3,0;4,-5,1;2,0,4];

B=[8;15;10];

A\B

3.求一元非线性方程

的根。

程序:

%计算函数数值

x=[-10:

0.1:

10];

y=x-sin(x)./x;

%绘制函数图形

plot(x,y);

%锁定当前图形并添加网格线

%holdon;

gridon

%绘制水平线

line([-1010],[00]);

%添加坐标名称

xlabel('x');ylabel('y(x)');

[xx,yy]=ginput

(1)%在MATLAB指令窗中运行,用鼠标获2个零点猜测值。

%第三步,计算xx

(1)和xx

(2)的精确零点

y=inline('x-sin(x)./x','x');%构造内联函数求解

[x,y]=fzero(y,xx)

运行结果:

xx=

0.8525

yy=

-0.0219

x=

0.8767

y=

0

4.求f(x)=3x2-5x+1极小值。

%绘制函数曲线

x=[-5:

0.1:

5];

f=3*x.^2-5.*x+1;

plot(x,f);

%估计极小值点的坐标。

由图可以看出,在[02]间有极小值

[xx,ff]=ginput

(1)

%编写函数文件,保存文件名为myfun4_4.m

functionf=myfun4_4(x)

f=3*x.^2-5.*x+1;

%求极小值

>>[x,fval]=fminbnd(@myfun4_4,0,2)

x=

0.8333

fval=

-1.0833

5.求积分

Q=dblquad(@(x,y)(x.*cos(x+y^2)),pi,2*pi,0,pi)

7.求常微分方程的数值解。

dsolve('D2y*(x-1)+2*Dy+y=0','y(0)=1,Dy(0)=1','x')

第5章符号运算

5.1C

5.2B

5.3C

5.4 symsx;

f=x^4-5*x^3+5*x^2-6;

factor(f)

5.5symsx;

f=cos(x)+sqrt(-sin(x)^2);

f1=simple(f)

f2=simple(f1)

5.6symsatx;

f=[a*x^2,2*t^4;exp(t)*sin(x),t*log(x)];

dfdt2=diff(f,t,2)

dfdxdt=diff(diff(f,x),t)

5.7symsxyz;

f=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2)

vpa(f)

5.8A=sym([11/21/2-1;11-11;1-1/4-11;-8-111]);

B=sym([0;10;0;1]);

X=A\B

5.9S=dsolve('D2x+2*Dy-x=0,Dx+y=0','x(0)=1,y(0)=0');

S.x

S.y

5.10symsts;

symsabpositive;%a,b为正

Dt=sym('Dirac(t)');

Ut=sym('Heaviside(t-a)');

T=[Dt,Ut;t^2*sin(2*t),exp(-a*t)*cos(b*t)];

S=laplace(T,t,s)

第6章MATLAB图形绘制

6.1C

6.2A

6.3D

6.4x=0:

0.01:

6;

y1=sin(2*x);

y2=x.*cos(x);

y3=exp(2*cos(x));

plot(x,y1,'r:

',x,y2,'b-.',x,y3,'g--')

6.5x=-10:

0.15:

10;

y=sin(x)./x;

plot(x,y)

xlabel('x');

ylabel('y=sinx/x');

title('门函数的频谱')

6.6x=[30.5,26.5,21,10,12];

subplot(1,2,1)

pie(x,[11000])

subplot(1,2,2)

pie3(x,[10100])

legend({'1','2','3','4','5'})

6.7income=[1.021.351.662.01];

x=2005:

2008;

expenses=[0.851.061.211.48];

area(x,income,'facecolor',[0.50.90.6],'edgecolor',...

'b','linewidth',2)%设置填充色、边界色和边界宽度

holdon

area(x,expenses,'facecolor',[0.90.80.7],'edgecolor','r','linewidth',2)

holdoff

set(gca,'xtick',[2005:

2008])%x轴为2005到2008

xlabel('年份','fontsize',10)%x轴标注字号为10号

ylabel('万元','fontsize',10)

gtext('支出')%通过光标在图形上添加注释

gtext('收入')

gtext('\rightarrow利润')

6.8x=[0.51.53];

y=[25641

34522

13821];

bar3(x,y,'detached')

xlabel('x轴')

ylabel('y轴')

zlabel('z轴')

6.9略.

6.10略.

第7章M文件和MATLAB编程

1.脚本文件的扩展名为m,函数文件的扩展名为m。

2.MATLAB语言支持的3种最基本的控制结构为顺序结构、选择结构和循环结构。

3.在循环结构中跳出当前循环,继续下一次循环的命令为c。

A.breakB.returnC.continueD.keyboard

4.简述使用M文件与在MATLAB命令窗口中直接输入命令有何异同?

有何优缺点?

MATLAB命令窗口中直接输入命令为指令驱动模式。

在MATLABM命令行窗口下用户输入单行指令时,MATLAB立即处理这条指令,并显示结果。

命令行方式程序可读性差,而且不能存储,当处理复杂问题和大量数据时很不方便。

M文件模式是将MATLAB语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。

程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。

该工作方式便于文件修改保存,使用方便。

5.编写脚本文件,计算1+3+5+7+…+(2n+1)的和。

clc,clear

sum=0;

n=input('输入n=');

fori=1:

2:

2*n+1

sum=sum+i;

end

sum

6.编写脚本文件,用magic(6)产生一矩阵,求解其下三角所有元素的和。

clc,clear

a=magic(6);

sum=0;

fori=1:

6

forj=1:

6

ifi>=j

sum=sum+a(i,j);

end

end

end

sum

7.编写一个函数文件,利用函数的递归调用,求n!

functionf=factor(n)

ifn<=1

f=1;

else

f=factor(n-1)*n;

end

8.编写一个脚本文件,在该文件中调用上题编写的函数文件,求s=1!

+2!

+3!

+4!

+5!

s=0;

fori=1:

5

s=s+factor(i);

end

s

第8章SIMULINK交互式仿真集成环境

1.Simulink环境中创建的模型保存为B文件。

A.mB.mdlC.mexD.fig

2.建立如下图所示的仿真模型并进行仿真,观察波形的变化。

试再建立一个新的仿真模型,并得到同样的仿真结果。

仿真结果为圆。

将sinewave1的phase参数设置为pi/2.

 

3.使用阶跃信号为输入信号,经过传递函数

的一阶系统,查看输出波形在示波器上的显示。

 

4.二阶系统的微分方程为

是单位阶跃信号。

用积分模块创建求解该微分方程的模型,仿真时间为

5.封装一个子系统,系统方程为

,其中x为输入,y为输出,通过对话框输入a、b、c的值。

a=1,b=2,c=3

6.系统在

时,输出为单位脉冲信号,当

输出为

试建立该系统模型,并进行仿真分析。

第9章MATLAB在电路仿真中的应用

1、搭建如图所示的仿真电路,根据题目给出的条件设置各元器件参数,得到仿真结果。

练习题9.1仿真电路图

2、解答:

搭建好的仿真电路如图9.16所示,为了把电容上的三种电压波形画在一张图内,这里选用VoltageMeasurement模块取出电容两端的电压,并送给Sinks下的out模块,这样在仿真时会在MATLAB工作空间中产生2个默认变量,时间变量tout和数据变量yout。

仿真时间设为10S,步长和方法一保持一致,设为0.1S。

仿真过程由以下几个步骤完成:

①如图9.16连接好仿真电路,然后对各元件设置参数。

交流电压源AC的参数为:

Peakamplitude(V)为0,Frequency(Hz)的值由角频率

可算得大约为0.318Hz。

开关Breaker的Initialstate设为0,Switchingtimes(s)设为0.01。

电阻R阻值为2,电容C的Capacitance(F)设为0.5,capacitorinitialvoltage(V)设为5。

参数设置完毕进行仿真,仿真结束后在MATLAB工作空间产生tout和yout,在工作空间中修改yout为yout1(如图9.17所示),yout1为电容电压的零输入响应。

②交流电压源AC的参数Peakamplitude(V)设为10,电路其它参数不变,只把电容C的Settheinitialcapacitorvoltage不选中,即不设置初始电压值,再进行仿真,在工作空间中修改yout为yout2,yout2为电容电压的零状态响应。

③在命令窗口输入:

yout3=yout1+yout1,yout3为电容电压的全响应。

④在命令窗口用绘图指令画出电容上的三种响应波形,如下图所示:

plot(tout,yout1,'-',tout,yout2,':

',tout,yout3,'-.*'),gridon%把三种数据画在一张图上

legend('yout1','yout2','yout3')%用图例标注

练习题9.2波形图

3、这个题的参数也得改动如下:

如图所示电路,已知

A,L1=3H,L2=2H,M=1H,R2=2Ω。

试利用MATLAB中的电力系统模块集和虚拟仪器对电路进行仿真,画出电流i2(t)的波形。

i2(t)

M

i2(t)

 

练习题3图

解答:

搭建如下图所示的仿真电路,并根据题目给出的条件设定参数(注意交流电源要和一个比较大的电阻并联,然后和互感线圈相连,否则报错)。

练习题9.3仿真电路图

然后进行仿真,得如下波形图:

练习题9.3波形图

 

第10章MATLAB在信号处理中的应用

10.1在用MATLAB表示离散序列并将其可视化时,要注意什么?

答:

在用MATLAB表示离散序列并将其可视化时,我们要注意以下几点:

第一,与连续时间信号不同,离散时间信号无法用符号运算来表示;第二,由于在MATLAB中,矩阵的元素个数是有限的,因此,MATLAB无法表示无限序列;第三,在绘制离散信号波形时,要使用专门的绘制离散数据的stem命令,而不是plot命令。

10.2已知

的波形如图1所示,用MATLAB画出下列信号的波形。

03

2

(1)

(2)

(3)

(4)

图1

解:

MATLAB程序如下

%ex10_2.m10.2题参考程序

clear

symst

f=sym('(-2/3*t+2)*(u(t)-u(t-3))');

f1=subs(f,t,t+3);

subplot(221),ezplot(t,f1,[-4,1,-1,2.2]),title('f(t+3)')

f2=subs(f,t,2*t-2);

subplot(222),ezplot(t,f2,[0,3,-1,3]),title('f(2t-2)')

f3=subs(f,t,2-2*t);

subplot(223),ezplot(t,f3,[-1,2,-0.2,2.2]),title('f(2-2t)')

f4=subs(f,t,-0.5*t-1);

subplot(224),ezplot(t,f4,[-10,-1,-0.2,2.2]),title('f(-0.5t-1)')

运行结果如图2所示。

图2习题10.2的结果

10.3用MATLAB画出下列微分方程所描述系统的冲激响应和阶跃响应。

(1)

(2)

解:

MATLAB程序如下

%ex10_3.m第10.3题参考程序

%第

(1)题

a=[12];b=[3];

figure

(1)

subplot(121),impulse(b,a)

subplot(122),step(b,a)

%第

(2)题

a=[132];b=[100];

figure

(2)

subplot(121),impulse(b,a)

subplot(122),step(b,a)

运行结果如图3所示。

(a)习题10.3

(1)结果

(b)习题10.3

(2)结果

图3

10.4已知某LTI连续系统的微分方程为

用MATLAB求该系统的频率响应

,并画出其幅频曲线和相频曲线。

解:

MATLAB程序如下

%ex10_4.m10.4题参考程序

b=[2];

a=[13];

w=0:

0.01:

10;

h=freqs(b,a,w);

H=abs(h);%求幅频响应

p=angle(h);%求相频响应

subplot(211);

plot(w,H);

grid

xlabel('w');

ylabel('幅度');

title('H(jw)的幅频特性');

subplot(212);

plot(w,p*180/pi);

grid

xlabel('w');

ylabel('相位(度)');

title('H(jw)的相频特性');

运行结果如图4所示。

图4习题10.4的结果

10.5已知下列系统函数所表示的系统,分析这些系统是否稳定。

(1)

 (2)

(3)

  (4)

解:

MATLAB程序如下

%ex10_5.m10.5题参考程序

%

(1)

A1=[141-6];B1=[100];

figure

(1)

[p1,q1]=sjdt(A1,B1);

%

(2)

A2=[110];B2=[1-2];

figure

(2)

[p2,q2]=sjdt(A2,B2);

%(3)

A3=[1-0.5-0.0050.3];B3=[121];

figure(3)

[p3,q3]=ljdt(A3,B3);

%(4)

A4=[552];B4=[102];

figure(4)

[p4,q4]=ljdt(A4,B4);

运行结果如图5所示。

(a)习题10.5

(1)结果(b)习题10.5

(2)结果

(c)习题10.5

(1)结果(d)习题10.5

(2)结果

图5

由图5(a)可见:

(1)系统函数的极点不全在左半开平面,该连续系统不稳定

(2)系统函数的极点不全在左半开平面,该连续系统不稳定

(3)系统函数的极点均在单位圆内,该离散系统稳定

(4)系统函数的极点均在单位圆内,该离散系统稳定

10.6已知描述某LTI系统的微分方程为

输入

,初始状态

利用MATLAB在s域求该系统的零状态响应。

解:

MATLAB程序如下

%ex10_6.m10.6题参考程序

symssYzs

a=[156];

b=[003];

F=1/(s+1);

Sn=[s^2s1];%s的二阶多项式

A=a*Sn';%分母多项式

B=b*Sn';%分子多项式

H=B/A;%计算H(s)

Yzs=H.*F;%计算零状态响应的拉式变换

yzs=ilaplace(Yzs);%拉式反变换求得零状态响应

disp('零状态响应')

pretty(yzs)

运行结果:

零状态响应

3/2exp(-3t)-3exp(-2t)+3/2exp(-t)

10.7考察DFT的长度对双频率信号频谱分析的影响。

设待分析的信号为

令两个长度为16的正余弦序列的数字频率为

取N为四个不同值16,32,64,128,画出四个DFT幅频图。

分析DFT长度对频谱分辨率的影响。

解:

MATLAB程序如下

%ex10_7.m10.7题参考程序

N=input('输入谱分析长度N=')

f1=0.22;f2=0.34;

n=0:

N-1;

xn=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);

X=abs(fft(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1