Rotaciones aleatorias
CircularRealMatrixDistribution representa una distribución uniforme de las matrices cuadradas octogonales de dimensión , también conocidas como la medida de Haar en el grupo ortogonal
. Las matrices generadas de acuerdo con esta distribución pueden actuar como operadores de rotación de vectores en un espacio vectorial
-dimensional
Defina una distribución de vectores aleatorios obtenidos rotando un vector en 3D fijo (0,0,1) por una matriz aleatoria de CircularRealMatrixDistribution de dimensión 3.
![Click for copyable input](assets.es/random-rotations/In_101.png)
\[ScriptCapitalD] =
MatrixPropertyDistribution[r.{0, 0, 1},
r \[Distributed] CircularRealMatrixDistribution[3]];
Use esta distribución para tomar muestra de puntos en la superficie de la unidad de esfera.
![Click for copyable input](assets.es/random-rotations/In_102.png)
points = RandomVariate[\[ScriptCapitalD], 10^3];
Compruebe si todos los puntos de muestra pertenecen a la unidad de esfera.
![Click for copyable input](assets.es/random-rotations/In_103.png)
AllTrue[points, RegionMember[Sphere[3]]]
![](assets.es/random-rotations/O_50.png)
Represente gráficamente los puntos muestreados con el vector original.
![](assets.es/random-rotations/O_51.png)
El elemento del área de superficie en la esfera en coordinadas cilíndricas es dado por .
![Click for copyable input](assets.es/random-rotations/In_105.png)
{x, y, z} = Transpose[points];
\[Phi] = ArcTan[y/x];
Compruebe si las distribuciones marginales de y
son uniformes.
![Click for copyable input](assets.es/random-rotations/In_106.png)
Histogram[#, 20, PDF] & /@ {\[Phi], z}
![](assets.es/random-rotations/O_52.png)
Revise si los puntos de muestra están distribuidos uniformemente en la superficie de la esfera, comprobando si la distribución conjunta de y
es uniforme.
![](assets.es/random-rotations/O_53.png)
Pruebe la hipótesis de que la distribución conjunta de y
es uniforme.
![Click for copyable input](assets.es/random-rotations/In_108.png)
DistributionFitTest[Transpose[{\[Phi], z}],
UniformDistribution[{{-Pi/2, Pi/2}, {-1, 1}}], "TestConclusion"]
![](assets.es/random-rotations/O_54.png)