数学2用MATLAB绘制二维三维图形_第1页
数学2用MATLAB绘制二维三维图形_第2页
数学2用MATLAB绘制二维三维图形_第3页
数学2用MATLAB绘制二维三维图形_第4页
数学2用MATLAB绘制二维三维图形_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、);subplot(2,1,1)plot(x,y,x,z)subplot(2,1,2)plot(x,y,k:,x,z,r-)数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形 hold on %在第二个子图上二次绘图。 plot(x,y,bo,x,z,k+) hold off 数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形2.1.2 图形的标识与修饰使用grid命令对图形窗口加坐标网格使用linewidth和markersize命令实现图形中线宽和点型大小的设置。格式:plot(x,y,b*-,x,y,linewidth,5,markersize

4、,10)其中,数值5和10分别为线型和点型的大小,默认值为1.数学2用MATLAB绘制二维三维图形使用axis命令实现坐标轴的重新设置格式:axis(xmin xmax ymin ymax)使用title xlabel ylabel zlabel text实现对文字的说明。以上命令在绘图是经常用到的,参看以下实验。数学2用MATLAB绘制二维三维图形例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,markersi

5、ze,15)数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形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,0.7,sin(x)在(,)的位置标记曲线名称text(1.5,0.1,cos(x)% 在()的位置标记曲线名称数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形现在要在坐标系中画出连接0,0到2p

6、i,0的直线且用红色,作为x轴。则输入如下命令:hold on %图形保持,在同一图形窗口中叠加图形plot(0,2*pi,0,0,r-.,linewidth,5)%叠加一条红色点化线,作为x轴hold off%图形保持取消,再画图时将另辟窗口数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形fill命令和 polar命令使用fill(x,y )命令实现对闭合图形的填充;使用polar(theta,rho)命令进行极坐标绘图例2-3 在图形窗口画出填充一个正方形h1=figure; %打开第一个图形窗口,返回其图标识号(句柄)h1x=0 1 1 0 0; %闭合图形的顶点

7、横坐标y=0 0 1 1 0; %闭合图形的顶点纵坐标fill(x,y,y) %填充闭合图形(用黄色)axis(-1 2 -1 2) %重新设置坐标 数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形例:在图形窗口极坐标方程r=2sin2*cos2的图形h2=figure; %打开第二个图形窗口theta=linspace(0,2*pi);linspace()函数等分角,默认100等分rho=sin(2*theta).*cos(2*theta);%生成相应极坐标方程的极径rho向量polar(theta,rho,r) %绘制相应的极坐标方程图形title(polar pl

8、ot) %添加标题如果想对第二个图形加粗的话,可以用如下命令set(h2,linewidth,3)数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形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); %分图形窗口并在第一个子窗口中绘图,返回其句柄h1bar(x,y) %画直方图title(bar char of a bell curv

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

10、;y1=sqrt(1-x.2);y2=-y1;plot(x,y1,x,y2)axis equal% 让坐标系中两坐标轴相同数学2用MATLAB绘制二维三维图形)直角坐标系x=-1:0.01:1;y1=sqrt(1-x.2);y2=-y1;plot(x,y1,r,x,y2,r)axis equal% 让坐标系中两坐标轴相同数学2用MATLAB绘制二维三维图形2)参数方程t=linspace(0,2*pi)x=cos(t);y=sin(t);plot(x,y);axis equal数学2用MATLAB绘制二维三维图形3)极坐标系t=linspace(0,2*pi);r=1+0*t;或 r=ones

11、(1,100)%不可写成,因为必须是向量才行。polar(t,r)数学2用MATLAB绘制二维三维图形2.2.1 三维曲线的绘制(plot3命令)plot3是二维绘图命令plot的推广,其使用方法和功能基本相同。格式:plot3(x,y,z,颜色线型点型,.)当(x,y,z)是一个坐标时,则在空间相应位置画出一个点。用法:plot3(x,y,z,r*)当(x,y,z)是点列时,则画出依次连接这些点的曲线。用法:plot3(x,y,z,r) 红色实线其中,曲线的颜色和线型取值同前表。数学2用MATLAB绘制二维三维图形例2-6 画出螺旋线,xsin(t),y=cos(t),z=t,t ,上的一段

12、曲线。t=0:pi/50:10*pi;x=sin(t);y=cos(t);z=t;plot3(x,y,z,g-,linewidth,3)grid数学2用MATLAB绘制二维三维图形2.2.2 三维曲面的绘制(mesh、surf命令)对于二元函数zf(x,y),设其定义域为a,bc,d,则其几何图形为空间坐标系中一片曲面,该曲面的投影域即为函数的定义域,使用mesh、surf等命令可以绘制出相应曲面。格式:mesh(x,y,z) 绘制网格曲面surf(x,y,z) 绘制光滑曲面其中,x、y分别为投影域上网格划分节点处对应的横坐标矩阵和纵坐标矩阵,可由meshgrid命令生成;z为与投影域上网格划

13、分节点(x,y)对应的函数值(坐标z)矩阵。具体步骤:数学2用MATLAB绘制二维三维图形1)对投影域进行划分:xa:p1:byc:p2:d2)按上述划分生成投影域上全部网格节点的坐标矩阵。X,Y=meshgrid(x,y)3)根据函数表达式生成全部网格节点出对应的函数值矩阵z:zf(X,Y)4)顺序连接已经产生的空间点(x,y,z)绘制相应曲面:mesh(X,Y,Z)surf(X,Y,Z)shading flat 去除网格线。数学2用MATLAB绘制二维三维图形例2-7画出矩形域-1,1-1,1旋转抛物面:z=x2+y2.x=linspace(-1,1,100);y=x;X,Y=meshgr

14、id(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; %对曲面z=x2+y2平滑并除去网格数学2用MATLAB绘制二维三维图形未进行Shading flat数学2用MATLAB绘制二维三维图形Shading Flat之后数学2用MATLAB绘制二维三维图形2.8 在圆形域x2+y21上绘制旋转抛物面:z= x2+y2.x=linspace(-1,1,300);y=x;X,Y=meshgrid(x,y); %生成矩形域-1,1 -1,1 网格

15、节点坐标矩阵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); %光滑曲面 shading flat;数学2用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形注: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

16、的元素所在位置 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 3j = 1 1 2 3 3v = 3 -5 2 7 1 数学2用MATLAB绘制二维三维图形2.2.3 特殊图形和简易绘图命令1. 几个特殊的空间曲面:peaks(山峰),sphere,cylinder,它们的使用方法及结果如下:1).x,y,z=peaks; surf(x,y,z)数学2用MATLAB绘制二维三维图形2).x,y,z=sph

17、ere;surf(x,y,z)数学2用MATLAB绘制二维三维图形3).x,y,z=cylinder;surf(x,y,z)数学2用MATLAB绘制二维三维图形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)%在正方形区域上画椭圆的图形。数学2用MATLAB绘制二维三维图形应用举例例如 2-9 画出 在上的图形。x=-7.5:0.5:7.5;y=

18、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用MATLAB绘制二维三维图形数学2用MATLAB绘制二维三维图形小节. plot函数主要功能是用于绘制显式y=f(x)与参数式x=x(t),y=y(t)平面曲线。. ezplot函数主要

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

温馨提示

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

最新文档

评论

0/150

提交评论