如何在n维中给定固定幅度的角度向量转换为欧几里德坐标

J_y*_*ang 0 python math wolfram-mathematica

因此,将极坐标(幅度,角度)转换为2D中的欧几里德坐标是直截了当的.

但是在n(比如n = 5)维度中,我有一个固定的幅度和一个随机角度矢量.如何将其转换为坐标的欧氏矢量?

amp = 0.5
n = 5
ang = np.random.rand(n) * 2* pi
Run Code Online (Sandbox Code Playgroud)

非常感谢

Nic*_*ler 6

在2D中,转换是:

x = amp * cos(angle)
y = amp * sin(angle)
Run Code Online (Sandbox Code Playgroud)

在3D中,一个选项是:

x = amp * cos(angle1) * cos(angle2)
y = amp * sin(angle1) * cos(angle2)
z = amp *               sin(angle2)
Run Code Online (Sandbox Code Playgroud)

你应该看到一种模式.已经存在的维度得到了一个因素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)
Run Code Online (Sandbox Code Playgroud)

通常,i-th维度是(从1开始):

dim_i = sin(angle_(i-1)) * Product {j from i to n} cos(angle_j)
Run Code Online (Sandbox Code Playgroud)

(仅在angle_(i-1)存在时,否则将术语设置为1).