数学2 用MATLAB绘制二维 三维图形(lq).ppt_第1页
数学2 用MATLAB绘制二维 三维图形(lq).ppt_第2页
数学2 用MATLAB绘制二维 三维图形(lq).ppt_第3页
数学2 用MATLAB绘制二维 三维图形(lq).ppt_第4页
数学2 用MATLAB绘制二维 三维图形(lq).ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用matlab绘制二维、三维图形,2.1二维图形的绘制,2.1.1 二维绘图的基本命令 matlab中,最常用的二维绘图命令是plot。使用该命令,软件将开辟一个图形窗口,并画出连接坐标面上一系列点的连线。 格式: plot(x,y,颜色+线型+点型,.),1)当(x,y)是一坐标点时,则在相应位置画出一个点,用法: plot(x,y,r*)%在(x,y)处画一个红色的*点。 2)当(x,y)为一点列时(x1,y1),(x2,y2),.,(xn,yn)时,则画出顺次连接这些点的曲线。用法: plot(x,y) %画出连接点列的蓝色实心线(默认) plot(x,y,r)%画出连接点列的红色虚线。

2、,其中,点线的颜色代码与线型代码 表2-1 颜色代码表 表2-2 点型和线型代码,3)使用subplot(m,n,k)实现一个区域中显示mn个子图形窗口,并指定在第k个子窗口绘图;此时可以对该窗口进行个性描述,如对坐标重置、对线条加粗、加说明等。 4)使用hold on 命令实现同一窗口中多次绘制图形,用hold off 取消。,例2-1 在子图形窗口中画出0,2上正弦曲线和余弦曲线。 x =0:0.1*pi:2*pi; y=sin(x);z=cos(x); subplot(2,1,1) plot(x,y,x,z) subplot(2,1,2) plot(x,y,k:,x,z,r-), hol

3、d on %在第二个子图上二次绘图。 plot(x,y,bo,x,z,k+) hold off ,2.1.2 图形的标识与修饰,使用grid命令对图形窗口加坐标网格 使用linewidth和markersize命令实现图形中线宽和点型大小的设置。 格式: plot(x,y,b*-,x,y,linewidth,5,markersize,10) 其中,数值5和10分别为线型和点型的大小,默认值为1.,使用axis命令实现坐标轴的重新设置 格式:axis(xmin xmax ymin ymax) 使用title xlabel ylabel zlabel text实现对文字的说明。 以上命令在绘图是经

