scipy.stats.special_ortho_group#

scipy.stats.special_ortho_group = <scipy.stats._multivariate.special_ortho_group_gen Objekt>[Quelle]#

Eine Zufallsvariable für spezielle orthogonale Matrizen (SO(N)).

Gibt eine zufällige Rotationsmatrix zurück, die aus der Haar-Verteilung (der einzigen gleichmäßigen Verteilung auf SO(N)) mit einer Determinante von +1 gezogen wird.

Das Schlüsselwort dim gibt die Dimension N an.

Parameter:
dimSkalar

Dimension der Matrizen

seed{None, int, np.random.RandomState, np.random.Generator}, optional

Wird zum Ziehen von Zufallsvarianten verwendet. Wenn seed None ist, wird die RandomState Singleton verwendet. Wenn seed eine Ganzzahl ist, wird eine neue RandomState-Instanz verwendet, die mit seed initialisiert wird. Wenn seed bereits eine RandomState- oder Generator-Instanz ist, wird dieses Objekt verwendet. Standard ist None.

Methoden

rvs(dim=None, size=1, random_state=None)

Zufällige Stichproben aus SO(N) ziehen.

Hinweise

Die Methode rvs gibt eine zufällige Rotationsmatrix zurück, die aus der Haar-Verteilung gezogen wird, der einzigen gleichmäßigen Verteilung auf SO(N). Der Algorithmus generiert eine Haar-verteilte orthogonale Matrix in O(N) mithilfe der Methode rvs von ortho_group und passt dann die Matrix an, um sicherzustellen, dass die Determinante +1 ist.

Für eine zufällige Rotation in drei Dimensionen siehe scipy.spatial.transform.Rotation.random.

Beispiele

>>> import numpy as np
>>> from scipy.stats import special_ortho_group
>>> x = special_ortho_group.rvs(3)
>>> np.dot(x, x.T)
array([[  1.00000000e+00,   1.13231364e-17,  -2.86852790e-16],
       [  1.13231364e-17,   1.00000000e+00,  -1.46845020e-16],
       [ -2.86852790e-16,  -1.46845020e-16,   1.00000000e+00]])
>>> import scipy.linalg
>>> scipy.linalg.det(x)
1.0

Dies generiert eine zufällige Matrix aus SO(3). Sie ist orthogonal und hat eine Determinante von 1.

Alternativ kann das Objekt (als Funktion) aufgerufen werden, um den Parameter dim festzulegen, wodurch eine „eingefrorene“ spezielle_ortho_group-Zufallsvariable zurückgegeben wird.

>>> rv = special_ortho_group(5)
>>> # Frozen object with the same methods but holding the
>>> # dimension parameter fixed.