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

