Эта проблема называется проблемой Вахбы , один алгоритм для нее называется алгоритмом Кабша , а более поздний, более популярный, называется методом Davenport q . По-видимому, он использовался и изучался в аэронавтике для определения ориентации корабля. Есть много отзывов о методах.
Остерегайтесь, что лучшая подгонка может включать отражение.
Метод Кабша вычисляет ковариационную матрицу 3x3 SVD и удаляет член (по модулю одно отражение, которое обычно учитывается путем отрицания последнего столбца в SVD). Очень просто обобщить на другое количество измерений.UΣU
Метод Davenport q часто рекламируется как первый практический алгоритм, возможно, кто-то может прокомментировать, почему. Он также создает ковариационную матрицу 3x3, но затем параметризует матрицу вращения как функцию кватерниона, и возникает проблема вычисления собственного вектора максимального значения симметричной матрицы 4x4.
(Некоторые из) наиболее популярных численных реализаций называются QUEST и FOMA . Эти методы обычно представляют собой вариацию на тему вычисления максимального собственного значения путем выписывания и оптимизации характеристического полинома (квартики) и либо его решения аналитически (довольно сложные вычисления, прохождение по формулам Кардано), либо с помощью итерации Ньютона.
Шустер также разработал и проанализировал некоторые варианты итерационных алгоритмов.