随机转动
CircularRealMatrixDistribution 表示维数为 的正交方阵的均匀分布,也称作正交群 的哈尔测度. 根据该分布生成的矩阵可以作为 -维向量空间中向量的转动算符.
通过由维数为 3 的 CircularRealMatrixDistribution 旋转固定的三维向量 (0,0,1) 得到随机向量,定义它的分布.
In[1]:=
\[ScriptCapitalD] =
MatrixPropertyDistribution[r.{0, 0, 1},
r \[Distributed] CircularRealMatrixDistribution[3]];
使用该分布在单位球面上对点进行采样.
In[2]:=
points = RandomVariate[\[ScriptCapitalD], 10^3];
检查是否所有采样点属于单位球.
In[3]:=
AllTrue[points, RegionMember[Sphere[3]]]
Out[3]=
绘制采样点与原始向量.
显示完整的 Wolfram 语言输入
Out[4]=
柱面坐标下球面面积元由 给出.
In[5]:=
{x, y, z} = Transpose[points];
\[Phi] = ArcTan[y/x];
检查 和 的边缘分布是否均匀.
In[6]:=
Histogram[#, 20, PDF] & /@ {\[Phi], z}
Out[6]=
通过检查 和 的联合分布是否为均匀分布,检查采样点是否在球表面上均匀分布.
显示完整的 Wolfram 语言输入
Out[7]=
检验 和 的联合分布为均匀分布的假设.
In[8]:=
DistributionFitTest[Transpose[{\[Phi], z}],
UniformDistribution[{{-Pi/2, Pi/2}, {-1, 1}}], "TestConclusion"]
Out[8]=