4、常用到的,参看以下实验。,例2-2 画出0,2pi上正弦、余弦曲线对线型加粗、点型加大,重新设定坐标系以及加注相关说明和注释。 x=0:0.1*pi:2*pi; y=sin(x); z=cos(x); plot(x,y,b-,x,z,k.-,linewidth,3,markersize,15),axis(-0.2*pi 2.2*pi -1.2 1.2) %重置坐标范围 grid xlabel(variableitx) %标记横坐标,itx表示x斜体 ylabel(variableity) %标记纵坐标轴 title(sine and cosine cruves) %标记图名 text(2.5,

5、0.7,sin(x) 在(2.5,0.7)的位置标记曲线名称 text(1.5,0.1,cos(x) % 在(1.5,0.1)的位置标记曲线名称,现在要在坐标系中画出连接0,0到2pi,0的直线且用红色,作为x轴。则输入如下命令: hold on %图形保持,在同一图形窗口中叠加图形 plot(0,2*pi,0,0,r-.,linewidth,5) %叠加一条红色点化线,作为x轴 hold off %图形保持取消,再画图时将另辟窗口,fill命令和 polar命令,使用fill(x,y )命令实现对闭合图形的填充; 使用polar(theta,rho)命令进行极坐标绘图 例2-3 在图形窗口画

6、出填充一个正方形 h1=figure; %打开第一个图形窗口,返回其图标识号(句柄)h1 x=0 1 1 0 0; %闭合图形的顶点横坐标 y=0 0 1 1 0; %闭合图形的顶点纵坐标 fill(x,y,y) %填充闭合图形(用黄色) axis(-1 2 -1 2) %重新设置坐标,例:在图形窗口极坐标方程r=2sin2*cos2的图形,h2=figure; %打开第二个图形窗口 theta=linspace(0,2*pi); linspace()函数等分角,默认100等分 rho=sin(2*theta).*cos(2*theta); %生成相应极坐标方程的极径rho向量 polar(t

7、heta,rho,r) %绘制相应的极坐标方程图形 title(polar plot) %添加标题 如果想对第二个图形加粗的话,可以用如下命令 set(h2,linewidth,3),bar命令和 stairs命令,使用bar(x,y)命令实现绘制直方图;使用stairs(x,y)命令实现绘制阶梯图。 例2-4在-2.5,2.5上画出函数y=e-x2的直方图和阶梯图。 x=linspace(-2.5,2.5,20); y=exp(-x.*x); h1=subplot(1,2,1); %分图形窗口并在第一个子窗口中绘图,返回其句柄h1 bar(x,y) %画直方图 title(bar char

8、of a bell curve) h2= subplot(1,2,2); %分图形窗口并在第二个子窗口中绘图,返回其句柄h2 stairs(x,y) %画阶梯图 title(stair plot of a bell curve),例2-5 采用不同形式(直角坐标、参数、极坐标),画出单位圆x2y21的图形。 分析:对于直角坐标系方程,y ,对于参数方程xcost,y=sint,t ,利用plot(x,y)命令可以实现。而在极坐标系中单位圆为r1(1+0t),利用polar(t,r)命令实现。,)直角坐标系 x=-1:0.01:1; y1=sqrt(1-x.2); y2=-y1; plot(x,

9、y1,x,y2) axis equal % 让坐标系中两坐标轴相同,)直角坐标系 x=-1:0.01:1; y1=sqrt(1-x.2); y2=-y1; plot(x,y1,r,x,y2,r) axis equal % 让坐标系中两坐标轴相同,2)参数方程 t=linspace(0,2*pi) x=cos(t);y=sin(t); plot(x,y); axis equal,3)极坐标系 t=linspace(0,2*pi); r=1+0*t; 或 r=ones(1,100) %不可写成,因为必须是向量才行。 polar(t,r),2.2.1 三维曲线的绘制(plot3命令),plot3是二

10、维绘图命令plot的推广,其使用方法和功能基本相同。 格式: plot3(x,y,z,颜色线型点型,.) 当(x,y,z)是一个坐标时,则在空间相应位置画出一个点。用法: plot3(x,y,z,r*) 当(x,y,z)是点列时,则画出依次连接这些点的曲线。用法: plot3(x,y,z,r) 红色实线 其中,曲线的颜色和线型取值同前表。,例2-6 画出螺旋线,xsin(t),y=cos(t),z=t, t ,上的一段曲线。 t=0:pi/50:10*pi; x=sin(t); y=cos(t); z=t; plot3(x,y,z,g-,linewidth,3) grid,2.2.2 三维曲面

11、的绘制(mesh、surf命令),对于二元函数zf(x,y),设其定义域为a,bc,d,则其几何图形为空间坐标系中一片曲面,该曲面的投影域即为函数的定义域,使用mesh、surf等命令可以绘制出相应曲面。 格式: mesh(x,y,z) 绘制网格曲面 surf(x,y,z) 绘制光滑曲面 其中,x、y分别为投影域上网格划分节点处对应的横坐标矩阵和纵坐标矩阵,可由meshgrid命令生成; z为与投影域上网格划分节点(x,y)对应的函数值(坐标z)矩阵。具体步骤:,1)对投影域进行划分: xa:p1:b yc:p2:d 2)按上述划分生成投影域上全部网格节点的坐标矩阵。 X,Y=meshgrid

12、(x,y) 3)根据函数表达式生成全部网格节点出对应的函数值矩阵z: zf(X,Y) 4)顺序连接已经产生的空间点(x,y,z)绘制相应曲面: mesh(X,Y,Z) surf(X,Y,Z) shading flat 去除网格线。,例2-7画出矩形域-1,1-1,1旋转抛物面:z=x2+y2. x=linspace(-1,1,100); y=x; X,Y=meshgrid(x,y); %生成矩形区-1,1-1,1的网格坐标矩阵 Z=X.2+Y.2; subplot(1,2,1) mesh(X,Y,Z); subplot(1,2,2) surf(X,Y,Z); shading flat; %对曲

