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)
非常感谢
在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).