Alguém poderia recomendar um método para o seguinte problema dos mínimos quadrados:
encontre que minimize: , em que R é uma unidade (rotação) matriz.
Eu poderia obter uma solução aproximada minimizando (arbitrário ), usando matriz e:
- computação SVD: , largando e aproximando
- computando a decomposição polar: , diminuindo apenas a escala simétrica (e positiva definida no meu caso) e aproximando
Eu também poderia usar a decomposição QR, mas não seria isométrica (dependeria da escolha do sistema de coordenadas).
Alguém sabe uma maneira de fazer isso, pelo menos aproximadamente, mas com melhor aproximação do que os dois métodos acima?
linear-algebra
least-squares
svd
Sergiy Migdalskiy
fonte
fonte
Respostas:
O problema é chamado de problema de Wahba , um algoritmo para ele é chamado algoritmo de Kabsch , e o posterior mais popular é chamado de método Davenport q . Aparentemente, é usado e estudado em aeronáutica para determinar uma orientação de embarcação. Existem muitas críticas sobre os métodos.
Cuidado que o melhor ajuste pode incluir reflexão.
O método Kabsch calcula uma matriz de covariância 3x3 SVD e descarta o termo (módulo uma reflexão, que geralmente é explicado pela negação da última coluna de no SVD). É muito simples generalizar para outro número de dimensões.Σ U
O método Davenport q é frequentemente apontado como o primeiro algoritmo prático, talvez alguém possa comentar o porquê. Ele também constrói uma matriz de covariância 3x3, mas depois parametriza a matriz de rotação em função de um quaternion, e o problema passa a ser o cálculo do vetor autovalor de valor próprio máximo de uma matriz 4x4 simétrica.
(Algumas das) implementações numéricas mais populares são chamadas QUEST e FOMA . Esses métodos geralmente são uma variação do tema de calcular o valor próprio máximo escrevendo e otimizando o polinômio característico (um quártico) e resolvendo-o analiticamente (cálculos bastante envolvidos, passando por fórmulas de Kardano) ou com iteração de Newton.
Schuster também desenvolveu e analisou algumas variantes iterativas de algoritmos.
fonte