基于MATLAB的数值分析.ppt
《基于MATLAB的数值分析.ppt》由会员分享,可在线阅读,更多相关《基于MATLAB的数值分析.ppt(51页珍藏版)》请在装配图网上搜索。
第二章 Matlab绘图,2.1 离散数据和离散函数的绘图,【例】用图形表示离散函数 。 n=(0:12); y=1./abs(n-6); plot(n,y,r*, MarkerSize,20) grid on,点的大小: MarkerSize,色彩符号: 蓝 b 品红 m 绿 g 黄 y 红 r 黑 k 青 c 白 w,标记类型符号: 点 . 五角形 p 加号 + 正方形 s 星号 * 三角形 ^ 菱形 d x标记 x 圆形 o,2.2 二维曲线绘图的基本操作,【例】二维曲线绘图基本指令演示。 t=(0:pi/50:2*pi); Y=cos(t); plot(t,Y) 再试验plot(t),plot(Y), plot(Y,t) ,以观察产生图形的不同。,plot(x,y): 以x为横坐标、y为纵坐标绘制二维图形 x,y是同维数的向量; plot(y): 相当于x=[1,2,…,length(y)]时情形。,绘制多个图形,1. plot(x,[y1;y2;…]), x是横坐标向量,[y1;y2;…]是由若干函数的纵坐标拼成的矩阵 2. plot(x,y1), hold on, plot(x,y2), hold off 3. plot(x,y1,x,y2,…) 4.plotyy 两个坐标系,用于绘制不同尺度的函数。,,【例】二维曲线绘图基本指令演示。 t=(0:pi/50:2*pi); k=0.4:0.1:1; Y=cos(t)*k; plot(t,Y) 再试验plot(t),plot(Y), plot(Y,t) ,以观察产生图形的不同。,,,,多次叠绘 hold :hold on, hold off 【例】利用hold绘制离散信号通过零阶保持器后产生的波形。 t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t); stem(t,y,g);hold on;stairs(t,y,r); hold off,,,,双纵坐标图 plotyy(x1,y1,x2, y2) 【例】画出函数 和积分 在区间 上的曲线。 clf;dx=0.1;x=0:dx:4;y=x.*sin(x);s=cumtrapz(y)*dx; plotyy(x,y,x,s),text(0.5,0,\fontsize{14}\ity=xsinx) text(2.5,3.5,[\fontsize{14}\its=,sint,\fontsize{14}\itxsinxdx]),,cumtrapz:求累计积分 text:标识内容的位置,线型、点形和颜色的控制,plot(x,y,‘颜色+线型+点形’) plot(x,y,‘颜色+线型+点形’,x,y,‘颜色+线型+点形’,… ) 句柄图形和set命令改变属性值,可套用: h=plot(x,y), set(h,‘属性’,属性值,‘属性’,属性值,…) 也可用plot(x,y,属性,属性值)设置图形对象的属性。,属性变量和属性值,线宽:LineWidth 点的大小: MarkerSize 线型:LineStyle 颜色:color,色彩符号: 蓝 b 品红 m 绿 g 黄 y 红 r 黑 k 青 c 白 w,标记类型符号: 点 . 五角形 p 加号 + 正方形 s 星号 * 三角形 ^ 菱形 d x标记 x 圆形 o,线类型符号: 实线 - 虚线 -- 点线 : 点划线 -.,【例】用图形表示离散函数 。 n=(0:12); y=1./abs(n-6); plot(n,y,r*,… MarkerSize,20) grid on,例 改变绘图的线型和颜色。 程序 h=plot([0:0.1:2*pi],sin([0:0.1:2*pi])); set(h,LineWidth,5,color,red);,坐标轴的控制,axis指令 axis([xmin xmax ymin ymax]): 设定二维图形的x和y坐标的范围; axis([xmin xmax ymin ymax zmin ymax]): 设定三维图形的坐标范围 ; 其中xminxxmax, yminyymax ,zminzzmax。 axis: axis on(使用轴背景),axis off(取消轴背景) axis equal, axis fill, axis image, axis normal, axis square, axis tight, axis vis3d,【例】用图形表示连续调制波形 及其包络线。 t=(0:pi/100:pi); y1=sin(t)*[1,-1]; y2=sin(t).*sin(9*t); t3=pi*(0:9)/9; y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo) axis([0,pi,-1,1]),,分格线和坐标框 grid: grid on(画出分格线), grid off (不画出分格线) box : box on (坐标呈封闭形式), box off (坐标呈开启形式),【例】 n=(0:12); y=1./abs(n-6); Subplot(1,2,1),plot(n,y,r*,MarkerSize,20),box on Subplot(1,2,2), plot(n,y,r*,MarkerSize,20),box off,文字标注,title(‘图形标题’); xlabel(‘x轴名称’);ylabel(‘y轴名称’);zlabel(‘z轴名称’); text(‘说明文字’):创建说明文字; gtext(‘说明文字’):用鼠标在特定位置输入文字。 legend (‘说明文字’):创建说明文字; 文字标注常用符号: \pi (π);\alpha (α);\beta (β); \leftarrow (左箭头) \rightarrow (右箭头); \bullet (点号),,,,,例: clf; x=0:0.05:5; y=sin(x); plot(x,y) xlabel (x), ylabel (y) legend(y=sin(x)),例: clf; x=0:0.05:5; y=sin(x); plot(x,y) gtext(y=sin(x)),【例】 clf;t=0:pi/50:2*pi;y=sin(t);plot(t,y); axis([0,2*pi,-1.2,1.2]) text(pi/2,1,\leftarrow\it{sin(t)}极大值,fontsize,18,color,r),,注:图形中文本的颜色和字号可以改变,绘制平面曲线(程序讲解,exp2_1.m),clf, t=0:0.1:3*pi;alpha=0:0.1:3*pi; plot(t,sin(t),r-);hold on; plot(alpha,3*exp(-0.5*alpha),k:); xlabel(\it{t(deg)}); ylabel(\it{magnitude}); title( \it{sine wave and {\it{Ae}}^{-\alpha{\itt}}wave});,【例】采用模型 画一组椭圆。 th = [0:pi/50:2*pi]; a = [0.5:.5:4.5]; X = cos(th)*a; Y = sin(th)*sqrt(25-a.^2); plot(X,Y) axis(equal) xlabel(x), ylabel(y) title(A set of Ellipses),,图形窗口的创建和分割,subplot(m,n,k)命令。 在图形区域中显示多个图形窗口。 m为上下分割数,n为左右分割数,k为第k子图编号。,【例】用图形表示连续调制波形,t1=(0:11)/11*pi; y1=sin(t1).*sin(9*t1); t2=(0:100)/100*pi; y2=sin(t2).*sin(9*t2); subplot(2,2,1),plot(t1,y1,r.), axis([0,pi,-1,1]),title(子图 (1)) subplot(2,2,2),plot(t2,y2,r.), axis([0,pi,-1,1]),title(子图 (2)) subplot(2,2,3),plot(t1,y1,t1,y1,r.) axis([0,pi,-1,1]),title(子图 (3)) subplot(2,2,4),plot(t2,y2, linewidth,4) axis([0,pi,-1,1]),title(子图 (4)),,若干有用的指令,clf:将图形窗口的全部内容清除。 shg:显示图形窗口。 figure: 打开一个新的图形窗口。 figure(n): 打开第n个图形窗口 cla: 将所绘曲线清除并重画坐标轴。 close(n):将关闭编号为n的图形窗口, close all: 将关闭所有图形窗口.,【例】观察各种轴控制指令的影响。演示采用长轴为3.25,短轴为1.15的椭圆。注意:采用多子图表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。,t=0:2*pi/99:2*pi; x=1.15*cos(t);y=3.25*sin(t); subplot(2,3,1),plot(x,y),axis normal,grid on, title(Normal and Grid on) subplot(2,3,2),plot(x,y),axisequal,grid on,title(Equal) subplot(2,3,3),plot(x,y),axissquare,grid on,title(Square) subplot(2,3,4),plot(x,y),axisimage,box off,title(Image and Box off),,subplot(2,3,5),plot(x,y),axis image fill,box off title(Image and Fill) subplot(2,3,6),plot(x,y),axistight,box off,title(Tight),极坐标绘图:polar(x,y),对数绘图:loglog(x,y) 半对数绘图:semilogx(x,y), semilogy(x,y),其它绘图命令,,【例】 clf;t=0:.05:pi+.01; y=sin(3*t).*exp(-0.3*t); polar(t,y) title(polar plot) Grid on,【例】 clf;t=0.1:.1:3; y=exp(t.*t); semilogy(t,y) grid xlabel(t); ylabel(exp(t.*t) );,若干特殊图形,x=[1:10]; y=[5 6 3 4 8 1 10 3 5 6]; subplot(2,3,1),bar(x,y),axis([1 10 1 11]) subplot(2,3,2),hist(y,x),axis([1 10 1 4]) subplot(2,3,3),stem(x,y,k),axis([1 10 1 11]) subplot(2,3,4),stairs(x,y,k), axis([1 10 1 11]) subplot(2,3,5), x = [1 3 0.5 5];explode = [0 0 0 1];pie(x,explode) subplot(2,3,6),z=0:0.1:100; x=sin(z);y=cos(z).*10; comet3(x,y,z),交互式图形指令 [x,y]=ginput(n): 用鼠标从二维图形上获取n个点 的数据坐标(x,y). gtext(agr):用鼠标把字符串agr放置到图形上。 legend ( agr ,pos) :在指定位置建立图例。 pos取值0,1(缺省值),2,3,4,-1 Legend off:擦出当前图上的图例。,2.3 三维绘图的基本操作,绘制二元函数基本步骤: 1.生成二维网格点 2. 计算函数在网格点上的值 3. 绘制函数图形,,xm=[0 1 2];ym=[1 2 3]; [x,y]=meshgrid(xm,ym);,meshgrid指令:生成网格点,a=-0.98;b=0.98;c=-1;d=1;n=10; x=linspace(a,b,n); y=linspace(c,d,n); [X,Y]=meshgrid(x,y); plot(X,Y,+),三维绘图指令,mesh(X,Y,z) : 在三维空间中绘出由(X,Y,z)表示的曲面; meshz(X,Y,z): 除了具有mesh的功能外,还画出上下高度线, meshc(X,Y,z): 除了具有mesh的功能外,还在曲面的下方画出函数z=f(x,y)的等值线图, surf(X,Y,z): 也是三维绘图指令,与mesh的区别在于mesh绘出彩色的线,surf绘出彩色的面,,,,【例】用曲面图表现函数 clf,x=-4:4;y=x;[X,Y]=meshgrid(x,y); Z=X.^2+Y.^2; surf(X,Y,Z);hold on,colormap(hot), hold on, stem3(X,Y,Z,bo),,注:meshgrid通过一维数组生成二维阵列,,,【例】用色图阵表现函数的不同特征。演示:当三维网线图、曲面图的第四个输入宗量取一些特殊矩阵时,色彩就能表现或加强函数的某特征(如本例的全导数和曲率)。,x=3*pi*(-1:1/15:1);y=x;[X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R; [dzdx,dzdy]=gradient(Z); dzdr=sqrt(dzdx.^2+dzdy.^2); dz2=del2(Z); subplot(1,2,1),surf(X,Y,Z,abs(dzdr)) shading faceted;brighten(0.6);colorbar(horiz) title(No. 1 surf(X,Y,Z,abs(dzdr))) subplot(1,2,2),surf(X,Y,Z,abs(dz2)) shading faceted;colorbar(horiz) title(No. 2 surf(X,Y,Z,abs(dz2))),,,,1. 视点控制 View([az,el]) 例: View([-37.5,30]) View([vx,vy,vz]),上次看到的三维图形的精细控制,2. 色彩控制,用色风格 colordef(fig,options),options=white,black,色图 colormap(CM), CM=hot,jet,cool,…,等值线指令,表现二维函数的图形的另一种方式是绘制等值线图。 contour(X,Y,z,level): level是表示等高线高度的数组 contour(X,Y,z,n): n条等高线,n可缺省; contourf(X,Y,z,n): 等值线间用不同的颜色填满,有更好的视觉效果; contour3(X,Y,z,n): 在三维空间画出等值线图 colorbar: 将颜色与函数值对应起来显示在图中。,,绘等值线图,clear,clc,clf,axis square xm=-2:.2:2;ym=-2:.2:2; [x,y]=meshgrid(xm,ym); z=x.*exp(-x.^2-y.^2); zmax=max(max(z));zmin=min(min(z)); dz=(zmax-zmin)/10; level=(zmin+0.5*dz):dz:zmax; %[c,h]=contour(x,y,z);clabel(c,h) h=contour(x,y,z,level);clabel(h) %h=contour(x,y,z,level);clabel(h,manual) title(contour plot by contour(x,y,z,level)), xlabel(x),ylabel(y),,clabel(h):自动注释 clabel(h,manual) :用鼠标选择添加数字的位置.,Contour命令可以用来绘制隐函数的图形,clear,clf xm=-3:.2:3;ym=-2:.2:1; [x,y]=meshgrid(xm,ym); f=y.^3+exp(y)-tanh(x); contour(x,y,f,[0,0]) xlabel(x),ylabel(y),绘制空间曲线(指令),,plot3(x,y,z): 绘制三维空间曲线,用法和plot类似。 quiver(X,Y,u,v):绘制二维矢量, 在坐标矩阵点[X,Y]处绘制矢量[u,v], 其中u为矢量的x坐标,v为矢量的y 坐标,其维数不小于2。 quiver3(X,Y,Z,u,v,w): 绘制三维矢量,用法与quiver类似。 Gradient: [Fx,Fy,Fz]=gradient(F)为函数F数值梯度,,,,【例】三维曲线绘图(要点:参量选取;线型、点型、图例) t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t); plot3(x,y,z,b-,x,y,z,bd),view([-82,58]),box on,legend(链,宝石),,空间曲线和运动方向的表现,一条空间曲线可以用矢量函数表示为,它的速度矢量表现为曲线的切矢量:,(程序讲解exp2_2),exp2_2.m clf,t=linspace(0,1.5,20); x=t.^2;y=(2/3)*t.^3;z=(6/4)*t.^4-(1/3)*t.^3; plot3(x,y,z,r.- ,linewidth,1,markersize,10),hold on Vx=gradient(x);Vy=gradient(y);Vz=gradient(z); h=quiver3(x,y,z,Vx,Vy,Vz),set(h,linewidth,1),grid on axis([0 1.5 0 1.5 0 40]) xlabel(x),ylabel(y),zlabel(z),box on 运行程序,很显然飞行曲线方程为:,,应用、思考和练习,绘制微分方程 dy/dx=xy, y(0)=0.4的斜率场, 并将解曲线画在图中,观察斜率场和解曲线的关系。,,,2.4 图形窗功能简介,,,,2.5 函数绘图的简捷指令,一元函数简捷绘图指令 【例】绘制 和它的积分 在 间的图形。 syms t tao; y=2/3*exp(-t/2)*cos(sqrt(3)/2*t); s=subs(int(y,t,0,tao),tao,t); subplot(1,2,1),ezplot(y,[0,4*pi]);grid subplot(1,2,2),ezplot(s,[0,4*pi]);grid title(s = \inty(t)dt),,,,,【例】在园域上画 的图形。 ezsurf(x*y,circ);shading flat; view([-18,28]),,二元函数简捷绘图指令 ezsurf(F,dom-f,ngrid) ezsurf(F,dom-f,’circ’) ezsurf(x,y,z,dom-st,ngrid) ezsurf(x,y,z,dom-st,’circ’),,,【例】使用球坐标参量画部分球壳。 x=cos(s)*cos(t);y=cos(s)*sin(t);z=sin(s); ezsurf(x,y,z,[0,pi/2,0,3*pi/2]) view(17,40);shading interp;colormap(spring) light(position,[0,0,-10],style,local) light(position,[-1,-0.5,2],style,local) material([0.5,0.5,0.5,10,0.3]),,,,简捷绘图指令汇总 ezcontour 画等位线, ezcontour(cos(x+sin(y))-sin(y)) ezcontourf 画填色等位线 ezmesh 画网线图, ezmesh (exp(-s)*cos(t), exp(-s)*sin(t) ,t,[0,8,0,4*pi]) ezmeshc 画带等位线的网线图, ezmeshc(y/(1+x^2+y^2),[-5,5,-2*pi,2*pi]) ezplot 画二维曲线, ezplot(1/y-log(y)+log(-1+y)+x-1) ezplot3 画三维曲线 ezplot3(sin(3*t)*cos(t), sin(3*t)*sin(t),t,animate) ezpolar 画极坐标曲线, ezpolar(sin(tan(t))) ezsurf 画曲面图 ezsurfc 画带等位线的曲面图, ezsurfc(sin(x)*sin(y)),,,2.6 影片动画,clf;shg,x=3*pi*(-1:0.05:1); y=x;[X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; h=surf(X,Y,Z);colormap(jet);axis off n=12;mmm=moviein(n); for i=1:n rotate(h,[0 0 1],25); mmm(:,i)=getframe; end movie(mmm,5,10),【例】三维图形的影片动画。,2.7 打印和记录图形,print:打印当前窗口下的图形; print -djpeg filename:保存为jpg文件; 保存为MATLAB文件;,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 数值 分析

链接地址:https://www.zhuangpeitu.com/p-2840201.html