MATLAB教程2012a第5章习题解答-张志涌..
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
阵,Y 的每一行被作为“一组”数据;style 取 stacked 时,同一组数据中每个元素对
应的直方条被相互层叠。
在本例中,Y 中的一列代表一个城市。绘图时,各列的颜色,取自“色图”;图形窗
的默认色图是 jet。
〖解答〗
x=(1:6)'; Y=[170,120,180,200,190,220;120,100,110,180,170,180;70,50,80,100,95,12 0]';
7
y
y
CRROS-POINTS OF ' y/(1+x2+y2)-0.1 ' AND ' sin(x+cos(y)) ' 10
8
6
4
2
0
-6
-4
-2
0
2
4
6
x
图 p5-8-1
由图可知:方程组有 6 个实数解。
(2)对图形(x=0,y=0)附近局部放大,然后找交点位置。 [x0,y0]=ginput(4) x0 =
-0.9801 -0.9801 -0.9801 -0.9801 y0 =
0.2005 0.2005 0.2005 0.2005
CRROS-POINTS OF ' y/(1+x2+y2)-0.1 ' AND ' sin(x+cos(y)) '
0.8
0.6
0.4
0.2
0
-0.2
Hale Waihona Puke Baidu
-1.6
-1.4
-1.2
-1
rsize',20,'MarkerFaceColor','b','EraseMode','xor');
h2=line(x,y,'linewidth',3,'EraseMode','xor');
else
set(h1,'xdata',x(1),'ydata',y(1))
2
600
A
500
B
C
400
300
200
100
0
1
2
3
4
5
6
图 p5-3
4 二阶线性系统的归一化(即令n 1 )冲激响应可表示为:
y(t
)
1 e t sin( t)
te t
1
2
e e ( )t
( )t
0 1
1 ,
1
y2
)
0.1
有多少个实数解?
sin(x cos( y)) 0
(2)求出离 x 0, y 0 最近、且满足该方程组的一个近似解。
〖解答一〗
若记
f1 ( x,
y)
(1
y x2
y2)
0.1
,那么使用
ezplot
可以先后绘制出
f2 (x, y) sin(x cos( y))
%小于0的元素,表示“波”尚未传到
an=find(a<0);
y=exp(-0.2.*x).*sin(tt*pi/24-x);
y(1,an)=0;
%尚未受“波”影响处置零
if tt==0
h1=line('Xdata',x(1),'Ydata',y(1),'Marker','d','Color','b','Marke
%以下两条指令是为了让读者看清 x,Y 中对应数据关系而写的。它们不影响画图。 disp([blanks(5),'x',blanks(4),'YA',blanks(4),'YB',blanks(4),'YC']) disp([x,Y]) %
bar(x,Y,'stacked');
%层叠直方条
colormap(cool);
%极坐标绘线指令。h 是所画线的图柄。 %利用 set 设置 h 图形对象的“线宽” %保证坐标的圆整性 %采用特殊字符映射
1
120 150 180
=1-cos 90 2 60 1.5
1
0.5
30 0
210
330
240
300
270
图 p5-2
3 A,B,C 三个城市上半年每个月的国民生产总值如见表 p5.1。试画
3
2
1
y
0
-1
-2
-3
-4
-3
-2
-1
0
1
2
3
4
x
图 p5-1
2 根据表达式 1 cos 绘制如图 p5-2 的心脏线。(提示:采用极
坐标绘线指令 polar)
〖解答〗 clf theta=0:pi/50:2*pi; rho=1-cos(theta); h=polar(theta,rho,'-r'); set(h,'LineWidth',4) axis square title('\rho =1-cos\theta')
图 p5-8-2
9 制作如文件 prob509.p 运行时那样的色图变幻。
〖解答〗
function prob_solve509 clear all clf [X,Y,Z]=sphere(40); colormap(jet) surf(X,Y,Z) axis off axis equal shading interp light ('position',[0 -10 1.5],'style','infinite') lighting phong material shiny light; lighting flat set(gcf,'Color','w') view([-160,30]) shg C=jet; CC=[C;flipud(C)]; colormap(CC) disp('按任意键,观察色图变幻。') pause spinmap(40,8)
0.2 和 1.4 的醒目标志。(2)读者运行题下程序 exmp504.m,可以发现该程序画
出的曲线中没有“粗黑线”。你能讲出原因吗?如何对 exmp504.m 作最少的修改(比如只
改一条指令),就可画出所需图形。(提示:该题深层次地暴露数值计算可能存在的隐
患。)
〖解答〗 clc,clf,clear; t=(0:0.05:18)';N=length(t); zeta=0.2:0.2:1.4; % 可能画不出黑线。<3> %zeta=linspace(0.2,1.4,7); L=length(zeta); y=zeros(N,L); hold on for k=1:L
Z=sin(Q)./Q;
surf(X,Y,Z)
shading interp
view([27,30])
%视角控制
xlabel('x'),ylabel('y'),zlabel('z')
title('z=sin(x+y)/(x+y)')
6
图 p5.7
8 试用图解法回答:
(1) 方程组
(1
y x2
9
图 p5-9
10 在[0,4 ] 区间内,根据 y(t, x) e0.2x sin( t x) ,通过图形曲线表 24 现“行波”。做题前,请先运行 prob510.p 文件,观察演示。
图 p5-10
〖解答〗
function prob510
% prob510.m
clear all clf,shg
f1( x, y) 0 和 f2 ( x, y) 0 的曲线,而这两个函数对应曲线的交点就是方程组的解。
(1)绘制曲线
clf ezplot('y/(1+x^2+y^2)-0.1',[-2*pi,2*pi,-pi/2,7/2*pi]) hold on ezplot('sin(x+cos(y))',[-2*pi,2*pi,-pi/2,7/2*pi]) title('CRROS-POINTS OF '' y/(1+x^2+y^2)-0.1 '' AND '' sin(x+cos(y)) '' ') hold off grid on
4
15
10
5
0 1
0.5
0 -0.5
-1 -1
0 -0.5
1 0.5
图 p5-5
〖解答〗 不管是平面曲线,还是三维立体曲线,它们的描述函数中只有一个自由变量。
6 在区域 x, y [3,3] ,绘制 z 4xex2y2 的如图 p5-6 的三维(透视)
网格曲面。
〖解答〗 x=-3:0.1:3; y=x; [X,Y]=meshgrid(x,y); Z=4*X.*exp(-X.^2-Y.^2); mesh(X,Y,Z) hidden off axis([-3,3,-3,3,-2,2])
%采用 cool 色图
legend('A','B','C',2); axis([0,7,0,600]) shg
x YA YB YC 1 170 120 70 2 120 100 50 3 180 110 80 4 200 180 100 5 190 170 95 6 220 180 120
%该指令的第 4 个输入量,用来控制图例的位置。
d=0.05;
%控制运动速度(0.01——0.5)
n=200;
x=[0:pi/30:4*pi]; %供画曲线用的横坐标
axis([-0.2,4*pi,-1,1]),axis off,
10
pause(0.1)
%足够迟延似乎不可缺。否则可能图形有误。
for tt=0:n
%决定画曲线的时刻
a=tt*pi/24-x;
其中 | 1 2 | , 为阻尼系数。(1)希望在同一张图上,绘制 t [0,18] 区间内
0.2 : 0.2 : 1.4 不同取值时的各条曲线(参见图 p5-4)。在此图上, 1的各条曲线
为细蓝线; 1为粗黑线; 1为细红线;并且对最上方及最下方的两条曲线给出
3
y=(exp(-(zk-beta)*t)-exp(-(zk+beta)*t))/(2*beta); plot(t,y,'r') if zk>1.2
text(0.3,0.14,'\zeta = 1.4') end end end text(10,0.7,'\Delta\zeta=0.2') axis([0,18,-0.4,0.8]) hold off box on grid on
5
图 p5-6
7 在 x, y [4 ,4 ] 区间里,根据表达式 z sin(x y) ,绘制如图 p5x y
7 所示的曲面。
〖解答〗
x=-4*pi:pi/10:4*pi;
y=x;
[X,Y]=meshgrid(x,y);
Q=X+Y;
Q=Q+(Q==0)*eps;
%这保证: Q 中不包含 NaN,图形不产生裂缝
zk=zeta(k); beta=sqrt(abs(1-zk^2)); if zk<1
y=1/beta*exp(-zk*t).*sin(beta*t); plot(t,y,'b') if zk<0.4
text(2.2,0.63,'\zeta = 0.2') end elseif zk==1 y=t.*exp(-t); plot(t,y,'k','LineWidth',2) else
章 5 章 数据和函数的可视化
习题 5 及解答
1 已知椭圆的长、短轴 a 4, b 2 ,用“小红点线”画椭圆
x
y
a cos t b sin t
。(参见图
p5-1)
〖解答〗
clf a=4;b=2; t=0:pi/80:2*pi; x=a*cos(t); y=b*sin(t); plot(x,y,'r.','MarkerSize',15) axis equal xlabel('x') ylabel('y') shg
出如图 p5-3 所示的三城市上半年每月生产总值的累计直方图。
表 p5.1 各城市生产总值数据(单位:亿元)
城市
1月
2月
3月
4月
5月
6月
A
170
120
180
200
190
220
B
120
100
110
180
170
180
C
70
50
80
100
95
120
〖目的〗
借助 MATLAB 的帮助系统,学习直方图指令 polar 的使用。 bar 指令常用格式之一:bar(x,Y,'style') 。x 是自变量列向量;Y 是与 x 行数相同的矩
0.8
0.6
= 0.2
=0.2
0.4
0.2 = 1.4
0
-0.2
-0.4
0
2
4
6
8
10 12 14 16 18
图 p5-4
5 用绿实线绘制 x sin(t) , y cos(t) , z t 的三维曲线,曲线如图
p5-5 所示。(提示:使用 plot3 指令)
〖解答〗 t=(0:0.01:4)*pi; x=sin(t); y=cos(t); z=t; plot3(x,y,z,'-b.','linewidth',3) box on
-0.8
-0.6
-0.4
-0.2
0
x
8
(3)取平均,得近似解 x00=mean(x0) y00=mean(y0) x00 =
-0.9801 y00 =
0.2005
(4)验算 y00/(1+x00^2+y00^2) ans =
0.1002
sin(x00+cos(y00)) ans =
-1.4841e-004