2014-10-10 98 views
4

我想生成位於n維圓環表面的隨機點。我已經發現瞭如何生成3-dimensional torus的表面上的點式:在n維圓環表面生成隨機點

x = (c + a * cos(v)) * cos(u) 
y = (c + a * cos(v)) * sin(u) 
z = a * sin(v) 

U,V∈[0,2 * PI); c,a> 0.

我現在的問題是:如何將這個公式擴展到n維。任何關於此事的幫助將不勝感激。

回答

1

我想你可以遞歸地做到這一點。從矢量空間的完整正交基礎開始,讓當前位置爲原點。在每個步驟中,選擇由前兩個座標向量跨越的平面中的點,即取w1 = cos(t)* v1 + sin(t)* v2。移動其他基矢,即w2 = v3,w3 = v4,...。在w1方向上從當前位置向前走一步,選擇前面的半徑r1。如果只剩下單個基矢量,則當前點是最外遞歸調用的n維環上的一個點。

請注意,雖然以上可能用於隨機選擇點,它不會統一選擇它們。這可能是一個更難的問題,並且你肯定應該詢問關於Math SE或者Cross Validated (Statistics SE)的數學,以便在你擔心實現之前獲得數學。

0

一個n環(n是環的表面的維數;百吉餅或環面是一個2環,而不是3環)是一個n長方形的光滑映射。解決此問題的一種方法是在矩形上生成點,然後將它們映射到圓環上。除了解決如何將一個矩形映射到一個圓環上(我不知道它是手邊的)的問題之外,還有一個問題是圓環上的點的分佈結果不均勻,即使點的分佈是統一在矩形上。但是必須有一種方法來調整矩形上的分佈,使其在圓環上均勻分佈。