基于MATLAB的数值分析.ppt

上传人:xt****7 文档编号:2840201 上传时间:2019-12-01 格式:PPT 页数:51 大小:832.50KB
返回 下载 相关 举报
基于MATLAB的数值分析.ppt_第1页
第1页 / 共51页
基于MATLAB的数值分析.ppt_第2页
第2页 / 共51页
基于MATLAB的数值分析.ppt_第3页
第3页 / 共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,fontsize14ity=xsinx) text(2.5,3.5,fontsize14its=,sint,fontsize14itxsinxdx),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,leftarrowitsin(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(itt(deg); ylabel(itmagnitude); title( itsine wave and itAe-alphaittwave);,【例】采用模型 画一组椭圆。 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+x2+y2),-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文件;,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!