Könnte jemand eine Methode für das folgende Problem der kleinsten Quadrate empfehlen:
finde , das minimiert: , wobei eine einheitliche (Rotations-) Matrix ist.
Ich könnte eine ungefähre Lösung erhalten, indem ich (beliebiges ) minimiere Matrix und:
- Berechnen der SVD: , Fallenlassen von und Annähern von
- Berechnung der polaren Zerlegung: , Ablegen der Nur-Skala-Symmetrie (und in meinem Fall positiv definitiv) und Annäherung an
Ich könnte auch die QR-Zerlegung verwenden, aber sie wäre nicht isometrisch (würde von der Wahl des Koordinatensystems abhängen).
Kennt jemand einen Weg, dies zumindest ungefähr, aber mit besserer Annäherung als die beiden oben genannten Methoden zu tun?
linear-algebra
least-squares
svd
Sergiy Migdalskiy
quelle
quelle
Antworten:
Das Problem heißt Wahba-Problem , ein Algorithmus dafür heißt Kabsch-Algorithmus , und der später populärere heißt Davenport-q-Methode . Es wird anscheinend in der Luftfahrt verwendet und studiert, um die Ausrichtung des Fahrzeugs zu bestimmen. Es gibt viele Bewertungen zu den Methoden.
Beachten Sie, dass die beste Anpassung Reflexion beinhalten kann.
Die Kabsch-Methode berechnet eine 3x3-Kovarianzmatrix-SVD und lässt den Term fallen (Modulo-One-Reflexion, die normalerweise durch Negieren der letzten Spalte von in der SVD berücksichtigt wird ). Es ist sehr einfach, auf eine andere Anzahl von Dimensionen zu verallgemeinern.U.Σ U
Die Davenport q-Methode wird oft als erster praktischer Algorithmus angepriesen. Vielleicht kann jemand sagen, warum. Es konstruiert auch eine 3x3-Kovarianzmatrix, parametrisiert dann aber die Rotationsmatrix als Funktion einer Quaternion, und das Problem besteht darin, den Max-Eigenwert-Eigenvektor einer symmetrischen 4x4-Matrix zu berechnen.
(Einige der) beliebtesten numerischen Implementierungen heißen QUEST und FOMA . Diese Methoden sind normalerweise eine Variation des Themas der Berechnung des maximalen Eigenwerts, indem das charakteristische Polynom (ein Quartic) ausgeschrieben und optimiert und entweder analytisch gelöst wird (ziemlich aufwendige Berechnungen, Kardano-Formeln durchlaufen) oder mit Newton-Iteration.
Schuster entwickelte und analysierte auch einige iterative Algorithmusvarianten.
quelle