Corrispondenza dei minimi quadrati puramente rotazionali


11

Qualcuno potrebbe raccomandare un metodo per il seguente problema dei minimi quadrati:

trova che minimizza: , dove R è un unitario (rotazione) matrice.RR3×3i=0N(Rxibi)2minR

Potrei ottenere una soluzione approssimativa minimizzando i=0N(Axibi)2min ( A \ in \ mathbb arbitrario {R} ^ {3 \ times 3}AR3×3 ), prendendo matrice A e:

  • calcolo SVD: A=UΣVT , rilascio Σ e approssimazione RUVT
  • calcolo della decomposizione polare: A=UP , scendente simmetrico solo in scala (e positivo definito nel mio caso) P e approssimativo RU

Potrei anche usare la decomposizione QR, ma non sarebbe isometrica (dipende dalla scelta del sistema di coordinate).

Qualcuno sa un modo per farlo, almeno approssimativamente, ma con una migliore approssimazione rispetto ai due metodi sopra?


4
Ho usato l'algoritmo di Kabsch per un problema simile, che è essenzialmente il metodo SVD che hai menzionato en.wikipedia.org/wiki/Kabsch_algorithm se non sbaglio il metodo svd minimizza l'equazione, non sono sicuro di cosa intendi con un ' metodo migliore?
isti_spl,

2
OMG Ho appena ricevuto la stessa risposta IRL. Grazie! Apparentemente cadere funziona a meno che sia negativo, nel qual caso la rotazione ottimale include un riflesso (e qualsiasi rotazione è ugualmente cattiva). Questo tecnicamente risponde alla domanda, tuttavia, qualcuno conosce un metodo più economico rispetto al calcolo SVD? È un SVD 3x3, ma devo farne molti (questo è per la simulazione FEM, e il problema è calcolato per ogni FE) Inoltre, il problema è apparentemente chiamato problema di Wahba, e apparentemente appare in aeronautica per determinare un mestiere orientamento. Σdet(UVT)
Sergiy Migdalskiy,

ho visto questi problemi correlati: scicomp.stackexchange.com/questions/7552/…
isti_spl


@isti_spl: potresti per favore migrare il tuo commento a una risposta?
Geoff Oxberry,

Risposte:


9

Il problema si chiama problema di Wahba , un algoritmo per questo si chiama algoritmo di Kabsch , e il successivo più popolare si chiama metodo Davenport q . Apparentemente è usato e studiato in aeronautica per determinare un orientamento artigianale. Ci sono molte recensioni sui metodi.

Fai attenzione che l'adattamento migliore potrebbe includere la riflessione.

Il metodo di Kabsch calcola un SVD a matrice di covarianza 3x3 e rilascia il termine (modulo uno riflesso, che di solito viene spiegato negando l'ultima colonna di nell'SVD). È molto semplice generalizzare ad un altro numero di dimensioni.ΣU

Il metodo Davenport q è spesso pubblicizzato come il primo algoritmo pratico, forse qualcuno può commentare il perché. Costruisce anche una matrice di covarianza 3x3, ma poi parametrizza la matrice di rotazione in funzione di un quaternione, e il problema diventa quello di calcolare l'autovettore con massimo autovalore di una matrice simmetrica 4x4.

(Alcune delle) implementazioni numeriche più popolari sono chiamate QUEST e FOMA . Questi metodi di solito sono una variazione sul tema del calcolo del massimo autovalore scrivendo e ottimizzando il polinomio caratteristico (un quartico) e risolvendolo analiticamente (calcoli piuttosto coinvolti, passando per le formule di Kardano) o con l'iterazione di Newton.

Schuster ha inoltre sviluppato e analizzato alcune varianti dell'algoritmo iterativo.


2
Per un po 'di storia nella comunità aerospaziale, leggi Humble Problems di Markley.
Damien,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.