Zufallsrotationen
CircularRealMatrixDistribution repräsentiert eine Gleichverteilung der orthogonalen Matrix der Dimension n, auch bekannt als das Haarsche Maß auf der orthogonalen Gruppe . Die entsprechend dieser Verteilung generierten Matritzen können Drehoperatoren für Vektoren im
-dimensionalen Vektorraum sein.
Bestimmen Sie eine Verteilung von Zufallsvektoren, die durch Drehung eines fixierten 3D-Vektors (0,0,1) durch eine Zufallsmatrix aus CircularRealMatrixDistribution der dritten Dimension ermittelt werden.
![Click for copyable input](assets.de/random-rotations/In_102.png)
\[ScriptCapitalD] =
MatrixPropertyDistribution[r.{0, 0, 1},
r \[Distributed] CircularRealMatrixDistribution[3]];
Verwenden Sie die Verteilung, um eine Stichprobe von Punkten auf der Oberfläche der Einheitskugel zu nehmen.
![Click for copyable input](assets.de/random-rotations/In_103.png)
points = RandomVariate[\[ScriptCapitalD], 10^3];
Überprüfen Sie, ob alle Punkte zur Einheitskugel gehören.
![Click for copyable input](assets.de/random-rotations/In_104.png)
AllTrue[points, RegionMember[Sphere[3]]]
![](assets.de/random-rotations/O_50.png)
Plotten Sie die Punkte mit dem ursprünglichen Vektor.
![](assets.de/random-rotations/O_51.png)
Das Element des Flächeninhalts der Kugeloberfläche in Zylinderkoordinaten ist gegeben durch .
![Click for copyable input](assets.de/random-rotations/In_106.png)
{x, y, z} = Transpose[points];
\[Phi] = ArcTan[y/x];
Überprüfen Sie, ob die Randverteilungen und
gleichverteilt sind.
![Click for copyable input](assets.de/random-rotations/In_107.png)
Histogram[#, 20, PDF] & /@ {\[Phi], z}
![](assets.de/random-rotations/O_52.png)
Überprüfen Sie, ob die Punkte auf der Kugeloberfläche gleichverteilt sind, indem Sie ermitteln, ob es sich bei der multivariaten Verteilung von und
um eine Gleichverteilung handelt.
![](assets.de/random-rotations/O_53.png)
Testen Sie die Hypothese, dass die multivariate Verteilung von und
die gleichen Randverteilungen hat.
![Click for copyable input](assets.de/random-rotations/In_109.png)
DistributionFitTest[Transpose[{\[Phi], z}],
UniformDistribution[{{-Pi/2, Pi/2}, {-1, 1}}], "TestConclusion"]
![](assets.de/random-rotations/O_54.png)