Rotações aleatórias
CircularRealMatrixDistribution representa uma distribuição uniforme das matrizes quadradas ortogonais de dimensão , também conhecida como a medida de Haar no grupo ortogonal . As matrizes geradas de acordo com essa distribuição podem atuar como operadores de rotação para vetores em um espaço vetorial -dimensional.
Defina uma distribuição de vetores aleatórios obtidos com a rotação de um vetor em 3D fixo (0,0,1) por uma matriz aleatória de CircularRealMatrixDistribution de dimensão 3.
\[ScriptCapitalD] =
MatrixPropertyDistribution[r.{0, 0, 1},
r \[Distributed] CircularRealMatrixDistribution[3]];
Use esta distribuição para fazer uma amostra de pontos na área de superfície da esfera.
points = RandomVariate[\[ScriptCapitalD], 10^3];
Verifique se todos os pontos da amostra pertencem à unidade da esfera.
AllTrue[points, RegionMember[Sphere[3]]]
Represente graficamente os pontos da amostra com o vetor original.
O elemento da área de superfície da esfera em coordenadas cilíndricas é dado por .
{x, y, z} = Transpose[points];
\[Phi] = ArcTan[y/x];
Verifique se as distribuições marginais de e são uniformes.
Histogram[#, 20, PDF] & /@ {\[Phi], z}
Verifique se os pontos da amostra estão distribuídos uniformemente na superfície da esfera verificando se a distribuição conjunta de e é uniforme.
Teste a hipótese de que a distribuição conjunta de e é uniforme.
DistributionFitTest[Transpose[{\[Phi], z}],
UniformDistribution[{{-Pi/2, Pi/2}, {-1, 1}}], "TestConclusion"]