如何在 n 维给定固定振幅的情况下将角度向量转换为欧几里德坐标
How to convert an angle vector to Euclidean coordinates given a fixed amplitude, in n dimension
因此,将极坐标(振幅、角度)转换为二维欧几里德坐标非常简单。
但是在 n(比如说 n = 5)维中,我有一个固定的振幅和一个随机的角度向量。如何将其转换为坐标的欧氏向量?
amp = 0.5
n = 5
ang = np.random.rand(n) * 2* pi
非常感谢
在 2D 中,转换为:
x = amp * cos(angle)
y = amp * sin(angle)
在 3D 中,一个选项是:
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
)。
因此,将极坐标(振幅、角度)转换为二维欧几里德坐标非常简单。
但是在 n(比如说 n = 5)维中,我有一个固定的振幅和一个随机的角度向量。如何将其转换为坐标的欧氏向量?
amp = 0.5
n = 5
ang = np.random.rand(n) * 2* pi
非常感谢
在 2D 中,转换为:
x = amp * cos(angle)
y = amp * sin(angle)
在 3D 中,一个选项是:
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
)。