2017-02-07 32 views
2

極座標の2次元関数rthetaを3次元デカルト座標でプロットしたいと思います。私は(乳液、悪い数学の書式について申し訳ありませんが、互換性はありません、それはそう)MATLABを使用して3次元空間で2次元関数をプロットするにはどうすればよいですか?

rthetaの変換
f(r,theta) = r/2 * (cos(theta - pi/4) + sqrt(1 + 1/2 * cos(2*theta))) 

デカルト座標へ

x = r * cos(theta), y = r * sin(theta) 

さらに、ドメインは、私が定義-1<r<10<theta<2 * pi、であることを持っています

r = -1:2/50:1; 

により、
theta = 0:2*pi/50:2*pi; 

私には同じ次元の2つのベクトルが与えられます。

私はだから今、私は値に依存しますこれ、z値を定義する必要が

x = r. * cos(theta); 

y = r. * sin(theta); 

で行ベクトルとしてプロットするために使用さxy値を定義することができますxおよびyである。私は101x101を作るべきだと思った。各マトリックス要素には最終面のデータポイントが入っている。しかし、どうしたらいいですか?これは間違いなく私の表面を与えるが、それは私に間違った表面を与える

surf(z)単にその後

for i=1:numel(r) 
    for j=1:numel(theta) 
     z(i,j) = r(i)/2 .* cos(theta(j) - pi/4) + r(i).*sqrt(1 + 1/2 * cos(2.*theta(j))); 
    end 
end 

:私は二重のforループを使用して考えました!私はここで何が起こっているのか分かりません。誤ったサーフェスは図1に示されていますが、正しいサーフェスは図2に示されています。誰か助けてくれますか?参考のために、正しい面が

A = Function[<expression 1>, <Expresison 2>, <Expression 3>, <var 1>, <start>, <stop>, <var 2>, <start>, <stop>] 

Incorrect surface

図1不適切な表面を使用して、GeoGebraのでプロットしました。

Correct surface

図2正しい表面。

+0

あなたはデカルトに極性(球形)から変換しようとしていますか?円筒形からデカルト形? – toshiomagic

+0

[this](https://www.mathworks.com/matlabcentral/fileexchange/13200-3d-polar-plot)が役立つかどうかを確認してください。私はそれを使って表面の上半分だけをプロットすることに成功しました。 – EBH

答えて

1

、あなたはこの仕事をするためにmeshgridを使用することができます。ここで

がグリッドrthetaとダブルループを交換する匿名関数を使用して、あなたの例です:

r = -1:2/50:1; 
theta = 0:2*pi/50:2*pi; 

% define anonymous function f(r,theta) 
f = @(r,theta) r/2 .* (cos(theta - pi/4) + sqrt(1 + 1/2 .* cos(2.*theta))); 

% generate grids for r and theta 
[r, theta] = meshgrid(r,theta); 
% calculate z from gridded r and theta 
z = f(r,theta); 

% convert r,theta to x,y and plot with surf 
x = r.*cos(theta); 
y = r.*sin(theta); 
surf(x,y,z); 
0

meshgridを使用しての行列座標を取得する必要がある場合は、surfを使用します。あなたのxyを取る(小文字)、

[X,Y] = meshgrid(x,y); 

その後XYを呼び出す(大文字)あなたはそれを与えたのと同じ値を持っていますが、surfによって期待通りの二次元アレイ状に配置されます。ここでインデックスをループしてZを計算してください。all(size(Z) == size(X))が必要です。他の人が言ったように

https://www.mathworks.com/help/matlab/ref/meshgrid.html

関連する問題