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))