Wolfram Language

Matrices aléatoires

Rotations aléatoires

CircularRealMatrixDistribution représente une distribution uniforme des matrices carrées orthogonales de dimension n, également connue sous le nom de la mesure de Haar sur le groupe orthogonal O (n). Les matrices générées selon cette distribution peuvent agir comme opérateurs pour les vecteurs de rotation en un espace vectoriel de n-dimension.

Définissez la distribution des vecteurs aléatoires obtenus par rotation d'un vecteur en 3D fixe (0,0,1) par une matrice aléatoire de CircularRealMatrixDistribution de dimension 3.

In[1]:=
Click for copyable input
\[ScriptCapitalD] = MatrixPropertyDistribution[r.{0, 0, 1}, r \[Distributed] CircularRealMatrixDistribution[3]];

Utilisez cette distribution à des points échantillonnage sur la surface de l'unité de sphère.

In[2]:=
Click for copyable input
points = RandomVariate[\[ScriptCapitalD], 10^3];

Vérifiez si tous les points d'échantillonnage appartiennent à l'unité de sphère.

In[3]:=
Click for copyable input
AllTrue[points, RegionMember[Sphere[3]]]
Out[3]=

Tracez les points échantillonnage avec le vecteur original.

Montrer l'entrée complète de Wolfram Language
In[4]:=
Click for copyable input
Graphics3D[{{Gray, PointSize[Small], Point[points]}, {Red, Thick, Arrow[{{0, 0, 0}, {0, 0, 1}}]}}, Axes -> True]
Out[4]=

L'élément de surface sur la sphère en coordonnées cylindriques est donnée par .

In[5]:=
Click for copyable input
{x, y, z} = Transpose[points]; \[Phi] = ArcTan[y/x];

Vérifiez si les distributions marginales de and sont uniformes.

In[6]:=
Click for copyable input
Histogram[#, 20, PDF] & /@ {\[Phi], z}
Out[6]=

Vérifiez si les points d'échantillonnage sont distribués uniformément sur la surface de la sphère en vérifiant si la distribution conjointe de et est uniforme.

Montrer l'entrée complète de Wolfram Language
In[7]:=
Click for copyable input
Graphics[Point[Transpose[{\[Phi], z}]], Axes -> True, AxesOrigin -> {-\[Pi]/2, -1}, AxesLabel -> {"\[Phi]", "z"}]
Out[7]=

Testez l'hypothèse que la distribution conjointe et est uniforme.

In[8]:=
Click for copyable input
DistributionFitTest[Transpose[{\[Phi], z}], UniformDistribution[{{-Pi/2, Pi/2}, {-1, 1}}], "TestConclusion"]
Out[8]=

Exemples connexes

de en es ja ko pt-br ru zh