我試圖描繪出這些3個功能:繪製顯性和隱性功能
z=y-1;
(x^2)+(y^2)=2x;
(x^2)+(y^2)=4;
正如你可以看到第一個是一個隱函數,具體的線路。另外兩個是兩個明確的功能,特別是周邊。我需要將它們繪製在與x,y,z軸相同的3D圖形中以研究它們。我只需要3軸的範圍是從0到2.我嘗試使用meshgrid
和mesh
,但它似乎只適用於第一個功能。
我試圖描繪出這些3個功能:繪製顯性和隱性功能
z=y-1;
(x^2)+(y^2)=2x;
(x^2)+(y^2)=4;
正如你可以看到第一個是一個隱函數,具體的線路。另外兩個是兩個明確的功能,特別是周邊。我需要將它們繪製在與x,y,z軸相同的3D圖形中以研究它們。我只需要3軸的範圍是從0到2.我嘗試使用meshgrid
和mesh
,但它似乎只適用於第一個功能。
如果你不介意重新定義你的功能了一下,你可以這樣做,用一些數學:
%function 1
y1=linspace(0,2,1000);
z1=y1-1;
x1=zeros(1,length(y1));
%function 2
theta2=linspace(-pi/2,pi/2,1000);
x2=2*(cos(theta2)).^2;
y2=sqrt(2*x2).*sin(theta2);
z2=zeros(1,length(x2));
%function 3
theta3=linspace(0,2*pi,1000);
x3=2*(cos(theta3));
y3=2*sin(theta3);
z3=zeros(1,length(x2));
%plot
plot3([x1' x2' x3'],[y1' y2' y3'],[z1' z2' z3']);
axis equal;
xlim([0 2]);
ylim([0 2]);
zlim([0 2]);
如果可以使用ezplot
從象徵性的工具箱:
syms x y
ezplot((x^2)+(y^2)==2*x)
否則使用相同的命名函數在一個標準的MATLAB安裝
ezplot('(x^2)+(y^2)=2*x')
謝謝,我試過並管理d使用'hold on'來繪製兩個顯式函數,但是當我繪製'z = y-1'並試圖改變視圖時,它似乎仍然是2D(z和y而不是x)。 – user2952272
有符號工具箱嗎? – Daniel
不......使用標準的MATLAB安裝 – user2952272
它似乎有點準確,但我真的不明白你在做什麼。另外還有一個函數沒有很好地繪製('(x^2)+(y^2)= 2x;',我不知道它是否是代碼中的函數2或3)。你能解釋一下你做了什麼,我該如何解決這個問題? – user2952272
這是我的功能2.我所做的基本上是使用(x^2 + y^2)= r^2,其中r是到原點(0,0)的距離。然後,由於x = r * cos(θ)= sqrt(2 * x)*cosθ,因此對於x求解並且我得到x = 2 *(cosθ)^ 2。然後r = sqrt(2 * x),我可以得到y。是的,有一個錯誤,我在函數2中缺少一個sqrt()。我會編輯它。 – Arzeik