1、第5章 数据和函数的可视化习题5及解答1 已知椭圆的长、短轴,用“小红点线”画椭圆。(参见图p5-1)l解答clfa=4;b=2;t=0:pi/80:2*pi;x=a*cos(t);y=b*sin(t);plot(x,y,r.,MarkerSize,15)axis equalxlabel(x)ylabel(y)shg 图 p5-12 根据表达式绘制如图p5-2的心脏线。(提示:采用极坐标绘线指令polar)解答clftheta=0:pi/50:2*pi;rho=1-cos(theta);h=polar(theta,rho,-r);%极坐标绘线指令。h是所画线的图柄。set(h,LineWidt
2、h,4)%利用set设置h图形对象的“线宽”axis square%保证坐标的圆整性title(rho =1-costheta)%采用特殊字符映射 图 p5-23 A,B,C三个城市上半年每个月的国民生产总值如见表p5.1。试画出如图p5-3所示的三城市上半年每月生产总值的累计直方图。表p5.1 各城市生产总值数据(单位:亿元)城市1月2月3月4月5月6月A170120180200190220B120100110180170180C70508010095120目的l 借助MATLAB的帮助系统,学习直方图指令polar的使用。l bar指令常用格式之一:bar(x,Y,style) 。x是自变
3、量列向量;Y是与x行数相同的矩阵,Y的每一行被作为“一组”数据;style取stacked时,同一组数据中每个元素对应的直方条被相互层叠。l 在本例中,Y中的一列代表一个城市。绘图时,各列的颜色,取自“色图”;图形窗的默认色图是jet。解答x=(1:6);Y=170,120,180,200,190,220;120,100,110,180,170,180;70,50,80,100,95,120;%以下两条指令是为了让读者看清x,Y中对应数据关系而写的。它们不影响画图。disp(blanks(5),x,blanks(4),YA,blanks(4),YB,blanks(4),YC)disp(x,Y)
4、%bar(x,Y,stacked);%层叠直方条colormap(cool);%采用cool色图legend(A,B,C,2);%该指令的第4个输入量,用来控制图例的位置。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 图 p5-34 二阶线性系统的归一化(即令)冲激响应可表示为:,其中,为阻尼系数。(1)希望在同一张图上,绘制区间内不同取值时的各条曲线(参见图p5-4)。在此图上,的各条曲线为细蓝线;为粗黑线;为细红线;并
5、且对最上方及最下方的两条曲线给出和的醒目标志。(2)读者运行题下程序exmp504.m,可以发现该程序画出的曲线中没有“粗黑线”。你能讲出原因吗?如何对exmp504.m作最少的修改(比如只改一条指令),就可画出所需图形。(提示:该题深层次地暴露数值计算可能存在的隐患。)解答clc,clf,clear;t=(0:0.05:18);N=length(t);zeta=0.2:0.2:1.4; % 可能画不出黑线。%zeta=linspace(0.2,1.4,7);L=length(zeta);y=zeros(N,L);hold onfor k=1:L zk=zeta(k); beta=sqrt(a
6、bs(1-zk2); if zk1 y=1/beta*exp(-zk*t).*sin(beta*t); plot(t,y,b) if zk1.2 text(0.3,0.14,zeta = 1.4) end endendtext(10,0.7,Deltazeta=0.2)axis(0,18,-0.4,0.8)hold offbox ongrid on 图 p5-45 用绿实线绘制,的三维曲线,曲线如图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 图 p
7、5-5解答l 不管是平面曲线,还是三维立体曲线,它们的描述函数中只有一个自由变量。6 在区域,绘制的如图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 offaxis(-3,3,-3,3,-2,2) 图 p5-67 在区间里,根据表达式,绘制如图p5-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,图形不产生裂缝Z=sin(Q)./Q;surf
8、(X,Y,Z)shading interpview(27,30)%视角控制xlabel(x),ylabel(y),zlabel(z)title(z=sin(x+y)/(x+y) 图 p5.78 试用图解法回答:(1) 方程组有多少个实数解?(2) 求出离最近、且满足该方程组的一个近似解。解答一若记,那么使用ezplot可以先后绘制出和的曲线,而这两个函数对应曲线的交点就是方程组的解。(1)绘制曲线clfezplot(y/(1+x2+y2)-0.1,-2*pi,2*pi,-pi/2,7/2*pi)hold onezplot(sin(x+cos(y),-2*pi,2*pi,-pi/2,7/2*pi
9、)title(CRROS-POINTS OF y/(1+x2+y2)-0.1 AND sin(x+cos(y) )hold offgrid on 图 p5-8-1由图可知:方程组有6个实数解。(2)对图形(x=0,y=0)附近局部放大,然后找交点位置。x0,y0=ginput(4) x0 = -0.9801 -0.9801 -0.9801 -0.9801y0 = 0.2005 0.2005 0.2005 0.2005图 p5-8-2(3)取平均,得近似解x00=mean(x0)y00=mean(y0) x00 = -0.9801y00 = 0.2005 (4)验算y00/(1+x002+y00
10、2) ans = 0.1002 sin(x00+cos(y00) ans = -1.4841e-004 9 制作如文件prob509.p运行时那样的色图变幻。解答function prob_solve509clear allclfX,Y,Z=sphere(40);colormap(jet)surf(X,Y,Z)axis offaxis equalshading interp light (position,0 -10 1.5,style,infinite)lighting phongmaterial shinylight;lighting flat set(gcf,Color,w)view(-
11、160,30)shgC=jet;CC=C;flipud(C);colormap(CC)disp(按任意键,观察色图变幻。)pausespinmap(40,8)图 p5-910 在区间内,根据,通过图形曲线表现“行波”。做题前,请先运行prob510.p文件,观察演示。图 p5-10解答function prob510% prob510.mclear allclf,shgd=0.05; %控制运动速度(0.010.5)n=200;x=0:pi/30:4*pi;%供画曲线用的横坐标axis(-0.2,4*pi,-1,1),axis off,pause(0.1) %足够迟延似乎不可缺。否则可能图形有
12、误。for tt=0:n%决定画曲线的时刻a=tt*pi/24-x;%小于0的元素,表示“波”尚未传到an=find(a0);y=exp(-0.2.*x).*sin(tt*pi/24-x);y(1,an)=0;%尚未受“波”影响处置零if tt=0h1=line(Xdata,x(1),Ydata,y(1),Marker,d,Color,b,Markersize,20,MarkerFaceColor,b,EraseMode,xor); h2=line(x,y,linewidth,3,EraseMode,xor);else set(h1,xdata,x(1),ydata,y(1) set(h2,xdata,x,ydata,y)endpause(d)end11 利用影片动画法,据函数制作驻波动画。在做题前,先运行prob511.p产生的演示动画。图 p5-11f
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1