《数学 用MATLAB绘制二维 三维图形lq.pptx》由会员分享,可在线阅读,更多相关《数学 用MATLAB绘制二维 三维图形lq.pptx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.1二维图形的绘制2.1.1 二维绘图的基本命令二维绘图的基本命令matlab中,最常用的二维绘图命令是中,最常用的二维绘图命令是plot。使用该命令,软件将开辟一个图形窗口,并画出连接坐标面上。使用该命令,软件将开辟一个图形窗口,并画出连接坐标面上一系列点的连线。一系列点的连线。格式:格式:plot(x,y,颜色颜色+线型线型+点型点型,.)第1页/共52页1)当(当(x,y)是一坐标点时,则在相应位置画出一)是一坐标点时,则在相应位置画出一个点,用法:个点,用法:plot(x,y,r*)%在(在(x,y)处画一个红色的)处画一个红色的*点。点。2)当()当(x,y)为一点列时)为一点列时
2、(x1,y1),(x2,y2),.,(xn,yn)时,则画出顺次连接这些时,则画出顺次连接这些点的曲线。用法:点的曲线。用法:plot(x,y)%画出连接点列的画出连接点列的蓝色实心线(默认)蓝色实心线(默认)plot(x,y,r)%画出连接点列的红色虚线。画出连接点列的红色虚线。第2页/共52页其中,点线的颜色代码与线型代码其中,点线的颜色代码与线型代码表表2-1 颜色代码表颜色代码表表表2-2 点型和线型代码点型和线型代码 第3页/共52页3)使用)使用subplot(m,n,k)实现一个区域中显示)实现一个区域中显示mn个子图形窗口,并指定在第个子图形窗口,并指定在第k个子窗口绘图;此时
3、可以个子窗口绘图;此时可以对该窗口进行个性描述,如对坐标重置、对线条加粗、加说明等。对该窗口进行个性描述,如对坐标重置、对线条加粗、加说明等。4)使用)使用hold on 命令实现同一窗口中多次绘制图形,用命令实现同一窗口中多次绘制图形,用hold off 取消。取消。第4页/共52页例例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-)第5页/共52页第6页/共5
4、2页 hold on%在第二个子图上二次绘图。在第二个子图上二次绘图。plot(x,y,bo,x,z,k+)hold off 第7页/共52页第8页/共52页2.1.2 图形的标识与修饰使用使用grid命令对图形窗口加坐标网格命令对图形窗口加坐标网格使用使用linewidth和和markersize命令实现图形中线宽和点型大小的设置。命令实现图形中线宽和点型大小的设置。格式:格式:plot(x,y,b*-,x,y,linewidth,5,markersize,10)其中,数值其中,数值5和和10分别为线型和点型的大小,默认值为分别为线型和点型的大小,默认值为1.第9页/共52页使用使用axis
5、命令实现坐标轴的重新设置命令实现坐标轴的重新设置格式:格式:axis(xmin xmax ymin ymax)使用使用title xlabel ylabel zlabel text实现对文字的说明。实现对文字的说明。以上命令在绘图是经常用到的,参看以下实验。以上命令在绘图是经常用到的,参看以下实验。第10页/共52页例例2-2 画出画出0,2pi上正弦、余弦曲线对上正弦、余弦曲线对线型加粗线型加粗、点型加大点型加大,重新设定坐标系重新设定坐标系以及以及加注加注相关说明和注释。相关说明和注释。x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,b-,x,z,k.
6、-,linewidth,3,markersize,15)第11页/共52页第12页/共52页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)在(在(2.5,0.7)的位置标记曲线名称)的位置标记曲线名称text(1.5,0.1,cos(x)%在(在(1.5,0.1)的位置标记曲线名称)的位
7、置标记曲线名称第13页/共52页第14页/共52页现在要在坐标系中画出连接现在要在坐标系中画出连接0,0到到2pi,0的直线且用红色,作为的直线且用红色,作为x轴。则输入如下命轴。则输入如下命令:令:hold on%图形保持,在同一图形窗口中叠加图形图形保持,在同一图形窗口中叠加图形plot(0,2*pi,0,0,r-.,linewidth,5)%叠加一条红色点化线,作为叠加一条红色点化线,作为x轴轴hold off%图形保持取消,再画图时将另辟窗口图形保持取消,再画图时将另辟窗口第15页/共52页第16页/共52页fill命令和 polar命令使用使用fill(x,y)命令实现对闭合图形的填
8、充;命令实现对闭合图形的填充;使用使用polar(theta,rho)命令进行极坐标绘图命令进行极坐标绘图例例2-3 在图形窗口画出填充一个正方形在图形窗口画出填充一个正方形h1=figure;%打开第一个图形窗口,返回其图标识号打开第一个图形窗口,返回其图标识号(句柄句柄)h1x=0 1 1 0 0;%闭合图形的顶点横坐标闭合图形的顶点横坐标y=0 0 1 1 0;%闭合图形的顶点纵坐标闭合图形的顶点纵坐标fill(x,y,y)%填充闭合图形填充闭合图形(用黄色用黄色)axis(-1 2-1 2)%重新设置坐标重新设置坐标 第17页/共52页第18页/共52页例:在图形窗口极坐标方程例:在图
9、形窗口极坐标方程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 plot)%添加标题添加标题如果想对第二个图形加粗的话,可以用如下命令如果想对第二个图形加粗的话,可以用如下命令set(h2,linewidt
10、h,3)第19页/共52页第20页/共52页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 cur
11、ve)h2=subplot(1,2,2);%分图形窗口并在第二个子窗口中绘图,返回其句柄分图形窗口并在第二个子窗口中绘图,返回其句柄h2stairs(x,y)%画阶梯图画阶梯图title(stair plot of a bell curve)第21页/共52页第22页/共52页例例2-5 采用不同形式(直角坐标、参数、极坐标),采用不同形式(直角坐标、参数、极坐标),画出单位圆画出单位圆x2y21的图形。的图形。分析:对于直角坐标系方程,分析:对于直角坐标系方程,y ,对于参数,对于参数方程方程xcost,y=sint,t ,利用利用plot(x,y)命令可命令可以实现。而在极坐标系中单位圆为
12、以实现。而在极坐标系中单位圆为r1(1+0t),利用利用polar(t,r)命令实现。命令实现。第23页/共52页)直角坐标系)直角坐标系x=-1:0.01:1;y1=sqrt(1-x.2);y2=-y1;plot(x,y1,x,y2)axis equal%让坐标系中两坐标轴相同让坐标系中两坐标轴相同第24页/共52页)直角坐标系)直角坐标系x=-1:0.01:1;y1=sqrt(1-x.2);y2=-y1;plot(x,y1,r,x,y2,r)axis equal%让坐标系中两坐标轴相同让坐标系中两坐标轴相同第25页/共52页2)参数方程参数方程t=linspace(0,2*pi)x=cos
13、(t);y=sin(t);plot(x,y);axis equal第26页/共52页3)极坐标系极坐标系t=linspace(0,2*pi);r=1+0*t;或或 r=ones(1,100)%不可写成,因为必须是向不可写成,因为必须是向量才行。量才行。polar(t,r)第27页/共52页2.2.1 三维曲线的绘制(三维曲线的绘制(plot3命令)命令)plot3是二维绘图命令是二维绘图命令plot的推广,其使用方法和功能基本相同。的推广,其使用方法和功能基本相同。格式:格式:plot3(x,y,z,颜色线型点型颜色线型点型,.)当(当(x,y,z)是一个坐标时,则在空间相应位置画出一个点。用
14、法:)是一个坐标时,则在空间相应位置画出一个点。用法:plot3(x,y,z,r*)当(当(x,y,z)是点列时,则画出依次连接这些点的曲线。用法:)是点列时,则画出依次连接这些点的曲线。用法:plot3(x,y,z,r)红色实线红色实线其中,曲线的颜色和线型取值同前表。其中,曲线的颜色和线型取值同前表。第28页/共52页例例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第29页/共52页2.2.
15、2 三维曲面的绘制三维曲面的绘制(mesh、surf命令命令)对于二元函数对于二元函数zf(x,y),设其定义域为设其定义域为a,bc,d,则其几何图形为空间则其几何图形为空间坐标系中一片曲面,该曲面的投影域即为函数的定义域,使用坐标系中一片曲面,该曲面的投影域即为函数的定义域,使用mesh、surf等命令可以绘制出相应等命令可以绘制出相应曲面曲面。格式:格式:mesh(x,y,z)绘制网格曲面绘制网格曲面surf(x,y,z)绘制光滑曲面绘制光滑曲面其中,其中,x、y分别为投影域上网格划分节点处对应的横坐标矩阵和纵坐分别为投影域上网格划分节点处对应的横坐标矩阵和纵坐标矩阵,可由标矩阵,可由m
16、eshgrid命令生成;命令生成;z为与投影域上网格划分节点(为与投影域上网格划分节点(x,y)对应的函数值(坐标)对应的函数值(坐标z)矩阵。具体)矩阵。具体步骤:步骤:第30页/共52页1)对投影域进行划分:对投影域进行划分:xa:p1:byc:p2:d2)按上述划分生成投影域上全部网格节点的坐标矩阵。)按上述划分生成投影域上全部网格节点的坐标矩阵。X,Y=meshgrid(x,y)3)根据函数表达式生成全部网格节点出对应的函数值矩阵根据函数表达式生成全部网格节点出对应的函数值矩阵z:zf(X,Y)4)顺序连接已经产生的空间点()顺序连接已经产生的空间点(x,y,z)绘制相应曲面:绘制相应
17、曲面:mesh(X,Y,Z)surf(X,Y,Z)shading flat 去除网格线。去除网格线。第31页/共52页例例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;%对曲面对曲面z=x2+y2平滑并除去网格平滑并除去网格第32页/共52页未进行未进行Shadi
18、ng flat第33页/共52页Shading Flat之后第34页/共52页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);%网
19、格曲面网格曲面subplot(1,2,2)surf(X,Y,Z);%光滑曲面光滑曲面 shading flat;第35页/共52页第36页/共52页注:注: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(按所在位置先按所在位置先后顺序输出后顺序输
20、出)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 第37页/共52页2.2.3 特殊图形和简易绘图命令特殊图形和简易绘图命令1.几个特殊的空间曲面:几个特殊的空间曲面:peaks(山峰山峰),sphere,cylinder,它们的使用方法及结果如下:,它们的使用方法及结果如下:1).x,y,z=peaks;surf(x,y,z)第38页/共52页2).x,y,z=sphere;surf(x,y,z)第39页/共52页3).x,y,z=cylinder;surf(x,y,z)第40页/共52页2、对于给定
21、的符号函数、对于给定的符号函数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)%在正方形区域上画椭圆的图形。在正方形区域上画椭圆的图形。第41页/共52页应用举例例如例如 2-9 画出画出 在在上的图形。上的图形。x=-7.5:0.5:7.5;y=x;X,Y=meshgrid(x,y
22、);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和相邻的下一个系统能表示出的浮点数之间的差。第42页/共52页第43页/共52页小节.plot函数主要功能是用于绘制显式函数主要功能是用于绘制显式y=f(x)与参数式与参数式x=x(t),y=y(t)平面曲线。平面曲线。.ezplot函数主要功
23、能是用于绘制隐式函数的函数主要功能是用于绘制隐式函数的f(x,y)=0曲线,它的调用格式如下:曲线,它的调用格式如下:ezplot(F,xmin,xmax)3.polar函数主要功能是用于绘制极坐标式函数主要功能是用于绘制极坐标式=()曲线,他的调用格式为曲线,他的调用格式为polar(theta,rho,可选项可选项s)第44页/共52页4.plot3函数的主要功能是绘制空间参数曲线,它的调用格式是:函数的主要功能是绘制空间参数曲线,它的调用格式是:plot3(x,y,z,可选项可选项).surf 函数和函数和mesh函数用来绘制网状曲面和网状补片。函数用来绘制网状曲面和网状补片。第45页/
24、共52页上机练习、在圆域、在圆域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,Y,z)shading flat;第46页/共52页1.绘制绘制x4+y4=a4所表示的曲线所表示的曲线,a=22.绘制绘制y=e-axsinbx在区间在区间-6,6上的图形上的图形,其中其中a=0.1,b=2x=-2:0.01:2;y1=(16-x.4).0.25y2=-(16-x.4).0.25;plot(x,y1)hold
25、 onplot(x,y2)axis equal或或 axis(-2.5 2.5-2.5 2.5)第47页/共52页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第48页/共52页x,y,z=sphere(40);%代表球面等分数,缺省值为20 colormap(jet)subplot(1,2,1);surf(x,y,z),shading interplight(position,2,-2,2,style,local)lighting phongsubplot(1,2,2)surf(x,y,z,-z),shading flatlight,lighting flatlight(position,-1,-1,-2,color,y)light(position,-1,0.5,1,style,local,color,w)第49页/共52页第50页/共52页Thanks第51页/共52页谢谢您的观看!第52页/共52页