超球坐标实施

时间:2017-08-21 04:05:29

标签: python numpy math scipy coordinates

有没有人知道经过充分测试,可靠的超球坐标实现,将笛卡尔向量转换为球面角度?我更喜欢python,但如果有必要,我可以翻译它。

换句话说,基本上与this question相反。

在你告诉我实现之前,这是我的实现(对于5维空间):

def theta(x):
   n = 5
   x = np.array(x)
   toFill = np.array([0.0, 0.0, 0.0, 0.0])
   r_array = np.sqrt( np.array( [ sum( [xj**2 for xj in x[i+1:]] ) for i in range(0,n-1) ] ) )
   for k in range(0,n-2): 
      toFill[k] = np.arctan2( r_array[k] , x[k] ) 
   toFill[n-2] = 2 * np.arctan2( x[n-1] , ( x[n-2] + np.sqrt(x[n-1]**2 + x[n-2]**2) ) ) 
   return toFill

请注意,我只关心角度,而不是半径。实施基本上来自here

它似乎有用,但我在一些模拟中得到了一些奇怪的结果(我认为这可能是由于这种方法,但我还没有直接找到问题)。如果你在这里可以看到一些边界条件问题,请告诉我。

0 个答案:

没有答案