2016-06-09 782 views
-2

我可以在Numpy或Scipy中找到特定函數來生成隨機N維旋轉矩陣(或正交矩陣)嗎?我需要將ND球體上的矢量移動到該球體上的另一個隨機點。如何使用Python生成隨機N維旋轉矩陣?

+1

你問數學構造一個ND旋轉矩陣還是你知道數學和要求編寫程序? – Eular

+0

我想問如何生成一個隨機和旋轉矩陣,因爲我需要對一個球體進行重要性採樣。 –

+0

Quick'n'dirty:生成一個通用隨機矩陣,條目數爲[-1,1]並應用QR分解。 Q因子是一個隨機正交矩陣(作爲旋轉矩陣,行列式必須是1,但det(Q)取決於維數)。但是,不能保證相對於Haar度量的一致性。 – LutzL

回答

2

https://math.stackexchange.com/questions/442418/random-generation-of-rotation-matrices

這可能會回答你的問題,至少儘可能的戰略去。據我所知,numpy沒有標準或者庫函數,它將完全滿足你的需求。在那裏提出了大量的計算策略,但我更喜歡四元數方法的擴展,因爲它可以保持均勻分佈,這正是我假設你在追求的。

編輯:我原來的回答說「粗略統一」,而經過多一點研究後,我發現從均勻分佈採樣時四元數方法實際上將在旋轉中保持均勻分佈。