2014-12-05 191 views
0

我有功能如何在极坐标系统中绘制u(x,y),MATLAB?

enter image description here

,我必须作出这样的函数的曲线图对(X,Y)位于该区域中

enter image description here

极坐标系, 'ro'是半径。

我发现很多方法如何创建一个变量的图形,但不是两个变量。感谢您的帮助。

+0

我可能是错的,但我认为你必须分别去解决它的'x'和'y,然后制定出'rho'和'theta'。 – kkuilla 2014-12-05 10:32:51

+1

x =ρ* cos(θ)和y =ρ* sin(θ)。其中的范围从0到2pi。现在你可以计算你的数组的数据点,比如说rho = 0.9,theta就可以完成整个过程。这样你可以得到2个数组,用于x,y这些你必须用它来获得你的领域u。 (每个元素都使用bsxfun和你给定的u的定义)。现在你只需要绘制它,例如使用surf或imagesc。你必须得到一个矩阵! – 2014-12-05 10:44:59

+0

以上不是曲线,而是曲面。你想要'iso-lines'而不是'u(x,y)= K' – ja72 2014-12-05 21:35:40

回答

1

我把它改造从笛卡尔坐标系到极“手”坐标系,然后我做了这样一个图:

rho = linspace(0,0.9,50); 
phi = linspace(0,2*pi,50); 
[RHO,PHI] = meshgrid(rho,phi); 
u = (-1+RHO.^2)./(-RHO.^2+2*RHO.*sin(PHI)-1); 

figure('units','normalized','outerposition',[0 0 1 1]) 
set(gcf,'Color',[1,1,1]) 
box on; 

surf(RHO,PHI,u) 

xlabel('\rho'); 
ylabel('\phi'); 
zlabel('u(\rho,\phi)'); 

你觉得呢?正确?

enter image description here