用m a t l a b画隐函数曲面2009-02-28 15:00
m a t la b是一款功能强大的通用工程数学软件。利用m a t la b的作图功能可以轻而易举地绘制出各种复杂函数图形。利用e zp l o t甚至可以直接绘制隐函数曲线F(x, y)=0而无需将其写成y=f(x)的形式。然而十分可惜的是与之对应的e zs u r f和e z m es h却对隐函数曲面F(x,y,z)=0的绘制无能为力。那么m a t l a b究竟有没有用来绘制诸如F(x,y,z)=0的命令呢?答案毫无疑问是肯定的。事实上利用m a t l a b 的等值面函数i s os u r f a c e就可以轻松搞定。关于is os u r f a c e的具体用法大家可以自己参看h e l p。下面两个函数就是我利用is os u r f a c e编写的通用隐函数曲面绘制命令。
1.隐函数曲面网格图函数im plicitme sh
f u n c t i o n h=im p li c i tm es h(f,xl i m i t,yl i m i t,zl i m i t,
g d)
%im p li c i tm es h(f,s p an,g d):画隐函数曲面f(x,y,z)=0的网格图,
%各坐标范围均限定在s p a n=[l b,u b],
%网格数为g d,默认为25
%im p li c i tm es h(f,xs p an,ys p a n,zs p an,g d):画隐函数曲面f(x,y,z)=0,
%各坐标范围分别限定在xs p a n,ys p a n,zs pa n
%h=im pl i c i tm es h(...):画隐函数曲面并输出句柄
%例一:
%im p li c i tm es h(i n li n e('x.*y+z.^2'),[-55])%注意*\^一定要设成点运算
%例二:
%f=@(x,y,z)x.^2+y.^2+0*z-1;%注意如果f中不含某个变量一定要加上诸如0*y 的项。
%im p li c i tm es h(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)(s q r t(x.^2+y.^2)-2).^2+z.^2-.09;
%im p li c i tm es h(f,[-1.5 1.5],[-.8.8],[-1.5 1.5],50);
%h o ld o n%可以添加图形
%h=im pl i c i tm es h(g,[-2.3,2.3]);
%c o l o rm a p hs v;s e t(h,'f a c e c ol o r','n o n e');%可以设置各种效果
%a xi s o f f;a xi s eq u al;
i f n a r g in==2
yl i m i t=xl i m i t;zl i m i t=xl i m i t;g d=25;
e ls e i
f na r
g in==3
g d=yl i m i t;yl i m i t=xl i m i t;zl i m i t=xl i m i t;
e ls e i
f na r
g in==4
g d=25;
e ls e i
f na r
g in==5
e ls e
e r r o r('E r r o r i n i n pu t a r g um e n ts')