当前位置:文档之家› MATLAB全书习题参考答案(李国朝)

MATLAB全书习题参考答案(李国朝)

MATLAB全书习题参考答案(李国朝)
MATLAB全书习题参考答案(李国朝)

本书习题参考答案

第1章MATLAB简介

1、MA TLAB的主要特点有:①语言简洁,编程效率高。②人机界面友善,交互性好。③绘图功能强大,便于数据可视化。④学科众多、领域广泛的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 =

2 3 7

Sa =

10

20

30

A =

1 20 5 30 9

10 4 6 8 10

⑵ A =

1 3 5 7 9 11 13 15

2 4 6 8 10 12 14 16

ans =

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

A =

0 0 5 7 0 0 13 15

2 4 0 0 10 12 0 0

⑶ ans =

-1 -4

6 4

ans =

3 0

5 -2

ans =

3 6

9 12

ans =

3 6

9 12

3、A=magic(4);

L=A<10

L =

0 1 1 0

1 0 0 1

1 1 1 0

1 0 0 1

4、省略。

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

1. 直接创建法:S1=['Where there is life,'

'there is hope. '] %注意第2行要加入6个空格使其与第一

行字符数相等,否则报错。

S2=str2mat('Where there is life,','there is hope.')

S3=strvcat('Where there is life,','there is hope.') %后两种方法则不用考虑两行

字符的数目

2. 填空题:A(2,3);A{2,3}

3. 阅读程序题:

⑴subch =

ABc12

revch =

4d321cBA

⑵(提示:本题考察元胞数组两种不同的寻访方法)

A{1,1} =

this is cell

A{2,1} =

1.0000 +

2.0000i

A{1,2}{1} =

1 2

3 4

A{2,2} =

6 7

8 9

4. % Homework3.4

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

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

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

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

student(2,2)={{[80 90 65 96;92 75 80 78];[78 69 80 74;50 78 68 80]}};

celldisp(student)

5. % Homework3_5.m

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

'course',{{'英语' '数学' '计算机' }}, 'score', {[75 85 67]}) student(2)=struct('class',{'电子技术'},'name',{'王思远'},'gender', {'男'},'number',{'200801002'}, ...

'course',{{'英语' '数学' '计算机' }}, 'score', {[99 78 0]}) student(3)=struct('class',{'通信工程'},'name',{'李蕾'},'gender', {'女'},'number',{'200802001'}, ...

'course',{{'英语' '数学' '计算机' }}, 'score', {[80 72 53]}) student(4)=struct('class',{'通信工程'},'name',{'王伟'},'gender', {'男'},'number',{'200802002'}, ...

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

第4章数值计算

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

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

?

??=+=+-=-10421554832z x z y x y x 的解。

方法一:

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.求一元非线性方程0sin =-

x

x

x 的根。 程序:

%计算函数数值 x=[-10:0.1:10]; y=x-sin(x)./x; %绘制函数图形 plot(x,y);

%锁定当前图形并添加网格线 %hold on; grid on % 绘制水平线

line([-10 10],[0 0]); %添加坐标名称

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)

运行结果:

-10

-8-6-4-2

0246810

-10-5

510

15

x

y (x )

xx =

0.8525 yy =

-0.0219 x =

0.8767 y = 0

4.求f(x)=3x 2-5x +1极小值。 %绘制函数曲线 x=[-5:0.1:5]; f=3*x.^2-5.*x+1; plot(x,f);

%估计极小值点的坐标。由图可以看出,在[0 2]间有极小值 [xx,ff]=ginput(1)

-5

-4-3-2-1012345

-200

20

40

60

80

100

120

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

function f=myfun4_4(x) f=3*x.^2-5.*x+1;

%求极小值

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

0.8333 fval =

-1.0833

5.求积分??+=

ππ

π

