MATLAB三維作圖——隱函數


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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM