MATLAB三维作图——隐函数

时间:2024-03-08 07:39:16

MATLAB三维作图——隐函数

作者:凯鲁嘎吉 - 博客园
http://www.cnblogs.com/kailugaji/

对于三维隐函数,没有显式表达式,无法通过Matlab现成的3-D画图函数 surf mesh画图。可以通过三种办法解决:

1. Mupad符号引擎里提供了三维隐函数画图函数

matlab里开启Mupad的方法是:在command window 里输入 mupad 来启动一个notebook

 

在启动的notebook里再输入如下代码:

plot(plot::Implicit3d(((x^2/4)+(y^2/9)+(z^2/1))^2=2*x, x = -0.5..4, y = -4..4, z = -1.5..1.5), Scaling = Constrained)

xoy面看:

 

yoz面看:

 

xoy面看:

 

((x^2/4)+(y^2/9)+(z^2/1))^2=2*x的图像:

 

2

plot(plot::Implicit3d((x^2 + (9/4)*y^2 + z^2 - 1)^3 - x^2*z^3 - (9/80)*y^2*z^3, x = -1.5..1.5, y = -1.5..1.5, z = -1.5..1.5), Scaling = Constrained)

 

2.再给一种只调用matlab的方法

figure
[x,y,z] = meshgrid(-0.5:0.05:4,-4:0.05:4,-1.5:0.05:1.5);
v =((x.^2/4)+(y.^2/9)+(z.^2/1)).^2-2.*x;
p = patch(isosurface(x,y,z,v,0),\'FaceColor\',\'r\',\'EdgeColor\',\'none\');
isonormals(x,y,z,v,p)
view(3)
camlight
lighting gouraud
axis equal tight
grid on

 

3.先求解z,在画图

>> z=solve(\'((x^2/4)+(y^2/9)+(z^2/1))^2-2*x\',\'z\')
ezmesh(z(1))