22cos(dxdy y x x Q

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

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

???

?

??

?-='==++-1)0(1)0(02)1(2

2y y y dx dy

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

第5章符号运算

5.1 C

5.2 B

5.3 C

5.4syms x;

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

factor(f)

5.5 syms x;

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

f1=simple(f)

f2=simple(f1)

5.6 syms a t x;

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.7 syms x y z;

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.8 A=sym([1 1/2 1/2 -1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1]);

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

X=A\B

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

S.x

S.y

5.10 syms t s;

syms a b positive; % 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.1 C

6.2 A

6.3 D

6.4 x=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.5 x=-10:0.15:10;

y=sin(x)./x;

plot(x,y)

xlabel('x');

ylabel('y=sinx/x');

title('门函数的频谱')

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

subplot(1,2,1)

pie(x,[1 1 0 0 0])

subplot(1,2,2)

pie3(x,[1 0 1 0 0])

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

6.7 income=[1.02 1.35 1.66 2.01];

x=2005:2008;

expenses=[0.85 1.06 1.21 1.48];

area(x,income,'facecolor',[0.5 0.9 0.6],'edgecolor',...

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

hold on

area(x,expenses,'facecolor',[0.9 0.8 0.7],'edgecolor','r','linewidth',2)

hold off

set(gca,'xtick',[2005:2008]) % x轴为2005到2008

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

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

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

gtext('收入')

gtext('\rightarrow利润')

6.8 x=[0.5 1.5 3];

y=[2 5 6 4 1

3 4 5 2 2

1 3 8

2 1];

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.break

B.return

C.continue

D.keyboard

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

MATLAB命令窗口中直接输入命令为指令驱动模式。在MATLABM命令行窗口下用户输入单行指令时, MATLAB立即处理这条指令,并显示结果。命令行方式程序可读性差,而且不能存储,当处理复杂问题和大量数据时很不方便。

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

程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。该工作方式便于文件修改保存,使用方便。

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

clc,clear

sum=0;

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

for i=1:2:2*n+1

sum=sum+i;

end

sum

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

clc,clear

a= magic(6);

sum=0;

for i=1:6

for j=1:6

if i>=j

sum=sum+a(i,j);

end

end

end

sum

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

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n;

end

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

s=0;

for i=1:5

s=s+factor(i);

end s

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

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

A.m

B.mdl

C.mex

D.fig

2.建立如下图所示的仿真模型并进行仿真,观察波形的变化。试再建立一个新的仿真模型,并得到同样的仿真结果。

Integrator

仿真结果为圆。将sine wave1的phase 参数设置为pi/2.

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

5.01

+s 的一阶系统,查看输出波形

在示波器上的显示。

4.二阶系统的微分方程为t x x e x t sin 4.02.0=+'+''-,1='x ,0=x ,)(t u 是单位阶跃信号。用积分模块创建求解该微分方程的模型,仿真时间为300≤≤t 。

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

e bx a y -=)sin(,其中x 为输入,y 为输出,

通过对话框输入a 、b 、c 的值。

Function1

a=1,b=2,c=3

6.系统在s

sin

3。试建立该系

>输出为t

t10

t10

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

统模型,并进行仿真分析。

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

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

练习题9.1 仿真电路图

2、解答:搭建好的仿真电路如图9.16所示,为了把电容上的三种电压波形画在一张图内,这里选用Voltage Measurement 模块取出电容两端的电压,并送给Sinks 下的out 模块,这样在仿真时会在MATLAB 工作空间中产生2个默认变量,时间变量tout 和数据变量yout 。仿真时间设为10S ,步长和方法一保持一致,设为0.1S 。仿真过程由以下几个步骤完成:

① 如图9.16连接好仿真电路,然后对各元件设置参数。交流电压源AC 的参数为:Peak amplitude (V )为0,Frequency(Hz)的值由角频率2/rad s ω=可算得大约为0.318Hz 。开关Breaker 的Initial state 设为0, Switching times(s)设为0.01。电阻R 阻值为2,电容C 的Capacitance(F)设为0.5,capacitor initial voltage(V)设为5。参数设置完毕进行仿真,仿真结束后在MATLAB 工作空间产生tout 和yout ,在工作空间中修改yout 为yout1(如图9.17所示),yout1为电容电压的零输入响应。

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

③ 在命令窗口输入:yout3=yout1+yout1,yout3为电容电压的全响应。 ④ 在命令窗口用绘图指令画出电容上的三种响应波形,如下图所示:

plot(tout,yout1,'-',tout,yout2,':',tout,yout3,'-.*'), grid on %把三种数据画在一张图上 legend('yout1','yout2','yout3') % 用图例标注

练习题9.2 波形图

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

如图所示电路,已知(

)20s i t t π=A ,L 1=3H ,L 2=2H ,M =1H ,R 2=2Ω。试利用MA TLAB 中的电力系统模块集和虚拟仪器对电路进行仿真,画出电流i 2(t )的波形。

练习题3 图

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

练习题9.3 仿真电路图

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

i 2(t)

i 2(t) M

练习题9.3 波形图

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

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

答:在用MA TLAB 表示离散序列并将其可视化时,我们要注意以下几点:第一,与连续时间信号不同,离散时间信号无法用符号运算来表示;第二,由于在MA TLAB 中,矩阵的元素个数是有限的,因此,MATLAB 无法表示无限序列;第三,在绘制离散信号波形时,要使用专门的绘制离散数据的stem 命令,而不是plot 命令。 10.2已知)(t f 的波形如图1所示,用MA TLAB 画出下列信号的波形。 (1))3()(1+=t f t f (2))22()(2-=t f t f (3))22()(3t f t f -=

(4))15.0()(4--=t f t f 图1 解:MA TLAB 程序如下

%ex10_2.m 10.2题参考程序 clear syms t

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用MA TLAB 画出下列微分方程所描述系统的冲激响应和阶跃响应。 (1))(3)(2)(t f t y t y =+' (2)()3()2()()y t y t y t f t '''''++= 解:MATLAB 程序如下

%ex10_3.m 第10.3题参考程序 %第(1)题 a=[1 2];b=[3]; figure(1)

subplot(121),impulse(b,a) subplot(122),step(b,a) %第(2)题

a=[1 3 2];b=[1 0 0]; 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 连续系统的微分方程为

)(2)(3)(t f t y t y =+'

用MA TLAB 求该系统的频率响应)(ωj H ,并画出其幅频曲线和相频曲线。 解:MATLAB 程序如下

%ex10_4.m 10.4题参考程序 b=[2]; a=[1 3];

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))32)(2()(22

-++=s s s s s H (2))1(2)(+-=s s s s H (3)3.0005.05.012)(232+--++=z z z z z z H (4)2

55102)(2

+++=z z z z H 解:MATLAB 程序如下

%ex10_5.m 10.5题参考程序 %(1)

A1=[1 4 1 -6];B1=[1 0 0]; figure(1)

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

A2=[1 1 0];B2=[1 -2]; figure(2)

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

A3=[1 -0.5 -0.005 0.3];B3=[1 2 1]; figure(3)

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

A4=[5 5 2];B4=[10 2]; 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 系统的微分方程为

)(3)(6)(5)(t f t y t y t y =+'+''

输入)()(t e t f t

ε-=,初始状态1)0(=-y ,1)0(-='-y 。利用MATLAB 在s 域求该

系统的零状态响应。 解:MATLAB 程序如下

%ex10_6.m 10.6题参考程序 syms s Yzs a=[1 5 6]; b=[0 0 3]; F=1/(s+1);

Sn=[s^2 s 1]; %s 的二阶多项式 A=a*Sn'; %分母多项式 B=b*Sn'; %分子多项式 H=B/A; %计算H(s)

Yzs=H.*F; %计算零状态响应的拉式变换 yzs=ilaplace(Yzs); %拉式反变换求得零状态响应 disp('零状态响应') pretty(yzs) 运行结果:

零状态响应

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

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

12()0.5sin(2)sin(2)

015x n f n f n n ππ=+≤≤

令两个长度为16的正余弦序列的数字频率为22.01=f 及34.02=f 。取N 为四个不同

值16,32,64,128,画出四个DFT 幅频图。分析DFT 长度对频谱分辨率的影响。 解:MATLAB 程序如下

%ex10_7.m 10.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(xn,N)); k=0:N-1; figure stem(k,X) xlabel('k') ylabel('|X(k)|')

string=[num2str(N),'点DFT 幅频图']; title(string);

运行结果如图7所示。

matlab基础练习题带答案

Matlab 基础练习题 常量、变量、表达式 1、 MATLAB 中,下面哪些变量名是合法的?( ) (A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。 (A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( ) (A )eps (B )none (C )zero (D )exp 4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放 一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MA TLAB 中,i 和j ( 对 ) 6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 7、 在MA TLAB 中,若想计算的5 1)3.0sin(21+= πy 值,那么应该在MA TLAB 的指令窗中 输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。 8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字 节。 9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。 数组 1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序 的逆序排列输出,应该使用下面的( )指令。 (A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB 的命令是( )。 (A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A) 3、 在MATLAB 中,用指令x=1:9生成数组x 。现在要把x 数组的第二和第七个元素都 赋值为0,应该在指令窗中输入( ) (A )x([2 7])=(0 0) (B )x([2,7])=[0,0] (C )x[(2,7)]=[0 0] (D )x[(2 7)]=(0 0) 4、 在MA TLAB 中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这时, 若在指令窗中输入指令b=A(:,2)',那么,MATLAB 输出的结果应该是( ) (A )b = -3 -2 -1 (B )b = -2 -1 0 1 (C )b = -5 -1 3 (D )b = -5 -2 1 4 5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应 该是L1 =___ 1 1 1 1 1 0 0 0 0___。

matlab课后习题及答案详解

第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径?

matlab课后习题解答第二章doc

第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象? 3/7+0.1; sym(3/7+0.1); sym('3/7+0.1'); vpa(sym(3/7+0.1)) 〖目的〗 ●不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+0.1 c2=sym(3/7+0.1) c3=sym('3/7+0.1') c4=vpa(sym(3/7+0.1)) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = 0.5286 c2 = 37/70 c3 = 0.52857142857142857142857142857143 c4 = 0.52857142857142857142857142857143 Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 ●理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1) ans = a

symvar(sym('z*exp(j*th)'),1) ans = z 3 求以下两个方程的解 (1)试写出求三阶方程05.443 =-x 正实根的程序。注意:只要正实根,不要出现其他根。 (2)试求二阶方程022=+-a ax x 在0>a 时的根。 〖目的〗 ● 体验变量限定假设的影响 〖解答〗 (1)求三阶方程05.443 =-x 正实根 reset(symengine) %确保下面操作不受前面指令运作的影响 syms x positive solve(x^3-44.5) ans = (2^(2/3)*89^(1/3))/2 (2)求五阶方程02 2 =+-a ax x 的实根 syms a positive %注意:关于x 的假设没有去除 solve(x^2-a*x+a^2) Warning: Explicit solution could not be found. > In solve at 83 ans = [ empty sym ] syms x clear syms a positive solve(x^2-a*x+a^2) ans = a/2 + (3^(1/2)*a*i)/2 a/2 - (3^(1/2)*a*i)/2 4 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。 a =@, b = sym( @ ), c = sym( @ ,' d ' ), d = sym( '@ ' ) 在此,@ 分别代表具体数值 7/3 , pi/3 , pi*3^(1/3) ;而异同通过vpa(abs(a-d)) , vpa(abs(b-d)) , vpa(abs(c-d))等来观察。 〖目的〗 ● 理解准确符号数值的创建法。 ● 高精度误差的观察。 〖解答〗 (1)x=7/3 x=7/3;a=x,b=sym(x),c=sym(x,'d'),d=sym('7/3'), a =

matlab习题及答案

2. 用MATLAB 语句输入矩阵A 和B 3.假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来, 赋给B 矩阵,用magic(8)A =命令生成A 矩阵,用上述命令检验一下结果是不是正确。 4.用数值方法可以求出∑=++++++==63 63622284212i i S Λ,试不采用循环的 形式求出和式的数值解。由于数值方法是采用double 形式进行计算的,难以保证有效位数字,所以结果不一定精确。试采用运算的方法求该和式的精确值。 5.选择合适的步距绘制出下面的图形。 (1))/1sin(t ,其中)1,1(-∈t ; (2))tan(sin )sin(tan t t -,其中),(ππ-∈t 6. 试绘制出二元函数2 2 2 2 )1(1)1(1),(y x y x y x f z +++ +-= =的三维图和三 视图 7. 试求出如下极限。 (1)x x x x 1)93(lim +∞ →; (2)1 1lim 0-+→→xy xy y x ; (3)2 2)()cos(1lim 2 2 220 0y x y x e y x y x +→→++- 8. 已知参数方程? ??-==t t t y t x sin cos cos ln ,试求出x y d d 和3 /2 2d d π=t x y 9. 假设?-=xy t t e y x f 0 d ),(2 ,试求2222 22y f y x f x f y x ??+???-?? 10. 试求出下面的极限。 (1)??????-++-+-+-∞→1)2(1 161141121lim 2222n n Λ; (2))131211( lim 2 222π πππn n n n n n n ++++++++∞ →Λ 11. 试求出以下的曲线积分。 (1)?+l s y x d )(22,l 为曲线)sin (cos t t t a x +=,)cos (sin t t t a y -=, )20(π≤≤t 。

matlab程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化 对b的值进行改变:对比发现b的值使这个圆转换了一定的角度

对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

matlab习题及答案2

MATLAB 基本运算 1.在MATLAB 中如何建立矩阵?? ?? ??194375,并将其赋予变量a ?>>a=[573;491] 2.在进行算术运算时,数组运算和矩阵运算各有什么要求? 进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数。 3.数组运算和矩阵运算的运算符有什么区别? 在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b 为矩阵乘,a.*b 为数组乘。 4.计算矩阵??????????897473535与??????????638976242之和。>>a=[535;374;798]; >>b=[242;679;836]; >>a+b ans = 7 779 1413151214 5.计算??????=572396a 与?? ????=864142b 的数组乘积。>>a=[693;275]; >>b=[241;468]; >>a.*b ans = 12 36384240 6.“左除”与“右除”有什么区别? 在通常情况下,左除x=a\b 是a*x=b 的解,右除x=b/a 是x*a=b 的解,一般情况下,a\b ≠b/a 。

7.对于B AX =,如果??????????=753467294A ,???? ??????=282637B ,求解X 。>>A=[492;764;357]; >>B=[372628]’; >>X=A\B X = -0.5118 4.0427 1.3318 8.已知:???? ??????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 >>a=[123;456;789]; >>a.^2 ans = 1 4916 253649 6481 >>a^2 ans = 30 364266 81961021261509.[]7.0802.05--=a ,在进行逻辑运算时,a 相当于什么样的逻辑量。 相当于a=[11011]。 10.在sin(x )运算中,x 是角度还是弧度? 在sin(x)运算中,x 是弧度,MATLAB 规定所有的三角函数运算都是按弧度进行运算。

matlab练习题和答案

matlab练习题和答案 控制系统仿真实验 Matlab 部分实验结果 目录 实验一MATLAB基本操作..................................................................... .......................1 实验二Matlab 编程..................................................................... ...............................5 实验三Matlab 底层图形控制..................................................................... .....................6 实验四控制系统古典分析...................................................................... .......................12 实验五控制系统现代分析..................................................................... . (15) 实验六PID 控制器的设计..................................................................... ......................19 实验七系统状态空间设计...................................................................... .......................23 实验九直流双闭环调速系统仿真..................................................................... . (25) 实验一MATLAB基本操作

(完整版)matlab习题及答案(2)

第1章MATLAB概论 1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MA TLAB系统由那些部分组成? MATLAB系统主要由开发环境、MA TLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

MATLAB习题与答案详解

A 类 1.矩阵20 11 2 49 40 31 22 123434132232144442332415134536342516145 37 3526178646 29 2718974738 2819101483930=m ,求矩阵的秩,特征值,特征向量,相似矩阵,对角化,二次型及其标准型。 2.画出如图所示的图形 y=sin(x) x 轴y 轴 y=cos(x) x 轴y 轴 2 46 8 0102030 40y=x 2 x 轴 y 轴 2 46 8 -30-20-100 10y=5-4*x x 轴 y 轴 3要求: 1) 对每列进行[0,1]区间化 '(min())/(max()min())x x x x x =--;

2) 把区间化后的表的右边3列,连接在左边3列下边,构成16行3列的表; 3) 把16行3列进行转置,得到3行16列的表。然后对列进行操作,把3行 16列的表变成一列,后转置成一行,得到最终的结果。 4、下表为8 1) 2) 把任意两点距离的表中,自己到自己的距离,转变成无穷大 5.附件1给出了100个学生的学号和五门课程成绩。 1)求五门课总分最高分和最低分及相应学生的学号。 2)设计一个成绩查询系统,要求输入某学生的学号能够返回该学生各科成 绩,总分以及在100个人中的名次。 B类(三选二) 6.假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿1个,但最多不能超过5个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球? 7、模拟猫跑一条轨迹,轨迹为倒“8”字,轨迹如下:(条件自行拟定) 8.当一个球从h米自由下落后,被地面弹起h1,再一次下落,直至平衡,如图所示,请模拟这个过程。 1 2 3 4 5 6 7 8 x 4.22 7.92 6.56 8.49 6.79 7.43 6.55 7.06 y 9.16 9.59 0.36 9.34 7.58 3.92 1.71 0.32

MATLAB习题及答案 (入门)

习题 1, 计算?? ?? ??=572396a 与??? ???=864142b 的数组乘积。 a.*b ans = 12 36 3 8 42 40 2, 对于B AX =,如果??????????=753467294A ,???? ??????=282637B ,求解X 。 inv(a)*b ans = -0.5118 4.0427 1.3318 3, 已知:??? ? ? ?????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 a.*a ans = 1 4 9 16 25 36 49 64 81 >> a^2 ans = 30 36 42 66 81 96 102 126 150

4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。(应用sin,cos,tan.cot) >> sin(x./pi) ans = -0.1242 0.9826 0.2465 >> cos(x./pi) ans = -0.9923 -0.1857 0.9692 >> tan(x./pi) ans = 0.1252 -5.2915 0.2543 >> cot(x./pi) ans = 7.9894 -0.1890 3.9321 5, 将矩阵?? ????=7524a 、??????=3817b 和??? ???=2695c 组合成两个新矩阵: (1)组合成一个4?3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵 元素,第三列为按列顺序排列的c 矩阵元素,即 ?? ??? ???? ???237 912685 574 [reshape(a,4,1),reshape(b,4,1),reshape(c,4,1)] ans = 4 7 5 5 8 6 2 1 9 7 3 2 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即

matlab课后习题与答案

习题二 1.如何理解“矩阵是MATLAB最基本的数据对象”? 答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。 因此,矩阵是MATLAB最基本、最重要的数据对象。 2.设A和B是两个同维同大小的矩阵,问: (1)A*B和A.*B的值是否相等? 答:不相等。 (2)A./B和B.\A的值是否相等? 答:相等。 (3)A/B和B\A的值是否相等? 答:不相等。 (4)A/B和B\A所代表的数学含义是什么? 答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。 3.写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。 答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5]) (2)删除矩阵A的第7号元素。 答:A(7)=[] (3)将矩阵A的每个元素值加30。 答:A=A+30; (4)求矩阵A的大小和维数。 答:size(A); ndims(A); (5)将向量t的0元素用机器零来代替。 答:t(find(t==0))=eps; (6)将含有12个元素的向量x转换成34 矩阵。 答:reshape(x,3,4); (7)求一个字符串的ASCII码。 答:abs(‘123’); 或double(‘123’); (8)求一个ASCII码所对应的字符。 答:char(49);

4. 下列命令执行后,L1、L2、L3、L4的值分别是多少? A=1:9;B=10-A;... L1=A==B; L2=A<=5; L3=A>3&A<7; L4=find(A>3&A<7); 答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0] L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0] L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0] L4的值为[4, 5, 6] 5. 已知 23100.7780414565532503269.5454 3.14A -????-??=????-?? 完成下列操作: (1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角32?子矩阵构 成矩阵D ,B 与C 的乘积构成矩阵E 。 答:B=A(1:3,:); C=A(:,1:2); D=A(2:4,3:4); E=B*C; (2) 分别求E=10&A<25)。 答:E=10&A<25)=[1; 5]。 6. 当A=[34, NaN, Inf, -Inf, -pi, eps, 0]时,分析下列函数的执行结果:all(A), any(A),isnan(A),isinf(A),isfinite(A)。 答:all(A)的值为0 any(A) 的值为1 isnan(A) 的值为[0, 1, 0, 0, 0, 0, 0] isinf(A) 的值为[0, 0, 1, 1, 0, 0, 0] isfinite(A) 的值为[1, 0, 0,0, 1, 1, 1]

最新MATLAB基础教程-薛山第二版-课后习题答案

《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级:T1243-7 姓名:柏元强 学号:20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心

目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31)

实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算: (1) () sin 60

(2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i) 5.判断下面语句的运算结果。 (1) 4 < 20 (2) 4 <= 20

matlab程序设计例题及答案

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)

12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469

matlab课后习题答案

第4章数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff 或数值梯度gradient指令计算)(t y'曲线绘制 y',然后把)(t y和)(t 在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得) 〖目的〗 ●强调:要非常慎用数值导数计算。 ●练习mat数据文件中数据的获取。 ●实验数据求导的后果 ●把两条曲线绘制在同一图上的一种方法。 〖解答〗 (1)从数据文件获得数据的指令 假如prob_data401.mat文件在当前目录或搜索路径上 clear load prob_data401.mat (2)用diff求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意yc的长度将比y短1 plot(t,y,'b',t(2:end),yc,'r') (3)用gradent求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt;

plot(t,y,'b',t,yc,'r') grid on 〖说明〗 ● 不到万不得已,不要进行数值求导。 ● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级 以上。 ● 求导会使数据中原有的噪声放大。 2 采用数值计算方法,画出dt t t x y x ? =0 sin )(在]10 ,0[区间曲线,并计算)5.4(y 。 〖提示〗 ● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。 〖目的〗 ● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。 〖解答〗 dt=1e-4; t=0:dt:10; t=t+(t==0)*eps; f=sin(t)./t; s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==4.5); s45=s(ii) s45 =

Matlab习题与答案

实验二二维/三维数据的可视化 一、实验目的 熟悉掌握简单的图形绘制函数;掌握MATLAB常用的二维、三维图形及其他图形绘制函数的使用方法;熟悉图形句柄的使用。 二、实验环境 硬件环境:计算机一台 软件环境:Matlab 6.0 三、实验内容 作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。 1、二维绘图 (1)plot函数 函数格式:plot(x,y) 其中x和y为坐标向量 函数功能:以向量x、y为轴,绘制曲线。 例1 在区间0≤X≤2 ,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y) 例2同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X 轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。 例3 用不同线型和颜色重新绘制Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x);

plot(x,y1,'go',x,y2,'b-.') 其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本'); 例4 在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为: x=linspace(0,2*pi,60);生成含有60个数据元素的向量X y=sin(x); plot(x,y); axis ([0 2*pi -2 2]);设定坐标轴范围 2、subplot函数 (1)subplot(m,n,p) 该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。 例5 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi,60); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); eps为系统内部常数 ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成2×2区域且指定1号为活动区 plot(x,y); title('sin(x)'); axis ([0 2*pi -1 1]); subplot(2,2,2); plot(x,z); title('cos(x)'); axis ([0 2*pi -1 1]); subplot(2,2,3); plot(x,t); title('tangent(x)'); axis ([0 2*pi -40 40]);

matlab课后习题答案第一章

第1章基础准备及入门 习题1及解答 1数字1.5e2,1.5e3中的哪个与1500相同吗? 〖解答〗 1.5e3 2请指出如下5个变量名中,哪些是合法的? abcd-2xyz_33chan a变量ABCDefgh 〖解答〗 2、5是合法的。 3在MATLAB环境中,比1大的最小数是多少? 〖解答〗 1+eps 4设a=-8,运行以下三条指令,问运行结果相同吗?为什么? w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2 〖解答〗 (1)不同。具体如下 w1=a^(2/3)%仅求出主根 w2=(a^2)^(1/3)%求出(-8)^2的主根 w3=(a^(1/3))^2%求出(-8)主根后再平方 w1= -2.0000+3.4641i w2= 4.0000 w3= -2.0000+3.4641i (2)复数的多方根的,下面是求取全部方根的两种方法: (A)根据复数方根定义 a=-8;n=2;m=3; ma=abs(a);aa=angle(a); for k=1:m%m决定循环次数 sa(k)=(aa+2*pi*(k-1))*n/m;%计算各根的相角 end result=(ma^(2/3)).*exp(j*sa)%计算各根 result= -2.0000+3.4641i 4.0000-0.0000i-2.0000-3.4641i

(B )利用多项式02 3=-a r 求根p=[1,0,0,-a^2];r=roots(p)r =-2.0000+3.4641i -2.0000-3.4641i 4.00005指令clear,clf,clc 各有什么用处? 〖解答〗clear 清除工作空间中所有的变量。clf 清除当前图形。clc 清除命令窗口中所有显示。6以下两种说法对吗?(1)“MATLAB 进行数值的表达精度与其 指令窗中的数据显示精度相同。”(2) MATLAB 指令窗中显示的数值有效位数不超过7位。” 〖解答〗 (1)否;(2)否。 7想要在MATLAB 中产生二维数组???? ??????=987654321S ,下面哪些指令能实现目的? (A )S=[1,2,3;4,5,6;7,8;9] (B )S=[123;456;789] (C )S=[1,2,3;4,5,6;7,8,9] %整个指令在中文状态下输入 〖解答〗 前两种输入方法可以,后一种方法不行。8试为例1.3-5编写一个解题用的M 脚本文件? 〖解答〗 直接点击新文件图标,出现M 文件编辑器窗口;在该M 文件编辑器中,输入例1.3-5中的全部指令;并另存为p109.m ,便得到所需的脚本文件。

MATLAB 实用教程 课后习题答案

第二章 1.计算复数3+4i与5-6i的乘积。 a=3+4i b=5-6i c=a*b 2.构建结构体Students,属性包含Name、age和Email,数据包括{’Zhang’,18,*‘Zhang@16 https://www.doczj.com/doc/be13855391.html,’,’Zhang@https://www.doczj.com/doc/be13855391.html,’+}、{’Wang’,21,[]}和{’Li’,[],[]},构建后读取所有Name属性值,并且修改’Zhang’的Age属性值为19。 Students(1).Age=18 Students(1).Email='zhang@https://www.doczj.com/doc/be13855391.html,','zhang@https://www.doczj.com/doc/be13855391.html,' Students(2).Name='Wang' Students(2).Age=21 Students(2).Email=[] Students(3).Name='Li' Students(3).Age=[] Students(3).Email=[] https://www.doczj.com/doc/be13855391.html, Student(1).Age(1)=19 Student.Age 3.用满矩阵和稀疏矩阵存储方式分别构造下属矩阵: A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0] A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0] S=sparse(A) S=sparse([2,1,4],[1,2,4],[1,1,1],4,5) 4.采用向量构造符得到向量[1,5,9....,41]. A=1:4:41 5.按水平和竖直方向分别合并下述两个矩阵:A=[1 0 0;1 1 0;0 0 1],B=[2 3 4;5 6 7;8 9 10] A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B] 6.分别删除第五题两个结果的第2行。 A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B] C(2,:)=[] D(2,:)=[] 7.分别将第5题两个结果的第2行最后3列的数值改为[11 12 13]。 A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B]

MATLAB习题答案

习题二 1.如何理解“矩阵就是MATLAB最基本的数据对象”? 答:因为向量可以瞧成就是仅有一行或一列的矩阵,单个数据(标量)可以瞧成就是仅含一个元素的矩阵,故向量与单个数据都可以作为矩阵的特例来处理。 因此,矩阵就是MA TLAB最基本、最重要的数据对象。 2.设A与B就是两个同维同大小的矩阵,问: (1)A*B与A、*B的值就是否相等? 答:不相等。 (2)A、/B与B、\A的值就是否相等? 答:相等。 (3)A/B与B\A的值就是否相等? 答:不相等。 (4)A/B与B\A所代表的数学含义就是什么? 答:A/B等效于A的逆左乘B矩阵,即inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,即B*inv(A)。 3.写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。 答:B=A(2:5,1:2:5); (2)删除矩阵A的第7号元素。 答:A(7)=[] (3)将矩阵A的每个元素值加30。 答:A=A+30; (4)求矩阵A的大小与维数。 答:size(A); ndims(A); (5)将向量t的0元素用机器零来代替。 答:t(find(t==0))=eps; 矩阵。 (6)将含有12个元素的向量x转换成34 答:reshape(x,3,4); (7)求一个字符串的ASCII码。 答:abs(‘123’); 或double(‘123’); (8)求一个ASCII码所对应的字符。 答:char(49); 4.下列命令执行后,L1、L2、L3、L4的值分别就是多少? A=1:9;B=10-A;、、、 L1=A==B; L2=A<=5; L3=A>3&A<7; L4=find(A>3&A<7); 答:L1的值为(0, 0, 0, 0, 1, 0, 0, 0, 0) L2的值为(1, 1, 1, 1, 1, 0, 0, 0, 0) L3的值为(0, 0, 0, 1, 1, 1, 0, 0, 0) L4的值为(4, 5, 6) 5.已知

相关主题
文本预览
相关文档 最新文档