相关文章推荐
私奔的牛腩  ·  Windows ...·  1 年前    · 
年轻有为的茄子  ·  ASP.NET Core ...·  2 年前    · 

如何用Python生成一个随机的N维旋转矩阵?

4 人关注

我能否在Numpy或Scipy中找到一个具体的函数来生成一个随机的N维旋转矩阵(或正交矩阵)?我需要将ND球体上的一个向量移动到这个球体上的另一个随机点。

5 个评论
你是要求用数学来构建ND旋转矩阵,还是知道数学而要求写程序?
我想问如何生成一个随机的nd旋转矩阵,因为我需要在一个nd球体上做重要性取样。
快速'n'dirty。产生一个一般的随机矩阵,其条目在[-1,1]中,并应用QR分解法。然后,Q因子是一个随机的正交矩阵(要成为旋转矩阵,行列式必须是1,但det(Q)取决于维度)。然而,相对于Haar度量而言,并不能保证均匀性。
你要找的是 scipy.stats.special_ortho_group 。我没有特权重开这个问题来回答,所以我在这里滥用评论。这不是一个及时的答案,你可能已经想明白了。希望以后的人不需要受这种罪。
你要的是 scipy.stats.special_ortho_group ;它内置在scipy中,可以对任意维度的随机旋转矩阵进行采样。这不是一个重复的 stackoverflow.com/q/38426349/900749 因为它要求的是旋转,而不是正交,虽然这个答案 stackoverflow.com/a/55289807/900749 is the correct one.
python
algorithm
孙文趋
孙文趋
发布于 2016-06-09
1 个回答
gankoji
gankoji
发布于 2016-06-10
已采纳
0 人赞同