Quelqu'un pourrait-il recommander une méthode pour le problème des moindres carrés suivant:
trouver qui minimise: , où R est unitaire (rotation) matrice.
Je pourrais obtenir une solution approximative en minimisant (arbitraire ), en prenant matrice et:
- calcul SVD: , drop et approximation
- calcul de la décomposition polaire: , en laissant tomber l'échelle symétrique (et positive définie dans mon cas) et en approximant
Je pourrais également utiliser la décomposition QR, mais ce ne serait pas isométrique (cela dépendrait du choix du système de coordonnées).
Quelqu'un connaît-il un moyen de le faire, au moins approximativement, mais avec une meilleure approximation que les deux méthodes ci-dessus?
linear-algebra
least-squares
svd
Sergiy Migdalskiy
la source
la source
Réponses:
Le problème est appelé le problème de Wahba , un algorithme pour cela est appelé algorithme de Kabsch , et le plus populaire plus tard est appelé méthode Davenport q . Il est apparemment utilisé et étudié en aéronautique pour déterminer l'orientation d'une embarcation. Il existe de nombreuses critiques sur les méthodes.
Attention, le meilleur ajustement peut inclure la réflexion.
La méthode de Kabsch calcule une matrice de covariance 3x3 SVD et supprime le terme (réflexion modulo un, qui s'explique généralement par la négation de la dernière colonne de dans le SVD). Il est très simple de généraliser à un autre nombre de dimensions.UΣ U
La méthode Davenport q est souvent présentée comme le premier algorithme pratique, peut-être que quelqu'un peut expliquer pourquoi. Il construit également une matrice de covariance 3x3, mais paramètre ensuite la matrice de rotation en fonction d'un quaternion, et le problème devient celui de calculer le vecteur propre de valeur propre max d'une matrice 4x4 symétrique.
(Certaines des) implémentations numériques les plus populaires sont appelées QUEST et FOMA . Ces méthodes sont généralement une variation sur le thème du calcul de la valeur propre maximale en écrivant et en optimisant le polynôme caractéristique (une quartique), et en le résolvant analytiquement (calculs assez compliqués, en passant par les formules de Kardano), ou avec une itération de Newton.
Schuster a également développé et analysé certaines variantes d'algorithmes itératifs.
la source