This problem was originally solved by Peter Schönemann in a 1964 thesis, and shortly after appeared in the journal Psychometrika.4
This problem is equivalent to finding the nearest orthogonal matrix to a given matrix M = B A T {\displaystyle M=BA^{T}} , i.e. solving the closest orthogonal approximation problem
To find matrix R {\displaystyle R} , one uses the singular value decomposition (for which the entries of Σ {\displaystyle \Sigma } are non-negative)
to write
One proof depends on the basic properties of the Frobenius inner product that induces the Frobenius norm:
where R {\displaystyle R} is the solution for the optimal value of Ω {\displaystyle \Omega } that minimizes the norm squared | | Ω A − B ‖ F 2 {\displaystyle ||\Omega A-B\|_{F}^{2}} .
There are a number of related problems to the classical orthogonal Procrustes problem. One might generalize it by seeking the closest matrix in which the columns are orthogonal, but not necessarily orthonormal.5
Alternately, one might constrain it by only allowing rotation matrices (i.e. orthogonal matrices with determinant 1, also known as special orthogonal matrices). In this case, one can write (using the above decomposition M = U Σ V T {\displaystyle M=U\Sigma V^{T}} )
where Σ ′ {\displaystyle \Sigma '\,\!} is a modified Σ {\displaystyle \Sigma \,\!} , with the smallest singular value replaced by det ( U V T ) {\displaystyle \det(UV^{T})} (+1 or -1), and the other singular values replaced by 1, so that the determinant of R is guaranteed to be positive.6 For more information, see the Kabsch algorithm.
The unbalanced Procrustes problem concerns minimizing the norm of A U − B {\displaystyle AU-B} , where A ∈ R m × ℓ , U ∈ R ℓ × n {\displaystyle A\in \mathbb {R} ^{m\times \ell },U\in \mathbb {R} ^{\ell \times n}} , and B ∈ R m × n {\displaystyle B\in \mathbb {R} ^{m\times n}} , with m > ℓ ≥ n {\displaystyle m>\ell \geq n} , or alternately with complex valued matrices. This is a problem over the Stiefel manifold U ∈ U ( m , ℓ ) {\displaystyle U\in U(m,\ell )} , and has no currently known closed form. To distinguish, the standard Procrustes problem ( A ∈ R m × m {\displaystyle A\in \mathbb {R} ^{m\times m}} ) is referred to as the balanced problem in these contexts.
Gower, J.C; Dijksterhuis, G.B. (2004), Procrustes Problems, Oxford University Press ↩
Hurley, J.R.; Cattell, R.B. (1962), "Producing direct rotation to test a hypothesized factor structure", Behavioral Science, 7 (2): 258–262, doi:10.1002/bs.3830070216 /wiki/Doi_(identifier) ↩
Golub, G.H.; Van Loan, C. (2013). Matrix Computations (4 ed.). JHU Press. p. 327. ISBN 978-1421407944. 978-1421407944 ↩
Schönemann, P.H. (1966), "A generalized solution of the orthogonal Procrustes problem" (PDF), Psychometrika, 31: 1–10, doi:10.1007/BF02289451, S2CID 121676935. /wiki/Peter_Sch%C3%B6nemann ↩
Everson, R (1997), Orthogonal, but not Orthonormal, Procrustes Problems (PDF) http://empslocal.ex.ac.uk/people/staff/reverson/uploads/Site/procrustes.pdf ↩
Eggert, DW; Lorusso, A; Fisher, RB (1997), "Estimating 3-D rigid body transformations: a comparison of four major algorithms", Machine Vision and Applications, 9 (5): 272–290, doi:10.1007/s001380050048, S2CID 1611749 /wiki/Doi_(identifier) ↩