MATLAB总结隐函数符号函数作图.docx
- 文档编号:12886328
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:11
- 大小:258.29KB
MATLAB总结隐函数符号函数作图.docx
《MATLAB总结隐函数符号函数作图.docx》由会员分享,可在线阅读,更多相关《MATLAB总结隐函数符号函数作图.docx(11页珍藏版)》请在冰豆网上搜索。
MATLAB总结隐函数符号函数作图
MATLAB总结---隐函数、符号函数作图
I.隐函数f(x,y)=0,f(x(t),y(t),z(t))=0;z=f(x,y)
ezplot,ezplot3,ezcontour,conctourf,ezpolar,ezmesh,ezmeshc,ezsurf,ezsurfc
1.ezplot:
画符号函数图形
ezplot(f):
对于显式函数f=f(x),在默认的范围[-pi ezplot(f,[min,max]): 在指定的范围[min 若没有图形窗口存在,则该函数先生成标题为FigureNo.1的新窗口,再在该窗口中操作;若已经有图形窗口存在,这在标号最该的图形窗口中进行操作。 ezplot(f,[xminxmax],fing): 在指定标号为fign的窗口中、指定范围[xminxmax]内画函数f=f(x)的图形。 ezplot(f,[xmin,xmax,ymin,ymax]): 在平面矩形区域[xmin ezplot(x,y): 在默认范围0 ezplot(x,y,[tmin,tmax)]: 在指定范围[tmin ezplot(…,figure): 在由参量文件figure句柄指定的图形窗口中画函数图形。 例如: 画下面的隐函数 >>symsxy >>ezplot(2*x^4-y^9) 2.ezplot3: 三维曲线图 ezplot3(x,y,z): 在默认的范围0 ezplot3(x,y,z,[tmin,tmax]): 在默认的范围tmin ezplot3(…,’animate’): 以动画形式画出空间三维曲线。 例如: >>symst >>ezplot3(t*sin(t),t*cos(t),t,[0,20*pi]) 此外,三维曲线的视角可以通过程序命令来控制,也可以手动设置。 3.ezcontour: 画符号函数的等高线图 ezcounter(f): 画出二元符号函数f=f(x,y)的等高线图。 函数f将被显示在默认的平面区域[-2pi 系统将根据函数变动的激烈程度自动选择相应的计算栅格。 若函数f在某些栅格点上没有定义,则这些点不显示。 ezcontour(f,domain): 在指定的定义域domain内画出二元函数f(x,y),参量domain可以是四维向量[xmin,xmax,ymin,ymax]或二维向量[min,max](其中显示区域为min ezcontour(…,n): 用指定n*n个栅格点(对定义域的一种划分),在默认(若没有指定)的区域内画出函数f的图形。 n的默认值为60. 例如: >>symsxy >>f=(1-x)^2*exp(-(x^2)-(y+1)^2)-5*(x/5-x^3-y^5)*sin(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2); >>ezcontour(f,[-3,3],49) 4.contourf: 用不同颜色填充的等高线图 ezcontourf(f): 画二元函数f=f(x)的等高线图,且在不同的等高线之间自动用不同的颜色进行填充。 函数f兼备现实与默认的平面区域[-2pi 系统将根据函数变动激烈程度自动选择相应的计算栅格。 若函数f在某些栅格点上没有意义,这些点将不显示。 ezcontourf(f,domain): 在指定的定义域domain内画出二元函数f(x,y)的等高线图,且在不同的等高线之间自动用不同的颜色进行填充。 定义域domain可以是四维向量[xmin,xmax,ymin,ymax]或者二维向量[min,max])(其中显示区域为: min ezcontourf(……,n)用指定的n*n个栅格点,在默认(若没有指定)的区域内画出函数f的等高线,且在不同的等高线之间自动用不同的颜色进行填充。 n的默认值是60. 例如: >>symsxy >>f=(1-x)^2*exp(-(x^2)-(y+1)^2)-5*(x/5-x^3-y^5)*sin(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2); >>ezcontourf(f,[-3,3],60) 例如: >>symsxy >>ezmesh(x*sin(-x^2-y^2),40,'circ') >>colormap([001])%获取当前图色 7.ezmeshc: 同时画曲面网格图和等高线图 ezmeshc(f): 画出二元数学符号函数z=f(x,y)的网格图形,同时在xy平面上显示等高线图。 函数f将被显示于默认的平面区域[-2pi 系统将根据函数变动的激烈程度自动选择相应的计算栅格。 若函数f在某些栅格点没有意义,则这些点将不显示。 ezmeshc(f,domian): 在指定的定义域domain内画出二元数学符号函数z=f(x,y)的网格图及其等高线图,domain可以是四维向量[xmin,xmax,ymin,ymax]或者二维向量[min,max])(其中显示区域为: min ezmeshc(x,y,z): 在默认的矩形定义域范围[-2pi ezmeshc(x,y,z,[smin,smax,tmin,tmax]): 在指定的矩形定义域范围[smin ezmeshc(f,……,n): 用指定n*n个栅格点,在默认(若没有指定)的区域内画出函数f的网格图形及其等高线图。 n的默认值是60. ezmeshc(…,’circ’): 在一圆形区域(圆心位于定义域中心)的范围内画出函数f的网格图形以及其等高线图。 例如: >>symsxy >>ezmeshc(x*y/(1+x^2+y^2),[-5,5,-2*pi,2*pi],35) (颜色使用了colormap函数控制,上面对应的代码是colormap(cool(64)。 ) 8.ezsurf: 三维带颜色的曲面图 ezsurf(f): 画出二元数学符号函数z=f(x,y)的曲面图形。 函数f将显示于默认的平面区域[-2pi 系统将根据函数变动的激烈程度自动选择相应的计算栅格。 若函数f在某些栅格点没有意义,则这些点将不显示。 ezsurf(f,domian): 在指定的定义域domain内画出二元数学符号函数z=f(x,y)的曲面图形,domain可以是四维向量[xmin,xmax,ymin,ymax]或者二维向量[min,max])(其中显示区域为: min ezsurf(x,y,z): 在默认的矩形定义域范围[-2pi ezsurf(x,y,z,[smin,smax,tmin,tmax]): 在指定的矩形定义域范围[smin ezsurf(f,…,n): 用指定n*n个栅格点,在默认(若没有指定)的区域内画出函数f的图形。 n的默认值是60. ezsurf(…,’circ’): 在一圆形区域(圆心位于定义域中心)的范围内画出函数f的图形。 例如: >>symsxy >>ezsurf(real(atan(x+i*y))) 9.ezsurfc: 同时画曲面图与等高线图 >>symsxy >>ezsurfc(x*y/(1+x^2+y^2),[-5,5,-2*pi,2*pi],35,'circ') II.Matlab画三维隐函数曲面 implicitmesh,implicitmesh 利用ezplot甚至可以直接绘制隐函数曲线F(x,y)=0而无需将其写成y=f(x)的形式。 然而十分可惜的是与之对应的ezsurf和ezmesh却对隐函数曲面F(x,y,z)=0的绘制无能为力。 那么matlab究竟有没有用来绘制诸如F(x,y,z)=0的命令呢? 答案毫无疑问是肯定的。 事实上利用matlab的等值面函数isosurface就可以轻松搞定。 关于isosurface的具体用法大家可以自己参看help。 下面两个函数就是我利用isosurface编写的通用隐函数曲面绘制命令。 1.隐函数曲面网格图函数implicitmesh functionh=implicitmesh(f,xlimit,ylimit,zlimit,gd) %implicitmesh(f,span,gd): 画隐函数曲面f(x,y,z)=0的网格图, % 各坐标范围均限定在span=[lb,ub], % 网格数为gd,默认为25 %implicitmesh(f,xspan,yspan,zspan,gd): 画隐函数曲面f(x,y,z)=0, % 各坐标范围分别限定在xspan,yspan,zspan %h=implicitmesh(...): 画隐函数曲面并输出句柄 %例一: %implicitmesh(inline('x.*y+z.^2'),[-55])%注意*\^一定要设成点运算 %例二: %f=@(x,y,z)x.^2+y.^2+0*z-1;%注意如果f中不含某个变量一定要加上诸如0*y的项。 %implicitmesh(f,[-11],10) %例三: %f=@(x,y,z)(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(9/80)*y.^2.*z.^3; %g=@(x,y,z)(sqrt(x.^2+y.^2)-2).^2+z.^2-.09; %implicitmesh(f,[-1.51.5],[-.8.8],[-1.51.5],50); %holdon%可以添加图形 %h=implicitmesh(g,[-2.3,2.3]); %colormaphsv;set(h,'facecolor','none');%可以设置各种效果 %axisoff;axisequal; ifnargin==2 ylimit=xlimit;zlimit=xlimit;gd=25; elseifnargin==3 gd=ylimit;ylimit=xlimit;zlimit=xlimit; elseifnargin==4 gd=25; elseifnargin==5 else error('Errorininputarguments') end x=linspace(xlimit (1),xlimit (2),gd); y=linspace(ylimit (1),ylimit (2),gd); z=linspace(zlimit (1),zlimit (2),gd); [x,y,z]=meshgrid(x,y,z);val=f(x,y,z); [f,v]=isosurface(x,y,z,val,0); ifisempty(f) warning('Thereisnographintherange.'); p=[]; else newplot; p=patch('Faces',f,'Vertices',v,'CData',v(: 3),'facecolor','w','EdgeColor','flat'); isonormals(x,y,z,val,p);view(3);gridon end ifnargout==0 else h=p; end 效果图: 2.隐函数曲面表面图函数implicitsurf functionh=implicitsurf(f,xlimit,ylimit,zlimit,gd) %implicitsurf(f,span,gd): 画隐函数曲面f(x,y,z)=0的网格图, % 各坐标范围均限定在span=[lb,ub], % 网格数为gd,默认为25 %implicitsurf(f,xspan,yspan,zspan,gd): 画隐函数曲面f(x,y,z)=0, % 各坐标范围分别限定在xspan,yspan,zspan %h=implicitsurf(...): 画隐函数曲面并输出句柄 %例一: %implicitsurf(inline('x.*y+z.^2'),[-55])%注意*\^一定要设成点运算 %例二: %f=@(x,y,z)x.^2+y.^2+0*z-1;%注意如果f中不含某个变量一定要加上诸如0*y的项。 %implicitsurf(f,[-11],10) %例三: %f=@(x,y,z)(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(9/80)*y.^2.*z.^3; %g=@(x,y,z)(sqrt(x.^2+y.^2)-2).^2+z.^2-.09; %h=implicitsurf(f,[-1.51.5],[-.8.8],[-1.51.5],50); %set(h,'AmbientStrength',.5);%可以设置各种效果 %holdon%可以添加图形 %h=implicitsurf(g,[-2.3,2.3],[-2.3,2.3],[-.3,.3]); %colormaphsv;set(h,'AmbientStrength',.8,'FaceAlpha',.5);%可以设置各种效果 %axisoff;axisequal;shadinginterp;camlight;lightinggouraud; ifnargin==2 ylimit=xlimit;zlimit=xlimit;gd=25; elseifnargin==3 gd=ylimit;ylimit=xlimit;zlimit=xlimit; elseifnargin==4 gd=25; elseifnargin==5 else error('Errorininputarguments') end x=linspace(xlimit (1),xlimit (2),gd); y=linspace(ylimit (1),ylimit (2),gd); z=linspace(zlimit (1),zlimit (2),gd); [x,y,z]=meshgrid(x,y,z);val=f(x,y,z); [f,v]=isosurface(x,y,z,val,0); ifisempty(f) warning('Thereisnographintherange.'); p=[]; else newplot; p=patch('Faces',f,'Vertices',v,'CData',v(: 3),'facecolor','flat','EdgeColor','k'); isonormals(x,y,z,val,p);view(3);gridon end ifnargout==0 else h=p; end 效果图: III.关于ezplot作图之后数据提取的问题 clear;clc figure h=ezplot('x*y',[-2,2]); x1=get(h (1),'XData'); y1=get(h (1),'YData'); x2=get(h (2),'XData'); y2=get(h (2),'YData'); figure plot(x1,y1); hold on plot(x2,y2);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 总结 函数 符号 作图
![提示](https://static.bdocx.com/images/bang_tan.gif)