用matlab画隐函数曲面 2009.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用matlab画隐函数曲面 2009

用matlab画隐函数曲面 2009-02-28 15:00 matlab是一款功能强大的通用工程数学软件。利用matlab的作图功能可以轻而易举地绘制出各种复杂函数图形。利用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 function h=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),[-5 5])%注意*\^一定要设成点运算 %例二: %f=@(x,y,z)x.^2+y.^2+0*z-1;%注意如果f中不含某个变量一定要加上诸如0*y的项。 %implicitmesh(f,[-1 1],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.5 1.5],[-.8 .8],[-1.5 1.5],50); %hold on%可以添加图形 %h=implicitmesh(g,[-2.3,2.3]); %colormap hsv;set(h,facecolor,none);%可以设置各种效果 %axis off;axis equal; if nargin==2 ??? ylimit=xlimit;zlimit=xlimit;gd=25; elseif nargin==3 ??? gd=ylimit;ylimit=xlimit;zlimit=xlimit; elseif nargin==4 ??? gd=25; elseif nargin==5 else ??? error(Error in input arguments) 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); if isempty(f) ??? warning(There is no graph in the range.); ??? p=[]; else ??? newplot; ??? p=patch(Faces,f,Vertices,v,CData,v(:,3),facecolor,w,EdgeColor,flat); ??? isonormals(x,y,z,val,p);view(3);grid on end if nargout==0 else ??? h=p; end 下面是效果图,用的是帮助文件里的3个例子 2.隐函数曲面表面图函数implicitsurf function h=implicitsurf(f,xlimit,ylimit,zlimit,gd) %implicitsurf(f,span,gd):画隐函数曲面f(x,y,z)=0的网格图, %????????????????????????? 各坐标范围均限定在span=[lb,ub], %????????????????????????? 网格数为gd,默认为25 %implicitsu

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档