Matlab中用surf作图双叶双曲面,怎么做

如题所述

第1个回答  2013-03-20

[x,y]=meshgrid(-10:0.2:10);
a=1;b=2;c=3;% 假设a=1;b=2;c=3
z1=sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)+1));
z2=-sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)+1));
mesh(x,y,z1)
hold on

mesh(x,y,z2)

 

追问

麻烦看一下我的那里不对
u=[-pi/2:pi/60:3*pi/2];v=[0:pi/60:2*pi];
[U,V]=meshgrid(u,v);
a=3;b=4;c=5;
X=a*tan(V).*cos(U);
Y=b*tan(V).*sin(U);
Z=c*sec(V)+eps;
surf(X,Y,Z);
axis equal;

追答

可以出图呀,怎么错了?

本回答被提问者采纳
第2个回答  2018-12-19
u=[-pi/2:pi/60:pi/2];
u(:,[1,61])=[];
v=[0:pi/60:2*pi];
[U,V]=meshgrid(u,v);
X=3*tan(U).*cos(V);
Y=4*tan(U).*sin(V);
Z=5*sec(U);
surf(X,Y,Z);
hold on;surf(X,Y,-Z);
axis equal;
相似回答