MATLAB-二次曲面

Ax^{2}+By^{2}+Cz^{2}+2Dxy+2Exz+2Fyz+2Gx+2Hy+2Iz+J=0

柱面:圆柱面;椭圆柱面;双曲柱面;抛物柱面

锥面:圆锥面;椭圆锥面

锥球面;球面

椭圆抛物面;

单叶双曲面;双叶双曲面

双曲抛物面;

旋转抛物面z=a(x^{2}+y^{2}),由z=ay^{2}绕着z轴旋转得到。

mesh()为三维网格图绘制函数,格式为: mesh(x,y,z)。另外还有meshc:用来绘制等值线网格图,meshz:用来绘制包含0平面的网格图。

或者直接 ezsurfc('(X.^2+Y.^2)./4');

[X,Y]=meshgrid(-10:0.1:10);
Z=(X.^2+Y.^2)./4;
meshc(X,Y,Z);

%%

ezsurfc('(X.^2+Y.^2)./4');

z 开根号得到锥面

a=3;b=2;
x=-5:0.01:5;y=-5:0.01:5;[X,Y]=meshgrid(x,y); 
Z=sqrt(X.^2/a^2+Y.^2/b^2);
figure
surf(X,Y,Z); % 正半轴
hold on
surf(X,Y,-Z); % 负半轴
zlim([-1,1]);shading interp;%好看了 

椭圆抛物面 \frac{x^{2}}{a^{2}}+\frac{y^{2}}{b^{2}}=Z

x=au cos\theta,    y=busin\theta,     Z=u^{2}

ezsurfc('X.^2./9+Y.^2./4');  

双曲抛物面(马鞍面)\frac{x^{2}}{a^{2}}-\frac{y^{2}}{b^{2}}=Z

x=a(u+v),    y=b(u-v),     Z=4uv

[X,Y]=meshgrid(-10:0.1:10);
Z=X.^2./4-Y.^2./6;
meshc(X,Y,Z);title('双曲抛物面');
axis equal
%%
ezsurfc('X.^2./4-Y.^2./6')

椭圆柱面 

ezsurf('(2*cos(u))','4*sin(u)','v',[0,2*pi,0,2*pi])
grid on
axis equal   

双曲柱面

ezsurf('2*sec(u)','2*tan(u)','v',[-pi/2,pi/2,-3*pi,3*pi])
hold on
ezsurf('2*sec(u)','2*tan(u)','v',[pi/2,3*pi/2,-3*pi,3*pi])
axis equal
view(-15,30) 

抛物柱面

[X,Y]=meshgrid(-7:0.1:7);
Z=Y.^2./8;

mesh(Z); 

双叶双曲面

ezsurf('2*tan(u)*cos(v)','2.*tan(u)*sin(v)','2.*sec(u)',[-pi./2,3*pi./2,0,2*pi])
axis equal

%%

a=1;b=1;c=1;
phi=0:0.1:2*pi+0.1;
theta=(0:0.1:2)';
x=a*sinh(theta)*cos(phi);
y=b*sinh(theta)*sin(phi);
z=c*cosh(theta)*ones(size(phi));
surf(x,y,z);hold on;surf(x,y,-z);
title('双叶双曲面');

 单叶双曲面

ezsurf('4*sec(u)*cos(v)','2.*sec(u)*sin(v)','3.*tan(u)',[-pi./2,pi./2,0,2*pi])
axis equal;grid on;
xlabel('x轴');ylabel('y轴');zlabel('z轴');
shading flat;                                             %去掉网格线

%%

a=1;b=2;c=1;
phi=0:0.1:2*pi+0.1;
theta=(-1:0.1:1)';
x=a*cosh(theta)*cos(phi);
y=b*cosh(theta)*sin(phi);
z=c*sinh(theta)*ones(size(phi));
figure
surf(x,y,z);title('单叶双曲面')

    

 球

[x,y,z]=sphere(20);%球
mesh(x,y,z)

椭球面 的参数方程表示,surf(X,Y,Z) 创建一个三维曲面图

t=-pi:0.1*pi:pi;
s=-pi:0.1*pi:pi;
[u,v]=meshgrid(t,s);
x=2*sin(u).*cos(v) +1;
y=3*sin(u).*sin(v) +2;
z=cos(u);
surf(x,y,z)

附加:等高线和带状图

二维等高线图:contour(),三维等高线图:contour3(),带状图:ribbon(x,y)。

 [x,y,z]=peaks(20);
m=peaks(20);
subplot(131);contour(x,y,z,20)
subplot(132);contour3(x,y,z,20)
subplot(133);ribbon(m)

  • 5
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值