Pertandingan kuadrat paling murni rotasi

11

Adakah yang bisa merekomendasikan metode untuk masalah kuadrat-terkecil berikut:

RR3×3saya=0N(Rxsaya-bsaya)2minR

Saya bisa mendapatkan solusi perkiraan dengan meminimalkan (arbitrer ), dengan mengambil matriks dan:saya=0N(SEBUAHxsaya-bsaya)2minSEBUAHR3×3SEBUAH

  • menghitung SVD: , menjatuhkan dan mendekatiSEBUAH=UΣVTΣRUVT
  • menghitung dekomposisi kutub: , menjatuhkan skala-saja simetris (dan pasti positif dalam kasus saya) dan mendekati R \ approx USEBUAH=UPPRU

Saya juga bisa menggunakan dekomposisi QR, tetapi itu bukan isometrik (akan tergantung pada pilihan sistem koordinat).

Adakah yang tahu cara untuk melakukan ini, setidaknya sekitar, tetapi dengan perkiraan yang lebih baik daripada dua metode di atas?

Sergiy Migdalskiy
sumber
4
Saya menggunakan algoritma Kabsch untuk masalah serupa, yang pada dasarnya adalah metode SVD yang Anda sebutkan en.wikipedia.org/wiki/Kabsch_algorithm jika saya tidak salah, metode svd meminimalkan persamaan, saya tidak yakin apa yang Anda maksud dengan ' metode yang lebih baik?
isti_spl
2
OMG Saya baru saja mendapat balasan yang sama IRL. Terima kasih! Rupanya menjatuhkan berfungsi kecuali negatif, dalam hal ini rotasi optimal termasuk refleksi (dan setiap rotasi sama buruknya). Namun, ini secara teknis menjawab pertanyaan, adakah yang tahu metode yang lebih murah daripada menghitung SVD? Ini adalah SVD 3x3, tapi saya perlu melakukan banyak dari mereka (ini untuk simulasi FEM, dan masalahnya dihitung untuk setiap FE) Selain itu, masalahnya tampaknya disebut masalah Wahba, dan tampaknya muncul di aeronautika untuk menentukan kerajinan. orientasi. d e t ( U V T )Σdet(UVT)
Sergiy Migdalskiy
Saya telah melihat masalah terkait ini: scicomp.stackexchange.com/questions/7552/…
isti_spl
@isti_spl: Bisakah Anda memigrasikan komentar Anda ke suatu jawaban?
Geoff Oxberry

Jawaban:

9

Masalahnya disebut masalah Wahba , satu algoritma untuk itu disebut algoritma Kabsch , dan yang lebih populer disebut metode Davenport q . Ini tampaknya digunakan dan dipelajari dalam aeronautika untuk menentukan orientasi kerajinan. Ada banyak ulasan tentang metode ini.

Berhati-hatilah bahwa yang paling cocok mungkin termasuk refleksi.

Metode Kabsch menghitung matriks kovarians 3x3 SVD dan menjatuhkan istilah (modulo satu refleksi, yang biasanya diperhitungkan dengan meniadakan kolom terakhir U dalam SVD). Sangat mudah untuk menggeneralisasi ke sejumlah dimensi lainnya.ΣU

Metode Davenport q sering disebut-sebut sebagai algoritma praktis pertama, mungkin seseorang dapat berkomentar mengapa. Ini juga membangun matriks kovarians 3x3, tetapi kemudian parametrizes matriks rotasi sebagai fungsi dari angka empat, dan masalahnya menjadi bahwa komputasi eigenvektor nilai-eigen max-nilai eigen dari matriks 4x4 simetris.

(Beberapa) implementasi numerik paling populer disebut QUEST dan FOMA . Metode-metode ini biasanya variasi pada tema penghitungan nilai eigen maksimum dengan menuliskan dan mengoptimalkan polinomial karakteristik (kuartik), dan menyelesaikannya secara analitik (perhitungan yang cukup terlibat, melalui rumus Kardano), atau dengan iterasi Newton.

Schuster juga mengembangkan dan menganalisis beberapa varian algoritma berulang.

Sergiy Migdalskiy
sumber
2
Untuk beberapa sejarah dalam komunitas dirgantara, bacalah Humble Problems oleh Markley.
Damien