显函数定义的曲面
MATLAB用fmesh函数和fsurf函数绘空间曲面的图形。 fmesh函数的语法格式为:
fmesh(f) 在 x 和 y 的默认区间 [-5 5] 为表达式 z=f(x,y) 创建网格图。
fmesh(f,xyinterval) 将在指定区间绘图。要对 x 和 y 使用相同的区间,请将 xyinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [xmin xmax ymin ymax] 形式的四元素向量。
fmesh(funx,funy,funz) 在默认区间 [-5 5](对于 u 和 v)绘制由 x=funx(u,v)、y=funy(u,v)、z=funz(u,v) 定义的参数化网格。
fmesh(funx,funy,funz,uvinterval) 在指定区间绘制参数化网格。要对 u 和 v 使用相同的区间,请将 uvinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [umin umax vmin vmax] 形式的四元素向量。
fmesh(___,LineSpec) 设置网格的线型、标记符号和颜色。例如,'-r' 指定红色线条。在前面的任何输入参数组合之后使用此选项。
fmesh(___,Name,Value) 使用一个或多个名称-值对组参数指定网格的属性。可以将此选项与前面语法中的任何输入参数组合一起使用。
fmesh(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 gca 中。
fs=fmesh(___) 返回 FunctionSurface 对象或 ParameterizedFunctionSurface 对象,具体情况取决于输入。
fsurf函数的语法格式为:
fsurf(f) 在默认区间 [-5 5](对于 x 和 y)为函数 z=f(x,y) 创建曲面图。
fsurf(f,xyinterval) 将在指定区间绘图。要对 x 和 y 使用相同的区间,请将 xyinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [xmin xmax ymin ymax] 形式的四元素向量。
fsurf(funx,funy,funz) 在默认区间 [-5 5](对于 u 和 v)绘制由 x=funx(u,v)、y=funy(u,v)、z=funz(u,v) 定义的参数化曲面。
fsurf(funx,funy,funz,uvinterval) 将在指定区间绘图。要对 u 和 v 使用相同的区间,请将 uvinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [umin umax vmin vmax] 形式的四元素向量。
fsurf(___,LineSpec) 设置线型、标记符号和曲面颜色。例如,'-r' 指定红色线条。在前面的任何输入参数组合之后使用此选项。
fsurf(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。在前面语法中的任何输入参数组合后使用此选项。
fsurf(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。
fs=fsurf(___) 返回 FunctionSurface 对象或 ParameterizedFunctionSurface 对象,具体情况取决于输入。
三维显函数是可以写成z=f(x,y)形式显式表达的函数。下面结合实例介绍如何绘制三维显函数的曲面图。
绘函数\(z=\operatorname{sin}{(}x)+\operatorname{cos}{(}y)\)的图形。
在命令窗口键入
fmesh(@(x,y) sin(x)+cos(y))
生成图3-11。
图3-11 三维函数网格图
下面绘曲面图。
fsurf(@(x,y) sin(x)+cos(y))
生成图3-12。
图3-12 三维函数曲面图
直角坐标系参数函数定义的曲面
三维参数函数中,坐标x,y,z都可以写成参数u和v的函数,即x=f(u,v),y=g(u,v),z=h(u,v)。下面结合实例介绍直角坐标系下三维参数函数的曲面绘制。
绘参数函数
的曲面图。
在命令窗口键入
x=@(u,v) cos(u).*sin(v);
y=@(u,v) sin(u).*sin(v);
z=@(u,v) cos(v)+log(tan(v./2))+0.2.*u;
fsurf(x,y,z,[0 12.4 0.1 2])
生成图3-13。
图3-13 参数曲面图
柱面坐标系参数函数定义的曲面
下面结合实例介绍柱面坐标系下三维参数函数的曲面绘制。
绘柱面坐标系函数\(x=r\operatorname{sin}{(}a),y=r\operatorname{cos}{(}a),z=\operatorname{sin}{(}7a)/(1+r{)}^{2}\)的图形。
在命令窗口键入
funx=@(r,a) r.*sin(a);
funy=@(r,a) r.*cos(a);
funz=@(r,a) sin(7.*a)./(1+r).^2;
fsurf(funx,funy,funz,[0 10 0 2*pi])
axis equal
生成图3-14。
图3-14 柱面坐标系函数的图形
球面坐标系参数函数定义的曲面
下面结合实例介绍球面坐标系下三维参数函数的曲面绘制。绘球面坐标系函数
\(x=(2+\operatorname{sin}{(}7u+5v))\operatorname{cos}{(}u)\operatorname{sin}{(}v)\),
\(y=(2+\operatorname{sin}{(}7u+5v))\operatorname{sin}{(}u)\operatorname{sin}{(}v)\),
的图形。
在命令窗口键入
r=@(u,v) 2 + sin(7.*u + 5.*v);
funx=@(u,v) r(u,v).*cos(u).*sin(v);
funy=@(u,v) r(u,v).*sin(u).*sin(v);
funz=@(u,v) r(u,v).*cos(v);
fsurf(funx,funy,funz,[0 2*pi 0 pi])
camlight
生成图3-15。
图3-15 球面坐标系函数曲面图
隐函数定义的曲面
隐函数不能用显函数或参数函数显式表达。下面结合实例介绍隐函数定义的曲面绘制。
绘隐函数\((\frac{{x}^{2}}{4}+\frac{{y}^{2}}{9}+\frac{{z}^{2}}{3}{)}^{2}-2x-y=0\)定义的图形。
在命令窗口键入
[x,y,z]=meshgrid(-4:0.05:4);
v =((x.^2/4)+(y.^2/9)+(z.^2/3)).^2-2.*x-y;
p=patch(isosurface(x,y,z,v,0));
isonormals(x,y,z,v,p)
p.FaceColor='red';
p.EdgeColor='none';
view(3);
axis tight
camlight
lighting gouraud
生成图3-16。
图3-16 隐函数的图形