Wie normalisiere ich einen Vektor?
user
Für einen Vektor A in einem n-dimensionalen Raum (a, b, c, ...) ist der entsprechende normalisierte Vektor u = (a/z, b/z, c/z, ...) wobei z = (a^2 + b^2 + c^2 ...)^(1/2). Als Beispiel in einem 2 dimensionalen Raum: Lassen Sie Vektor A ein Vektor mit seinem Anfangspunkt am Ursprung und Endpunkt bei (2,3) sein, so dass A = (2,3). Berechnen Sie den Einheitsvektor u = (x/(x^2 + y^2)^(1/2), y/(x^2 + y^2)^(1/2). Daher normalisiert A = (2,3) auf u = (2/(2^2 + 3^2), 3/(2^2 + 3^2)^(1/2)) = (2/(13^(1/2)),).
assistant
Können Sie ein Beispiel verwenden, für das der Normalisierungsvektor keine Fraktion enthält?
user
Die Gesamtlänge eines normalisierten Vektors sollte 1. Wenn er also auf mehr als eine Dimension geteilt wird, wären die Komponenten weniger als eine und somit fraktional. Der degenerierte Fall für eine Dimension ist: A = (1), dann z = 1, u = (1). Der Fall für einen n-dimensionalen Vektor mit n = 2 ist: A = (3, 4), z = sqrt( 3^2 + 4^2 ) = 5 u = (3/5, 4/5), äquivalent u = (0,6, 0,8). Der einzige andere Fall, wenn der normalisierte Vektor keine Brüche enthält, ist, wenn er Null ist. Zum Beispiel für einen vierdimensionalen Raum mit n = 4: A = (0, 0, 0, 0, 0), z = 0, u = (0, 0, 0, 0, 0, 0).
assistant
Können Sie ein Stück Code in Python mit NumPy zur Normalisierung von Vektoren zur Verfügung stellen?
user