MATLAB总结隐函数符号函数作图.docx

上传人:b****2 文档编号:2158982 上传时间:2023-05-02 格式:DOCX 页数:11 大小:258.29KB
下载 相关 举报
MATLAB总结隐函数符号函数作图.docx_第1页
第1页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第2页
第2页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第3页
第3页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第4页
第4页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第5页
第5页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第6页
第6页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第7页
第7页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第8页
第8页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第9页
第9页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第10页
第10页 / 共11页
MATLAB总结隐函数符号函数作图.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB总结隐函数符号函数作图.docx

《MATLAB总结隐函数符号函数作图.docx》由会员分享,可在线阅读,更多相关《MATLAB总结隐函数符号函数作图.docx(11页珍藏版)》请在冰点文库上搜索。

MATLAB总结隐函数符号函数作图.docx

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);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2