Orthogonal Procrustes problem
The orthogonal Procrustes problem  is a matrix approximation problem in linear algebra. In its classical form, one is given two matrices and and asked to find an orthogonal matrix which most closely maps to .  Specifically,
where denotes the Frobenius norm.
The name Procrustes refers to a bandit from Greek mythology who made his victims fit his bed by either stretching their limbs or cutting them off.
This problem is equivalent to finding the nearest orthogonal matrix to a given matrix . To find this orthogonal matrix , one uses the singular value decomposition
Generalized/constrained Procrustes problems
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. 
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 )
where is a modified , with the smallest singular value replaced by (+1 or -1), and the other singular values replaced by 1, so that the determinant of R is guaranteed to be positive.  For more information, see the Kabsch algorithm.
- 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
- Schonemann, P.H. (1966), "A generalized solution of the orthogonal Procrustes problem", Psychometrika 31: 1–10, doi:10.1007/BF02289451.
- Zhang, Z. (1998), "A Flexible New Technique for Camera Calibration", MSR-TR-98-71
- Everson, R (1997), Orthogonal, but not Orthonormal, Procrustes Problems
- 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