13、面z=x2+y2平滑并除去网格,未进行 Shading flat,Shading Flat 之后,2.8 在圆形域x2+y21上绘制旋转抛物面:z= x2+y2. x=linspace(-1,1,300); y=x; X,Y=meshgrid(x,y); %生成矩形域-1,1 -1,1 网格节点坐标矩阵 Z=X.2+Y.2; i=find(Z1); %找出圆域x2+y21之外的函数值坐标点i Z(i)=NaN; %对圆域x2+y21之外的坐标点i处函数值进行“赋空” subplot(1,2,1) mesh(X,Y,Z); %网格曲面 subplot(1,2,2) surf(X,Y,Z); %光

14、滑曲面 shading flat;,注:find的用方法 find(A)返回矩阵A中非零元素所在位置 A = 1 0 4 -3 0 0 0 8 6; X = find(A) X = 1 3 4 8 9find(A5) 返回矩阵A中大于5的元素所在位置 find(A5) ans = 8 9 i,j,v=find(A) 返回矩阵A中非零元素所在的行i,列j,和元素的值v(按所在位置先后顺序输出),A=3 2 0; -5 0 7; 0 0 1; i,j,v=find(A) i = 1 2 1 2 3 j = 1 1 2 3 3 v = 3 -5 2 7 1,2.2.3 特殊图形和简易绘图命令,1.

15、几个特殊的空间曲面:peaks(山峰),sphere,cylinder,它们的使用方法及结果如下: 1). x,y,z=peaks; surf(x,y,z),2). x,y,z=sphere; surf(x,y,z),3). x,y,z=cylinder; surf(x,y,z),2、对于给定的符号函数f(x) 或表达式F(x,y),可方便地利用ezplot命令画出f(x)的曲线图以及用方程F(x,y)确定的隐函数yy(x)的图形。 格式如下: ezplot(x*exp(-x2),-1,1) % 在-1,1上画zxe-x2的图形 ezplot(x2/9+y2-1,-4,4,-4,4) %在正方

16、形区域上画椭圆的图形。,应用举例,例如 2-9 画出 在 上的图形。 x=-7.5:0.5:7.5; y=x; X,Y=meshgrid(x,y); u=sqrt(X.2+Y.2)+eps; % 加eps使得不等于。 Z=sin(u)./u; surf(X,Y,Z),eps在matalab中叫做“浮点零”,也叫是matalab中的零值。用特殊的MATLAB数eps来代替在一个数组中的零元素,eps近似为2.2e-16。不是最小的数,而是系统能准确表示的浮点数的精度。 更准确的说,就是浮点数1.0和相邻的下一个系统能表示出的浮点数之间的差。,小节,. plot函数主要功能是用于绘制显式y=f(x

17、)与参数式x=x(t),y=y(t)平面曲线。 . ezplot函数主要功能是用于绘制隐式函数的f(x,y)=0曲线,它的调用格式如下:ezplot(F,xmin,xmax) 3. polar函数主要功能是用于绘制极坐标式= ()曲线,他的调用格式为 polar(theta,rho,可选项s),4. plot3函数的主要功能是绘制空间参数曲线,它的调用格式是: plot3(x,y,z,可选项) . surf 函数和mesh函数用来绘制网状曲面和网状补片。,上机练习,、在圆域x2+y2=1上画出半球面 的图形。 x=linspace(-1,1,500); y=x; X,Y=meshgrid(x,

18、y); u=1-X.2-Y.2; i=find(u0); u(i)=nan; z=sqrt(u); surf(X,Y,z) shading flat;,1.绘制x4+y4=a4所表示的曲线,a=2 2.绘制y=e-axsinbx在区间-6,6上的图形,其中a=0.1,b=2 x=-2:0.01:2; y1=(16-x.4).0.25 y2=-(16-x.4).0.25; plot(x,y1) hold on plot(x,y2) axis equal 或 axis (-2.5 2.5 -2.5 2.5),t=linspace(0,2*pi,40); z=linspace(0,2,50); T,Z=meshgrid(t,z); X=sin(T); Y=cos(T); surf(X,Y,Z); axis equal,x,y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论