2016-09-12 2 views
0

したがって、極座標(振幅、角度)を2次元のユークリッド座標に変換するのは簡単です。角度ベクトルをユークリッド座標に変換して、n次元で固定振幅を与える方法

しかし、n(たとえばn = 5)次元では、私は固定振幅とランダム化された角度ベクトルを持っています。どのように座標のユークリッドのベクトルに変換することができますか?

amp = 0.5 
n = 5 
ang = np.random.rand(n) * 2* pi 

感謝

+0

これまでの回答からわかるように、振幅と1つの角度は、2より大きい次元のベクトルを指定するには不十分です。 5次元では、振幅と4つの(ランダム化された)角度などが与えられますか?そして、得られた角度の確率分布を、与えられた振幅を有するn次元球上で均一にしたいですか?これまでの答えは、それ以外の場合と同様にこれを成し遂げません。 –

+0

あなたはただランダムなベクトルをしたいですか、または与えられたベクトルを変換したいですか(タイトルが言うように)。 – agentp

答えて

5

2Dでは、変換は次のとおりです。

x = amp * cos(angle) 
y = amp * sin(angle) 

3Dでは、1つのオプションです:

x = amp * cos(angle1) * cos(angle2) 
y = amp * sin(angle1) * cos(angle2) 
z = amp *    sin(angle2) 

あなたはパターンが表示されるはずです。すでに存在するディメンションはcos(newAngle)です。新しい次元はsin(newAngle)になります。だから、4Dには、これは次のようになります。

一般に
x = amp * cos(angle1) * cos(angle2) * cos(angle3) 
y = amp * sin(angle1) * cos(angle2) * cos(angle3) 
z = amp *    sin(angle2) * cos(angle3) 
w = amp *        sin(angle3) 

i番目の次元は(1ベース)である:

dim_i = sin(angle_(i-1)) * Product {j from i to n} cos(angle_j) 

angle_(i-1)が存在する場合にのみ、そうでなければ1に用語を設定します)。

+0

ありがとう、これは私が探していたものです。 –

関連する問題